<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Stef Smeets</title>
    <subtitle>Research Software Engineer writing open-source scientific software, mostly Python.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://stefsmeets.nl/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://stefsmeets.nl"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-11-04T00:00:00+00:00</updated>
    <id>https://stefsmeets.nl/atom.xml</id>
    <entry xml:lang="en">
        <title>PyPalmSens - EIS measurements and Circuit Fitting</title>
        <published>2026-11-04T00:00:00+00:00</published>
        <updated>2026-11-04T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/pypalmsens-eis-circuit-fitting/"/>
        <id>https://stefsmeets.nl/presentations/pypalmsens-eis-circuit-fitting/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/pypalmsens-eis-circuit-fitting/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>PyPalmSens - How to get Started</title>
        <published>2026-10-09T00:00:00+00:00</published>
        <updated>2026-10-09T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/pypalmsens-getting-started/"/>
        <id>https://stefsmeets.nl/presentations/pypalmsens-getting-started/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/pypalmsens-getting-started/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Why every device in my house was called 172.18.0.1</title>
        <published>2026-09-20T00:00:00+00:00</published>
        <updated>2026-09-20T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/adguard-ips/"/>
        <id>https://stefsmeets.nl/posts/adguard-ips/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/adguard-ips/">&lt;p&gt;I run &lt;a rel=&quot;external&quot; href=&quot;https://adguard.com/adguard-home/overview.html&quot;&gt;AdGuard Home&lt;/a&gt; in Docker to filter DNS queries on my home network. It blocks ads and trackers for every device in my house. The AdGuard dashboard shows a nice query log, so you can see &lt;em&gt;which&lt;/em&gt; device is asking for which domain and set per-client rules for the smart TV that really doesn&#39;t need to talk to seventeenthousand tracking servers (looking at you, &lt;a rel=&quot;external&quot; href=&quot;https://www.youtube.com/watch?v=6IFVTcM28KA&quot;&gt;LG&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;This worked for a while, until it didn&#39;t. In my query log, every single client was listed as &lt;code&gt;172.18.0.1&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It shows up as one client, no matter how many devices are making requests. Although it did not make the DNS filtering any worse, it did make any sort of client analysis or statistics useless. Over a 2-day debugging session (using the GLM 5.3 model on the side) I finally looked into this.&lt;/p&gt;
&lt;h2 id=&quot;docker-rewrites-your-ips&quot;&gt;Docker rewrites your IPs&lt;/h2&gt;
&lt;p&gt;My AdGuard container ran on a user-defined bridge network, which is shared with my reverse proxy. When a device on my network sends a DNS query to my server, Docker&#39;s NAT rewrites the packet before handing it to the container. The source address becomes the Docker bridge gateway (&lt;code&gt;172.18.0.1&lt;/code&gt;). This is well-known docker networking behaviour. This means that AdGuard only ever sees this IP, and it cannot resolve the source.&lt;/p&gt;
&lt;p&gt;This is a well-known issue, &lt;a rel=&quot;external&quot; href=&quot;https://github.com/AdguardTeam/AdGuardHome/issues/2584&quot;&gt;just use &lt;code&gt;network_mode: host&lt;/code&gt;&lt;/a&gt;. I&#39;m sure this work well, except that I run &lt;a rel=&quot;external&quot; href=&quot;https://docs.docker.com/engine/security/rootless/&quot;&gt;rootless Docker&lt;/a&gt;. With rootless, even host networking happens inside &lt;a rel=&quot;external&quot; href=&quot;https://docs.docker.com/engine/security/rootless/troubleshoot/#until-docker-engine-v295&quot;&gt;RootlessKit&#39;s own network namespace&lt;/a&gt;. The container never actually shares the host&#39;s real network stack, so this wasn&#39;t going to work.&lt;/p&gt;
&lt;h2 id=&quot;rootlesskit-v3&quot;&gt;RootlessKit V3&lt;/h2&gt;
&lt;p&gt;Then I found something &lt;a rel=&quot;external&quot; href=&quot;https://rootlesscontaine.rs/getting-started/docker/#preserving-source-ip-addresses-of-incoming-connections&quot;&gt;interesting&lt;/a&gt;. Docker 29.5 bundles RootlessKit v3, which adds support for propagating the original source IP of incoming connections and I was on 29.7.2.&lt;/p&gt;
&lt;p&gt;This did not work either:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The propagation is &lt;em&gt;TCP only&lt;/em&gt;, whereas DNS is UDP.&lt;/li&gt;
&lt;li&gt;Even for TCP, it doesn&#39;t work with the default &lt;code&gt;userland-proxy&lt;/code&gt; enabled.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;pasta&quot;&gt;Pasta&lt;/h2&gt;
&lt;p&gt;The actual documented fix (on the same page) for source IPs in rootless Docker is switching the daemon to the &lt;code&gt;pasta&lt;/code&gt; network driver with the &lt;code&gt;implicit&lt;/code&gt; port driver. Pasta (from the &lt;a rel=&quot;external&quot; href=&quot;https://passt.top/passt/about/&quot;&gt;passt project&lt;/a&gt;) was specifically designed to solve source IP preservation in rootless environments by forwarding traffic in a way that preserves real source addresses for both TCP and UDP.&lt;/p&gt;
&lt;p&gt;Configuring it was pretty simple:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;ini&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# ~/.config/systemd/user/docker.service.d/override.conf&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;[Service]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;Environment&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;DOCKERD_ROOTLESS_ROOTLESSKIT_NET=pasta&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;Environment&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;DOCKERD_ROOTLESS_ROOTLESSKIT_PORT_DRIVER=implicit&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installing &lt;code&gt;passt&lt;/code&gt; and restarting docker:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; apt install passt&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;systemctl&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; --user&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; daemon-reload&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;systemctl&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; --user&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; restart docker&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;docker&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; compose down&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt; &amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt; docker&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; compose up&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -d&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Unfortunately, DNS stopped working entirely afterwards. The dashboard wasn&#39;t reachable either.&lt;/p&gt;
&lt;h2 id=&quot;privileged-ports&quot;&gt;Privileged ports&lt;/h2&gt;
&lt;p&gt;To debug what was going on, GLM 5.3 kept suggesting &lt;code&gt;ss&lt;/code&gt; commands. I had never heard of this, but apparently it&#39;s &quot;another utility to investigate sockets&quot;.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; ss&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -tlnp&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt; grep&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -E&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;:53|:3000&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This showed that port 3000 was bound by &lt;code&gt;pasta.avx2&lt;/code&gt; now, instead of rootlesskit. But it showed nothing for port 53? Nothing. Port 53 is a privileged port (&amp;lt; 1024). Therefore, I run this on start-up so that AdGuard (as a Docker container) gets forwarded DNS requests:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; setcap cap_net_bind_service=ep&lt;/span&gt;&lt;span&gt; $(&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;which&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; rootlesskit&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This means that rootlesskit could bind port 53 as my unprivileged user. However, because Pasta replaces RootlessKit as the network stack handler, these capabilities don&#39;t apply to it. Since file capabilities don&#39;t propagate to child processes, Pasta tried to bind port 53 without the necessary permissions, whereas port 3000 doesn&#39;t require any special configuration.&lt;/p&gt;
&lt;p&gt;Although I could change the command to give &lt;code&gt;pasta&lt;/code&gt; access to privireleged ports, at this point I had hit two experimental edge cases, and I don&#39;t want to overconfigure my server.&lt;/p&gt;
&lt;h2 id=&quot;the-practical-solution-run-it-on-the-host&quot;&gt;The practical solution: Run it on the host&lt;/h2&gt;
&lt;p&gt;At the same time I realized that AdGuard home ships a single binary to deploy on my server. This is &lt;a rel=&quot;external&quot; href=&quot;https://adguard-dns.io/kb/adguard-home/getting-started/&quot;&gt;the recommended installation path&lt;/a&gt;. Running a UDP DNS server on a privileged port inside rootless Docker means fighting the kernel and port forwarding.&lt;/p&gt;
&lt;p&gt;So I decided to ditch Docker and run AdGuard Home with systemd. It&#39;s a single static binary, and it installs itself as a service:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -LO&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; https://github.com/AdguardTeam/AdGuardHome/releases/latest/download/AdGuardHome_linux_amd64.tar.gz&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;tar&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -xzf&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; AdGuardHome_linux_amd64.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I could re-use my existing config and query data by passing the work dir and config file:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; ./AdGuardHome&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -s&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -c&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; ~/docker/adguard/conf/adguardhome.yaml&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -w&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; ~/docker/adguard/work&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This worked pretty much out of the box. Running &lt;code&gt;ss&lt;/code&gt; confirmed that this works:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; sudo ss&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -ulpn&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt; grep&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;:53 &amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;UNCONN&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 0 0&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;font-style: italic;&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;:53&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;font-style: italic;&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;font-style: italic;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; users:&lt;/span&gt;&lt;span&gt;((&lt;/span&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;&amp;quot;AdGuardHome&amp;quot;,pid&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;=432113,fd=8&lt;/span&gt;&lt;span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;AdGuard itself, on port 53, no extra configuration, no sysctls, no port forwarders. And the query log started filling with real client IPs 😅&lt;/p&gt;
&lt;h2 id=&quot;a-bad-gateway&quot;&gt;A bad gateway&lt;/h2&gt;
&lt;p&gt;Caddy still runs in Docker and proxies the dashboard, so I updated the Caddyfile:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;http://adguard.home.arpa {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    reverse_proxy host.docker.internal:3000&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Firefox answered with a &lt;code&gt;502 Bad Gateway&lt;/code&gt;. It turned out that &lt;code&gt;host.docker.internal&lt;/code&gt; is injected automatically in &lt;em&gt;rootful&lt;/em&gt; Docker. In rootless mode, it often exists but points to the loopback of the user namespace rather than the host network, making it unreachable from the container. I could fix this by just using my server&#39;s LAN IP:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;http://adguard.home.arpa {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    reverse_proxy 192.168.0.123:3000&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I reloaded Caddy, hit refresh, and everything worked as expected.&lt;/p&gt;
&lt;h2 id=&quot;final-setup&quot;&gt;Final setup&lt;/h2&gt;
&lt;p&gt;When I set up this server years ago, my goal was to learn Docker. So I did everything in Docker. This works well for complex systems such as home assistant. However, my focus on Docker got in the way here. AdGuard&#39;s setup and deployment with systemd is so simple. Static binaries are great.&lt;/p&gt;
&lt;p&gt;My final setup:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AdGuard Home runs natively on the host via systemd, sees every client&#39;s real IP, per-client filtering works&lt;/li&gt;
&lt;li&gt;Caddy (still in Docker) proxies the dashboard&lt;/li&gt;
&lt;li&gt;DNS runs directly to the host on port 53.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; To preserve source IPs in rootless Docker, use the pasta network driver. However, for simple binaries like AdGuard Home, running natively via systemd is often much simpler and avoids configuration and privilege management.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>GEMDAT: a Python toolkit for site-resolved diffusion analysis in solid-state molecular dynamics</title>
        <published>2026-05-16T00:00:00+00:00</published>
        <updated>2026-05-16T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/gemdat-site-resolved-diffusion-analysis/"/>
        <id>https://stefsmeets.nl/articles/gemdat-site-resolved-diffusion-analysis/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/gemdat-site-resolved-diffusion-analysis/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>How to mount a drive on Linux</title>
        <published>2026-03-07T00:00:00+00:00</published>
        <updated>2026-03-07T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/mount/"/>
        <id>https://stefsmeets.nl/posts/mount/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/mount/">&lt;p&gt;This is a small blog post with how to set up a drive on Debian.&lt;/p&gt;
&lt;p&gt;Find the drive / device location:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;lsblk&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Make drive point (it can be whatever, on my system I use &lt;code&gt;/mnt&lt;/code&gt;):&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;cd /mnt&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;sudo mkdir data2&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mount the drive:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;sudo mount /dev/sdb1 /mnt/data2&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That&#39;s it, the drive is now available under &lt;code&gt;/mnt/data2&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;automounting&quot;&gt;Automounting&lt;/h2&gt;
&lt;p&gt;To automount the drive after reboot, add it to the fstab table:&lt;/p&gt;
&lt;p&gt;First, get the GUID:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;$ sudo blkid&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;/dev/sdb1: LABEL=&amp;quot;Data&amp;quot; UUID=&amp;quot;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&amp;quot; BLOCK_SIZE=&amp;quot;4096&amp;quot; TYPE=&amp;quot;ext4&amp;quot; PARTUUID=&amp;quot;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note the UUID variable. Add the line to &lt;code&gt;/etc/fstab&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;$ nano /etc/fstab&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Add:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;/dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx /mnt/data2 auto nosuid,nodev,n&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
        
    </entry>
    <entry xml:lang="en">
        <title>No.</title>
        <published>2025-12-27T00:00:00+00:00</published>
        <updated>2025-12-27T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/no/"/>
        <id>https://stefsmeets.nl/posts/no/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/no/">&lt;p&gt;I don&#39;t want your newsletter.&lt;/p&gt;
&lt;p&gt;I don&#39;t want your app.&lt;/p&gt;
&lt;p&gt;I don&#39;t want your cookies.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to create an account.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to do a monthly donation to your charity (I will happily do a one-time donation though!)&lt;/p&gt;
&lt;p&gt;I don&#39;t want to see your advertisements.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to have a &#39;no-obligation&#39; conversation.&lt;/p&gt;
&lt;p&gt;I don&#39;t want your loyalty plan.&lt;/p&gt;
&lt;p&gt;I don&#39;t want your stamps.&lt;/p&gt;
&lt;p&gt;I don&#39;t want your customer card.&lt;/p&gt;
&lt;p&gt;I don&#39;t want your discount coupon.&lt;/p&gt;
&lt;p&gt;I don&#39;t want your premium subscription.&lt;/p&gt;
&lt;p&gt;I am not looking for a new challenge or opportunity.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to work with C++ for your innovative data &amp;amp; AI projects or your high-tech clients. I don&#39;t even know C++!&lt;/p&gt;
&lt;p&gt;I still don&#39;t want to work with you if you send me a reminder; if I ignore your first message I&#39;m also going to ignore the second one.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to decide now for a discount.&lt;/p&gt;
&lt;p&gt;I don&#39;t want your exclusive offer.&lt;/p&gt;
&lt;p&gt;I don&#39;t want give my credit card number for a free trial.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to give you a &#39;like or subscribe&#39;.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to fill our your questionnaire.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to rate your app.&lt;/p&gt;
&lt;p&gt;I don&#39;t want whatever you are calling me for.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to fill out your customer satisfaction survey.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to opt-in.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to share my usage data to &#39;help improve my experience&#39;.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to SEO my website.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to try the &#39;new experience&#39;.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to use your chatbot.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to share your article with all my friends.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to disable my adblocker.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to use co-pilot.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to have the &#39;best browsing experience&#39;.&lt;/p&gt;
&lt;p&gt;I don&#39;t want to change my default browser.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt;, I&#39;m really sure.&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Pesticides 2024</title>
        <published>2025-11-26T00:00:00+00:00</published>
        <updated>2025-11-26T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/pesticides2024/"/>
        <id>https://stefsmeets.nl/posts/pesticides2024/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/pesticides2024/">&lt;style&gt;
table {
    width: 100%;
}
table th:first-of-type {
    width: 20%;
}
table th:nth-of-type(2) {
    width: 20%;
}
table th:nth-of-type(2) {
    width: 20%;
}
table th:nth-of-type(2) {
    width: 20%;
}
table th:nth-of-type(2) {
    width: 20%;
}

&lt;/style&gt;
&lt;p&gt;Ik was nieuwsgierig naar de hoeveelheid pesticides in de producten die wij gebruiken. Er zijn namelijk genoeg redenen om te letten op &lt;a rel=&quot;external&quot; href=&quot;https://www.voedingscentrum.nl/encyclopedie/bestrijdingsmiddelen.aspx&quot;&gt;pesticide gebruik&lt;/a&gt;. Zo is er nog veel onbekend over het effect van pesticides, en met name de combinatie van &#39;pesticide cocktails&#39;. Dit betekent niet dat pesticides per definitie schadelijk zijn, er zijn immers duidelijke wettelijke normen voor residuen, maar langdurige directe blootstelling door bv boeren wordt in verband gebracht met verhoogd risico op Parkinson. Daarnaast is overmatig pesticide gebruik (in de niet biologische teelt wordt preventief gespoten) desastreus voor de biodiversiteit, het bodemleven, en de waterkwaliteit, terwijl er prima biologisch geteeld kan worden. Een van de eisen voor biologische teelt is dat er &lt;em&gt;niet&lt;/em&gt; preventief gespoten mag worden, waardoor het gebruikt van bestrijdingsmiddelen vele malen lager ligt.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https://www.pan-netherlands.org/&quot;&gt;PAN (Pesticide Action Network)&lt;/a&gt; publiceert de &lt;a rel=&quot;external&quot; href=&quot;https://www.pan-netherlands.org/eetwijzer/&quot;&gt;Pesticide eetwijzer&lt;/a&gt; met een ranglijst van groenten en fruit waar het meeste aantal pesticides bij gebruikt worden.&lt;/p&gt;
&lt;p&gt;Ik wilde iets meer in de data duiken. Nu blijkt het dat de &lt;a rel=&quot;external&quot; href=&quot;https://www.nvwa.nl&quot;&gt;NVWA&lt;/a&gt; jaarlijks de individuele analyseresultaten van steekproeven naar residuen van bestrijdingsmiddelen op levensmiddelen publiceert: &lt;a rel=&quot;external&quot; href=&quot;https://www.nvwa.nl/onderwerpen/residuen-van-bestrijdingsmiddelen-in-levensmiddelen/documenten/consument/eten-drinken-roken/bestrijdingsmiddelen/publicaties/individuele-analyseresultaten-monsters-levensmiddelen-2024&quot;&gt;Individuele analyseresultaten van monsters van levensmiddelen 2024 (NVWA)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;De data zijn alleen beschikbaar als pdf. Echter zijn er een aantal Python packages beschikbaar die beweren tabellen uit pdfs te kunnen lezen.&lt;/p&gt;
&lt;p&gt;Ik kwam vrij snel bij &lt;a rel=&quot;external&quot; href=&quot;https://github.com/jsvine/pdfplumber&quot;&gt;pdfplumber&lt;/a&gt; uit, en deze gaf direct een bruikbaar resultaat. Min of meer kwam ik hier op uit:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; pdfplumber&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; pandas&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; as&lt;/span&gt;&lt;span&gt; pd&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;pdf&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; pdfplumber&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;open&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;   &amp;quot;individuele-analyseresultaten-van-monsters-levensmiddelen-2024.pdf&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;for&lt;/span&gt;&lt;span&gt; i&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; page&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; enumerate&lt;/span&gt;&lt;span&gt;(pdf&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;pages)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    table&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; page&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;extract_table&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    for&lt;/span&gt;&lt;span&gt; row&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; in&lt;/span&gt;&lt;span&gt; table&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        rows&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;append&lt;/span&gt;&lt;span&gt;(row)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;df&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; pd&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;DataFrame&lt;/span&gt;&lt;span&gt;(rows)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;df&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;to_csv&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;data.csv&amp;quot;&lt;/span&gt;&lt;span&gt;)S&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ik moest handmatig nog horizontale lijnen toevoegen, en soms versprongen de gevonden kolommen per pagina. Dit kwam omdat sommige producten over meerdere pagina&#39;s uitgerekt zijn en pdfplumber per pagina de tabel eruit trekt. Daarna heb ik de data nog wat opgeschoond om er wat makkelijker mee te kunnen werken.&lt;/p&gt;
&lt;p&gt;De data staat hier: &lt;a href=&quot;https://stefsmeets.nl/posts/pesticides2024/./data2024.csv&quot;&gt;data2024.csv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mijn code staat hier:  &lt;a rel=&quot;external&quot; href=&quot;https://github.com/stefsmeets/pesticides&quot;&gt;github.com/stefsmeets/pesticides&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En de bron data is hier te vinden: &lt;a rel=&quot;external&quot; href=&quot;https://www.nvwa.nl/onderwerpen/residuen-van-bestrijdingsmiddelen-in-levensmiddelen/documenten/consument/eten-drinken-roken/bestrijdingsmiddelen/publicaties/individuele-analyseresultaten-monsters-levensmiddelen-2024&quot;&gt;Individuele analyseresultaten van monsters van levensmiddelen 2024 (NVWA)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;De tabellen hieronder laten per productgroep de meeste gebruikte bestrijdingsmiddelen zien.
Hierbij geeft &#39;% obs&#39; aan in hoeveel steekproeven dit bestrijdingsmiddel was gevonden. &#39;mg/kg&#39; is de gemiddelde hoeveelheid per analyse, en MRL is de wettelijk bepaalde &lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;maximale residulimit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Productgroepen met minder dan 3 steekproeven heb ik niet meegenomen en analyses die minder dan 20% voorkomt ook niet.&lt;/p&gt;
&lt;h2 id=&quot;aardappelen&quot;&gt;aardappelen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Propamocarb&quot;&gt;propamocarb&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluopicolid&quot;&gt;fluopicolide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluxapyroxa&quot;&gt;fluxapyroxad&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 36&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.7&lt;/li&gt;
&lt;li&gt;Aantal analyses: 60 ( conform: 58, niet conform*: 2 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;aardbeien&quot;&gt;aardbeien&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;74%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.12&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Strobiluri&quot;&gt;trifloxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;59%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;48%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.29&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;6.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Cyprodinil&quot;&gt;cyprodinil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;41%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.22&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;41%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.19&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;mepanipyrim&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;37%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.34&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.08&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;bupirimaat&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;penconazool&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;ethirimol&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;fenhexamid&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.30&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 27&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 6.3&lt;/li&gt;
&lt;li&gt;Aantal analyses: 169 ( conform: 165, niet conform*: 4 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;abrikozen&quot;&gt;abrikozen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Captan&quot;&gt;captan (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;89%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.63&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;dodine&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;89%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.21&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;78%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Cypermethri&quot;&gt;cypermethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Strobiluri&quot;&gt;trifloxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;44%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;fenvaleraat (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;44%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;thiacloprid&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyhalothrin‐lambda&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.75&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 9&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 5.8&lt;/li&gt;
&lt;li&gt;Aantal analyses: 52 ( conform: 52 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;ananassen&quot;&gt;ananassen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.53&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 17&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.2&lt;/li&gt;
&lt;li&gt;Aantal analyses: 21 ( conform: 20, niet conform: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;andijvie&quot;&gt;andijvie&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.22&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;pirimicarb&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.40&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.50&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;fenpropidin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorantraniliprol&quot;&gt;chloorantraniliprole&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.56&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.4&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Spinosa&quot;&gt;spinosad&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.34&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Thiabendazool&quot;&gt;thiabendazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.2&lt;/li&gt;
&lt;li&gt;Aantal analyses: 13 ( conform: 12, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;appelen&quot;&gt;appelen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Captan&quot;&gt;captan (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;95%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.70&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;71%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;44%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.08&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;35%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Cyprodinil&quot;&gt;cyprodinil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;24%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyrimethanil&quot;&gt;pyrimethanil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;23%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.65&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 62&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.6&lt;/li&gt;
&lt;li&gt;Aantal analyses: 225 ( conform: 225 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;aubergines&quot;&gt;aubergines&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Koper(II)sulfaat&quot;&gt;koper&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide/bactericide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.49&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Bromine&quot;&gt;bromide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fumigant/bodemsterilisator&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;69%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.88&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;44%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.4&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 32&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.7&lt;/li&gt;
&lt;li&gt;Aantal analyses: 119 ( conform: 117, niet conform: 2 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;avocados&quot;&gt;avocados&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Thiabendazool&quot;&gt;thiabendazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.48&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 24&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.2&lt;/li&gt;
&lt;li&gt;Aantal analyses: 29 ( conform: 28, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;baby-en-kleutervoeding&quot;&gt;baby‐en kleutervoeding&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;BACs (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.00&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorat&quot;&gt;chloraat&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Herbicide/ontsmettingsmiddel&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 4 ( conform: 4 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bakbananen&quot;&gt;bakbananen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.12&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Thiabendazool&quot;&gt;thiabendazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.30&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;6.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;bifenthrin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorpyrifo&quot;&gt;chloorpyrifos‐ethyl&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Koper(II)sulfaat&quot;&gt;koper&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide/bactericide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.74&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyriproxyfen&quot;&gt;pyriproxyfen&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.7&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 3&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 9 ( conform: 8, niet conform: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bananen&quot;&gt;bananen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Koper(II)sulfaat&quot;&gt;koper&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide/bactericide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;87%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.81&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;83%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.20&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Bromine&quot;&gt;bromide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fumigant/bodemsterilisator&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;53%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.28&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;fenpropimorf&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;43%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;myclobutanil&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;37%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.11&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;bifenthrin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyriproxyfen&quot;&gt;pyriproxyfen&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;27%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.13&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.7&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Thiabendazool&quot;&gt;thiabendazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;23%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.23&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;6.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 30&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 4.3&lt;/li&gt;
&lt;li&gt;Aantal analyses: 130 ( conform: 127, niet conform*: 3 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;basilicum&quot;&gt;basilicum&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Dimethomorp&quot;&gt;dimethomorf&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.29&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Metalaxy&quot;&gt;metalaxyl&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.26&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;350.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.87&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Captan&quot;&gt;captan (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.16&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorpyrifo&quot;&gt;chloorpyrifos‐ethyl&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;thiofanaat‐methyl&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.38&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyhalothrin‐lambda&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.20&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;250.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Carbendazim&quot;&gt;carbendazim&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.23&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;haloxyfop (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;ethyleenoxide (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.25&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;propiconazool&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;myclobutanil&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.25&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 6.2&lt;/li&gt;
&lt;li&gt;Aantal analyses: 25 ( conform: 24, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bataten-zoete-aardappelen&quot;&gt;bataten (zoete aardappelen)&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;76%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.86&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 17&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.4&lt;/li&gt;
&lt;li&gt;Aantal analyses: 24 ( conform: 18, niet conform: 4, niet conform*: 2 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;blauwe-bessen&quot;&gt;blauwe bessen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;59%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.16&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;47%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.14&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;35%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Cyprodinil&quot;&gt;cyprodinil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.09&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;8.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;24%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.09&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 17&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 51 ( conform: 50, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bleekselderij&quot;&gt;bleekselderij&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;83%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluxapyroxa&quot;&gt;fluxapyroxad&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;9.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 6&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 2.8&lt;/li&gt;
&lt;li&gt;Aantal analyses: 17 ( conform: 17 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bloemkolen&quot;&gt;bloemkolen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.09&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 5&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 5 ( conform: 5 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bonen-droog&quot;&gt;bonen (droog)&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Carbendazim&quot;&gt;carbendazim&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Thiamethoxa&quot;&gt;thiamethoxam&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;haloxyfop (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Clothianidi&quot;&gt;clothianidin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 7&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 2.6&lt;/li&gt;
&lt;li&gt;Aantal analyses: 18 ( conform: 13, niet conform: 3, niet conform*: 2 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bosuien-groene-uien-en-stengeluien&quot;&gt;bosuien/groene uien en stengeluien&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Dimethomorp&quot;&gt;dimethomorf&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.16&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;9.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;ametoctradin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.73&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.11&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Cyprodinil&quot;&gt;cyprodinil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.20&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.8&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;9.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluopicolid&quot;&gt;fluopicolide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.30&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;oxathiapiproline&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Propamocarb&quot;&gt;propamocarb&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;6.60&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Spinosa&quot;&gt;spinosad&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 4.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 16 ( conform: 16 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;broccoli&quot;&gt;broccoli&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Koper(II)sulfaat&quot;&gt;koper&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide/bactericide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;59%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.54&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Bromine&quot;&gt;bromide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fumigant/bodemsterilisator&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;56%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.94&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;23%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Propamocarb&quot;&gt;propamocarb&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;21%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 39&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 2.9&lt;/li&gt;
&lt;li&gt;Aantal analyses: 112 ( conform: 110, niet conform*: 2 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;carambolas&quot;&gt;carambolas&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Cypermethri&quot;&gt;cypermethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.8&lt;/li&gt;
&lt;li&gt;Aantal analyses: 7 ( conform: 7 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;cavendish-bananen&quot;&gt;cavendish‐bananen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.47&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;bifenthrin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Koper(II)sulfaat&quot;&gt;koper&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide/bactericide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.66&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyriproxyfen&quot;&gt;pyriproxyfen&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.7&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;fenpropimorf&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Captan&quot;&gt;captan (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Bromine&quot;&gt;bromide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fumigant/bodemsterilisator&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.32&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;myclobutanil&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.11&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Spinosa&quot;&gt;spinosad&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Thiabendazool&quot;&gt;thiabendazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.14&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;6.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 4.8&lt;/li&gt;
&lt;li&gt;Aantal analyses: 19 ( conform: 19 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;champignons&quot;&gt;champignons&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Koper(II)sulfaat&quot;&gt;koper&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide/bactericide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.86&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Bromine&quot;&gt;bromide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fumigant/bodemsterilisator&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.63&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 27&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.4&lt;/li&gt;
&lt;li&gt;Aantal analyses: 39 ( conform: 37, niet conform: 1, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chayotes-vruchtgroente&quot;&gt;chayotes, vruchtgroente&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Flupyradifuron&quot;&gt;flupyradifurone&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluopicolid&quot;&gt;fluopicolide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 3&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.3&lt;/li&gt;
&lt;li&gt;Aantal analyses: 4 ( conform: 4 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chilipepers&quot;&gt;chilipepers&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;43%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Cypermethri&quot;&gt;cypermethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;36%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;36%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.12&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.9&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluxapyroxa&quot;&gt;fluxapyroxad&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;21%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Carbendazim&quot;&gt;carbendazim&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;21%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.27&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Thiabendazool&quot;&gt;thiabendazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;21%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;21%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Imidaclopri&quot;&gt;imidacloprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;21%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.5&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 14&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 5.4&lt;/li&gt;
&lt;li&gt;Aantal analyses: 75 ( conform: 61, niet conform: 9, niet conform*: 5 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chinese-kool-petsai&quot;&gt;chinese kool/petsai&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;57%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Thiabendazool&quot;&gt;thiabendazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 7&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.6&lt;/li&gt;
&lt;li&gt;Aantal analyses: 11 ( conform: 10, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;citroenen&quot;&gt;citroenen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Imazalil&quot;&gt;imazalil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;88%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.70&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;hexythiazox&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Acaricide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;62%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;62%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyrimethanil&quot;&gt;pyrimethanil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;56%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.59&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;8.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyriproxyfen&quot;&gt;pyriproxyfen&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;44%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;38%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.52&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Thiabendazool&quot;&gt;thiabendazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.66&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;fenpyroximaat&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 16&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 5.3&lt;/li&gt;
&lt;li&gt;Aantal analyses: 85 ( conform: 84, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;clementines&quot;&gt;clementines&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyriproxyfen&quot;&gt;pyriproxyfen&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.7&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.9&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;hexythiazox&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Acaricide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyrimethanil&quot;&gt;pyrimethanil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.25&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;8.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;fenpyroximaat&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/2,4-Dichlorophenoxyacetic_aci&quot;&gt;2,4‐D&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Herbicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyhalothrin‐lambda&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;pyridaben&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Imazalil&quot;&gt;imazalil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.40&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Thiabendazool&quot;&gt;thiabendazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.10&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 4.8&lt;/li&gt;
&lt;li&gt;Aantal analyses: 19 ( conform: 19 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;courgettes&quot;&gt;courgettes&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Propamocarb&quot;&gt;propamocarb&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;35%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.14&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;flonicamid (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;35%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;24%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 17&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 2.4&lt;/li&gt;
&lt;li&gt;Aantal analyses: 40 ( conform: 40 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;erwten-met-peul-vers&quot;&gt;erwten (met peul, vers)&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;77%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;46%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Deltamethri&quot;&gt;deltamethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;23%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;23%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 13&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 2.8&lt;/li&gt;
&lt;li&gt;Aantal analyses: 37 ( conform: 35, niet conform: 1, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;frambozen-geel-en-rood&quot;&gt;frambozen (geel en rood)&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;clofentezin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;bifenazaat (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Cyprodinil&quot;&gt;cyprodinil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.20&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;fenhexamid&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.48&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.20&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyrimethanil&quot;&gt;pyrimethanil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 12 ( conform: 12 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;gehakt&quot;&gt;gehakt&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorat&quot;&gt;chloraat&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Herbicide/ontsmettingsmiddel&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 6&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 6 ( conform: 4, niet conform*: 2 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;gerst&quot;&gt;gerst&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Deltamethri&quot;&gt;deltamethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.23&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;pirimifos‐methyl&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;80%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.16&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 5&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.8&lt;/li&gt;
&lt;li&gt;Aantal analyses: 9 ( conform: 9 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;granaatappels&quot;&gt;granaatappels&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;38%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.49&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 16&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.9&lt;/li&gt;
&lt;li&gt;Aantal analyses: 31 ( conform: 24, niet conform*: 5, niet conform: 2 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;grapefruits&quot;&gt;grapefruits&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Imazalil&quot;&gt;imazalil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;90%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.29&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Thiabendazool&quot;&gt;thiabendazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;60%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.10&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyrimethanil&quot;&gt;pyrimethanil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;58%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.74&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;8.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Koper(II)sulfaat&quot;&gt;koper&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide/bactericide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;52%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.41&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Methoxyfenozi&quot;&gt;methoxyfenozide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Bromine&quot;&gt;bromide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fumigant/bodemsterilisator&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;31%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.65&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyriproxyfen&quot;&gt;pyriproxyfen&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.7&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;fosetyl (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;27%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.52&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 52&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 5.8&lt;/li&gt;
&lt;li&gt;Aantal analyses: 304 ( conform: 301, niet conform: 3 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;hop&quot;&gt;hop&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.55&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;80.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;metrafenon&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.81&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;80.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;83%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.21&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;ametoctradin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;83%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.25&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;90.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Dimethomorp&quot;&gt;dimethomorf&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;83%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.18&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;80.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;mandipropamid&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;83%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;8.47&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;90.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;83%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.45&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.41&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;60.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.41&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;myclobutanil&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.81&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;6.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 6&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 8.3&lt;/li&gt;
&lt;li&gt;Aantal analyses: 50 ( conform: 50 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;ijsbergsla&quot;&gt;ijsbergsla&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Propamocarb&quot;&gt;propamocarb&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Metalaxy&quot;&gt;metalaxyl&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Strobiluri&quot;&gt;trifloxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 5&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 15 ( conform: 15 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;kaas-hard&quot;&gt;kaas hard&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorat&quot;&gt;chloraat&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Herbicide/ontsmettingsmiddel&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 3&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 3 ( conform: 3 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;kakis-japanse-persimoenen&quot;&gt;kakis/japanse persimoenen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.8&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyhalothrin‐lambda&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.09&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;sulfoxaflor&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.2&lt;/li&gt;
&lt;li&gt;Aantal analyses: 5 ( conform: 5 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;kersen-zoet&quot;&gt;kersen (zoet)&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;71%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;71%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.44&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;71%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.21&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;57%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;43%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;fosmet&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.08&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 7&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 5.1&lt;/li&gt;
&lt;li&gt;Aantal analyses: 36 ( conform: 35, niet conform: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;kerstomaten&quot;&gt;kerstomaten&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;mandipropamid&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.10&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;sulfoxaflor&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;fenpyrazamine&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Cyprodinil&quot;&gt;cyprodinil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.12&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorantraniliprol&quot;&gt;chloorantraniliprole&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Propamocarb&quot;&gt;propamocarb&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.14&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;spiromesifen&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Strobiluri&quot;&gt;trifloxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.7&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 4.8&lt;/li&gt;
&lt;li&gt;Aantal analyses: 19 ( conform: 19 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;kippeneieren&quot;&gt;kippeneieren&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Koper(II)sulfaat&quot;&gt;koper&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide/bactericide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.61&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 21&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 21 ( conform: 21 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;kiwis-geel-groen-rood&quot;&gt;kiwis (geel, groen, rood)&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;fenhexamid&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.18&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 6&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.5&lt;/li&gt;
&lt;li&gt;Aantal analyses: 9 ( conform: 9 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;knolselderij&quot;&gt;knolselderij&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.4&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;prosulfocarb&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.08&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyhalothrin‐lambda&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluxapyroxa&quot;&gt;fluxapyroxad&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.9&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.8&lt;/li&gt;
&lt;li&gt;Aantal analyses: 15 ( conform: 15 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;knolvenkel&quot;&gt;knolvenkel&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;9.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Cyprodinil&quot;&gt;cyprodinil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.09&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Bifenyl-2-ol&quot;&gt;fenylfenol‐2&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide/bactericide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;penthiopyrad&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 2.5&lt;/li&gt;
&lt;li&gt;Aantal analyses: 10 ( conform: 10 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;koffiebonen&quot;&gt;koffiebonen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Clothianidi&quot;&gt;clothianidin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;57%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Thiamethoxa&quot;&gt;thiamethoxam&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;57%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Imidaclopri&quot;&gt;imidacloprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorpyrifo&quot;&gt;chloorpyrifos‐ethyl&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 7&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 2.3&lt;/li&gt;
&lt;li&gt;Aantal analyses: 16 ( conform: 12, niet conform: 3, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;kokosnoten&quot;&gt;kokosnoten&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;anthrachinon&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Bifenyl-2-ol&quot;&gt;fenylfenol‐2&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide/bactericide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.24&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;bifenyl&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.14&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 3&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 2.3&lt;/li&gt;
&lt;li&gt;Aantal analyses: 7 ( niet conform: 4, niet conform*: 2, conform: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;komkommers&quot;&gt;komkommers&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Propamocarb&quot;&gt;propamocarb&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.35&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Cyprodinil&quot;&gt;cyprodinil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;38%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyazofamid&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;38%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;flonicamid (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;38%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Spinosa&quot;&gt;spinosad&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;38%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.4&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;ametoctradin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 8&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.2&lt;/li&gt;
&lt;li&gt;Aantal analyses: 26 ( conform: 26 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;krent&quot;&gt;krent&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.13&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluxapyroxa&quot;&gt;fluxapyroxad&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;myclobutanil&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Strobiluri&quot;&gt;trifloxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.08&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Dimethomorp&quot;&gt;dimethomorf&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Cypermethri&quot;&gt;cypermethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyhalothrin‐lambda&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.4&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;ametoctradin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyflufenamid&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyazofamid&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;ethirimol&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;mandipropamid&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluopicolid&quot;&gt;fluopicolide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Deltamethri&quot;&gt;deltamethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;mepanipyrim&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Metalaxy&quot;&gt;metalaxyl&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;spiroxamine&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;pyriofenone&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.5&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 9.5&lt;/li&gt;
&lt;li&gt;Aantal analyses: 38 ( conform: 38 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;kropsla&quot;&gt;kropsla&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.20&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Propamocarb&quot;&gt;propamocarb&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.98&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.08&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Dimethomorp&quot;&gt;dimethomorf&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluopicolid&quot;&gt;fluopicolide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;6.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 3&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.3&lt;/li&gt;
&lt;li&gt;Aantal analyses: 10 ( conform: 10 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;kweeperen&quot;&gt;kweeperen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorantraniliprol&quot;&gt;chloorantraniliprole&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.4&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.8&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Methoxyfenozi&quot;&gt;methoxyfenozide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyhalothrin‐lambda&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Deltamethri&quot;&gt;deltamethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyriproxyfen&quot;&gt;pyriproxyfen&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 3&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 4.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 12 ( conform: 12 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;limoenen-lemmetjes&quot;&gt;limoenen, lemmetjes&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Imazalil&quot;&gt;imazalil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;85%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.07&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;81%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.29&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;62%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.39&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;malathion (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;46%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.10&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyriproxyfen&quot;&gt;pyriproxyfen&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;42%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.7&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyhalothrin‐lambda&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;23%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.2&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 26&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 4.9&lt;/li&gt;
&lt;li&gt;Aantal analyses: 128 ( conform: 125, niet conform: 2, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;mandarijnen&quot;&gt;mandarijnen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Imazalil&quot;&gt;imazalil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;89%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.07&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Thiabendazool&quot;&gt;thiabendazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;87%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.90&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyrimethanil&quot;&gt;pyrimethanil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;82%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.78&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;8.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/2,4-Dichlorophenoxyacetic_aci&quot;&gt;2,4‐D&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Herbicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;68%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.16&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;47%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.42&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;34%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;32%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyriproxyfen&quot;&gt;pyriproxyfen&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.7&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;21%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 38&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 5.7&lt;/li&gt;
&lt;li&gt;Aantal analyses: 216 ( conform: 216 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;mangos&quot;&gt;mangos&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;91%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.28&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;68%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.33&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 47&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 2.1&lt;/li&gt;
&lt;li&gt;Aantal analyses: 99 ( conform: 99 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;meloenen&quot;&gt;meloenen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Koper(II)sulfaat&quot;&gt;koper&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide/bactericide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.42&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;36%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Imazalil&quot;&gt;imazalil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.36&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;23%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 44&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.5&lt;/li&gt;
&lt;li&gt;Aantal analyses: 152 ( conform: 151, niet conform: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;nashis-japanse-peren&quot;&gt;nashis/japanse peren&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;83%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.4&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyhalothrin‐lambda&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.08&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 6&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 18 ( conform: 15, niet conform: 2, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;nectarines&quot;&gt;nectarines&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;70%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Deltamethri&quot;&gt;deltamethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;60%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Spinosa&quot;&gt;spinosad&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.16&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Cyprodinil&quot;&gt;cyprodinil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Captan&quot;&gt;captan (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;6.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;spinetoram&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 10&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 4.1&lt;/li&gt;
&lt;li&gt;Aantal analyses: 41 ( conform: 41 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;niet-scherpsmakende-pepers-paprikas&quot;&gt;niet‐scherpsmakende pepers/paprikas&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;43%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Koper(II)sulfaat&quot;&gt;koper&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide/bactericide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;37%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.56&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;32%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.9&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Bromine&quot;&gt;bromide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fumigant/bodemsterilisator&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;32%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluxapyroxa&quot;&gt;fluxapyroxad&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;26%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;26%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 65&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 4.1&lt;/li&gt;
&lt;li&gt;Aantal analyses: 269 ( conform: 264, niet conform*: 4, niet conform: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;okras-okers&quot;&gt;okras, okers&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Imidaclopri&quot;&gt;imidacloprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;83%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 6&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 2.8&lt;/li&gt;
&lt;li&gt;Aantal analyses: 17 ( conform: 16, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;olijven-voor-oliewinning&quot;&gt;olijven voor oliewinning&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Deltamethri&quot;&gt;deltamethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Strobiluri&quot;&gt;trifloxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 3&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.3&lt;/li&gt;
&lt;li&gt;Aantal analyses: 4 ( conform: 4 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;paksoi&quot;&gt;paksoi&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.41&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;9.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.08&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Spinosa&quot;&gt;spinosad&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.30&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;propyzamid&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Propamocarb&quot;&gt;propamocarb&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.36&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Deltamethri&quot;&gt;deltamethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.12&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Flupyradifuron&quot;&gt;flupyradifurone&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 10&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 2.9&lt;/li&gt;
&lt;li&gt;Aantal analyses: 29 ( conform: 26, niet conform*: 3 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;pangasius&quot;&gt;pangasius&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorat&quot;&gt;chloraat&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Herbicide/ontsmettingsmiddel&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.7&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 5&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 5 ( conform: 3, niet conform: 2 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;papajas&quot;&gt;papajas&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Thiabendazool&quot;&gt;thiabendazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;42%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.26&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 12&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.7&lt;/li&gt;
&lt;li&gt;Aantal analyses: 20 ( conform: 20 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;paprikapoeder&quot;&gt;paprikapoeder&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Clothianidi&quot;&gt;clothianidin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;lufenuron&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Thiamethoxa&quot;&gt;thiamethoxam&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorantraniliprol&quot;&gt;chloorantraniliprole&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Imidaclopri&quot;&gt;imidacloprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.30&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Dimethomorp&quot;&gt;dimethomorf&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.23&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;chloorfenapyr&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide/miticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.09&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.29&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;broompropylaat&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Carbendazim&quot;&gt;carbendazim&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/2,4-Dichlorophenoxyacetic_aci&quot;&gt;2,4‐D&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Herbicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.10&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.25&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;MCPA en MCPB (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.09&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.25&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Deltamethri&quot;&gt;deltamethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Cypermethri&quot;&gt;cypermethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.00&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyhalothrin‐lambda&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.09&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorpyrifo&quot;&gt;chloorpyrifos‐ethyl&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;chloorthalonil&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.20&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluopicolid&quot;&gt;fluopicolide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;flubendiamide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Metalaxy&quot;&gt;metalaxyl&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;kresoxim‐methyl&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;8.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;indoxacarb&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;haloxyfop (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;pendimethalin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.25&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;penconazool&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Methoxyfenozi&quot;&gt;methoxyfenozide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Strobiluri&quot;&gt;trifloxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.17&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 13.2&lt;/li&gt;
&lt;li&gt;Aantal analyses: 53 ( conform: 50, niet conform*: 3 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;passievruchten-maracujas&quot;&gt;passievruchten/maracujas&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.12&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Strobiluri&quot;&gt;trifloxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 12&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.1&lt;/li&gt;
&lt;li&gt;Aantal analyses: 37 ( conform: 36, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;peren&quot;&gt;peren&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Captan&quot;&gt;captan (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;95%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.56&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;92%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.26&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Cyprodinil&quot;&gt;cyprodinil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;74%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.14&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyrimethanil&quot;&gt;pyrimethanil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;51%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.12&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;44%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.09&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;41%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;23%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.8&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;21%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.8&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 39&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 4.8&lt;/li&gt;
&lt;li&gt;Aantal analyses: 186 ( conform: 185, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;perziken&quot;&gt;perziken&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;45%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.12&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Deltamethri&quot;&gt;deltamethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;45%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;27%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.11&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyhalothrin‐lambda&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;27%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;27%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;27%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 11&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.6&lt;/li&gt;
&lt;li&gt;Aantal analyses: 40 ( conform: 40 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;peterselie&quot;&gt;peterselie&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;pendimethalin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.11&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorpyrifo&quot;&gt;chloorpyrifos‐ethyl&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;83%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.09&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;anthrachinon&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.90&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.15&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;350.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;bifenyl&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.35&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;thiofanaat‐methyl&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.14&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;chloorfenapyr&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide/miticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Dimethomorp&quot;&gt;dimethomorf&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;ethofumesaat&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;profenofos&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Propamocarb&quot;&gt;propamocarb&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;150.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;propiconazool&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.40&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;penconazool&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;mepanipyrim&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;oxyfluorfen&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;linuron&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Carbendazim&quot;&gt;carbendazim&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.22&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 6&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 11.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 66 ( conform: 63, niet conform: 3 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;pistaches&quot;&gt;pistaches&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;83%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Methoxyfenozi&quot;&gt;methoxyfenozide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Clothianidi&quot;&gt;clothianidin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Thiamethoxa&quot;&gt;thiamethoxam&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 6&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 18 ( conform: 13, niet conform*: 3, niet conform: 2 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;pitayas-drakenvruchten&quot;&gt;pitayas/drakenvruchten&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Carbendazim&quot;&gt;carbendazim&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;chloorfenapyr&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide/miticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.08&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyflumetofen&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyhalothrin‐lambda&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Cypermethri&quot;&gt;cypermethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Metalaxy&quot;&gt;metalaxyl&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;permethrin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 12 ( conform: 5, niet conform*: 4, niet conform: 3 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;plantaardige-olie-ongeraffin&quot;&gt;plantaardige olie (ongeraffin)&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Captan&quot;&gt;captan (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 3&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 3 ( conform: 3 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;platte-perziken-paraguayos&quot;&gt;platte perziken/paraguayos&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Deltamethri&quot;&gt;deltamethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Strobiluri&quot;&gt;trifloxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;38%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;38%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.28&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 8&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.1&lt;/li&gt;
&lt;li&gt;Aantal analyses: 25 ( conform: 25 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;pompoenen&quot;&gt;pompoenen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyhalothrin‐lambda&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.4&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 3&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.3&lt;/li&gt;
&lt;li&gt;Aantal analyses: 4 ( conform: 4 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;preien&quot;&gt;preien&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;78%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.8&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Propamocarb&quot;&gt;propamocarb&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;44%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.16&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluopicolid&quot;&gt;fluopicolide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;44%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;ametoctradin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Spinosa&quot;&gt;spinosad&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Strobiluri&quot;&gt;trifloxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.7&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 9&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.8&lt;/li&gt;
&lt;li&gt;Aantal analyses: 34 ( conform: 34 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;pruimen&quot;&gt;pruimen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;60%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.42&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Cyprodinil&quot;&gt;cyprodinil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorantraniliprol&quot;&gt;chloorantraniliprole&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;spirodiclofen&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 10&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 2.4&lt;/li&gt;
&lt;li&gt;Aantal analyses: 24 ( conform: 24 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;raketsla-rucola&quot;&gt;raketsla/rucola&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorantraniliprol&quot;&gt;chloorantraniliprole&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.49&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Deltamethri&quot;&gt;deltamethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.10&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;mandipropamid&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.34&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Metalaxy&quot;&gt;metalaxyl&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.40&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 3&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 2.7&lt;/li&gt;
&lt;li&gt;Aantal analyses: 8 ( conform: 8 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;rijst&quot;&gt;rijst&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;52%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;isoprothiolane&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;39%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.39&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;6.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;tricyclazool&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;39%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;35%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Thiamethoxa&quot;&gt;thiamethoxam&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;26%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;dinotefuran&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;26%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;8.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 23&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.3&lt;/li&gt;
&lt;li&gt;Aantal analyses: 75 ( conform: 64, niet conform*: 6, niet conform: 5 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;rozijn&quot;&gt;rozijn&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;79%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.13&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyhalothrin‐lambda&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;75%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.4&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;71%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;64%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.23&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyrimethanil&quot;&gt;pyrimethanil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;64%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.40&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Cyprodinil&quot;&gt;cyprodinil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;61%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.42&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Methoxyfenozi&quot;&gt;methoxyfenozide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;61%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.11&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Dimethomorp&quot;&gt;dimethomorf&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;61%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;57%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.09&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluxapyroxa&quot;&gt;fluxapyroxad&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;57%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;fenvaleraat (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;57%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Metalaxy&quot;&gt;metalaxyl&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.26&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;penconazool&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;46%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;ametoctradin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;46%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;proquinazid&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;43%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;43%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;39%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;metrafenon&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;39%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;35.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyflufenamid&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;36%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluopicolid&quot;&gt;fluopicolide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;36%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;tetraconazool&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.35&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Cypermethri&quot;&gt;cypermethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Strobiluri&quot;&gt;trifloxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;zoxamide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;sulfoxaflor&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;indoxacarb&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;mandipropamid&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;21%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;iprovalicarb&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;21%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 28&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 16.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 447 ( conform: 444, niet conform*: 2, niet conform: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;shaddocks-pomelos&quot;&gt;shaddocks/pomelos&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Imazalil&quot;&gt;imazalil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;92%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.29&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Acetamiprid&quot;&gt;acetamiprid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;69%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.9&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;62%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;62%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;46%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;prochloraz (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;38%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Thiabendazool&quot;&gt;thiabendazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;38%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;paclobutrazool&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;31%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyriproxyfen&quot;&gt;pyriproxyfen&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;23%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Clothianidi&quot;&gt;clothianidin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;23%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;bifenthrin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;23%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 13&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 6.8&lt;/li&gt;
&lt;li&gt;Aantal analyses: 88 ( conform: 80, niet conform*: 5, niet conform: 3 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sinaasappelen&quot;&gt;sinaasappelen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Thiabendazool&quot;&gt;thiabendazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;84%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.84&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Imazalil&quot;&gt;imazalil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;79%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.86&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyrimethanil&quot;&gt;pyrimethanil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.28&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;8.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;51%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.00&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Bifenyl-2-ol&quot;&gt;fenylfenol‐2&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide/bactericide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;44%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.23&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyriproxyfen&quot;&gt;pyriproxyfen&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;42%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/2,4-Dichlorophenoxyacetic_aci&quot;&gt;2,4‐D&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Herbicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;42%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.10&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;37%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.63&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;26%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 43&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 5.8&lt;/li&gt;
&lt;li&gt;Aantal analyses: 251 ( conform: 250, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sojabonen&quot;&gt;sojabonen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;anthrachinon&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;60%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;diquat&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;60%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;glyfosaat&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;60%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.10&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyproconazool&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;fluazifop (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;haloxyfop (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;prothioconazool‐desthio&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.75&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 5&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 15 ( conform: 13, niet conform*: 2 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sperziebonen-snijbonen&quot;&gt;sperziebonen/snijbonen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorantraniliprol&quot;&gt;chloorantraniliprole&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;46%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.8&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;38%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.17&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;38%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;38%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Strobiluri&quot;&gt;trifloxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;27%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 26&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 77 ( conform: 74, niet conform*: 2, niet conform: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;spinazie&quot;&gt;spinazie&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;cyhalothrin‐lambda&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;71%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Propamocarb&quot;&gt;propamocarb&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;57%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.26&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluopicolid&quot;&gt;fluopicolide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;57%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.24&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;6.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Flupyradifuron&quot;&gt;flupyradifurone&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;43%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;6.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.09&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;mandipropamid&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.23&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 7&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 4.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 28 ( conform: 28 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;spruitjes&quot;&gt;spruitjes&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;86%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;71%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.4&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;43%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;prothioconazool‐desthio&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 7&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.3&lt;/li&gt;
&lt;li&gt;Aantal analyses: 23 ( conform: 23 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;suikerbiet&quot;&gt;suikerbiet&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;fenpropidin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 3&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 3 ( conform: 3 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tafeldruiven&quot;&gt;tafeldruiven&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Koper(II)sulfaat&quot;&gt;koper&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide/bactericide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;56%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.78&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;53%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.20&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;49%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.18&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 43&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 4.8&lt;/li&gt;
&lt;li&gt;Aantal analyses: 208 ( conform: 203, niet conform*: 4, niet conform: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tarwe&quot;&gt;tarwe&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Koper(II)sulfaat&quot;&gt;koper&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide/bactericide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.41&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;chloormequat&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Plantengroeiregulator&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;92%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.20&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Deltamethri&quot;&gt;deltamethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 24&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 2.9&lt;/li&gt;
&lt;li&gt;Aantal analyses: 69 ( conform: 69 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;thee&quot;&gt;thee&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;bifenthrin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;chloorfenapyr&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide/miticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.12&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;ddt (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Imazalil&quot;&gt;imazalil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;nicotine&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.12&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.1&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.5&lt;/li&gt;
&lt;li&gt;Aantal analyses: 6 ( conform: 6 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tomaten&quot;&gt;tomaten&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;28%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;26%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.06&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Cyprodinil&quot;&gt;cyprodinil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;21%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.5&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 57&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 3.7&lt;/li&gt;
&lt;li&gt;Aantal analyses: 211 ( conform: 209, niet conform: 1, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;uien&quot;&gt;uien&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Spirotetramat&quot;&gt;spirotetramat (som)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;67%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.4&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;fluoxastrobin&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;33%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.04&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluopicolid&quot;&gt;fluopicolide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.07&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 15&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 2.6&lt;/li&gt;
&lt;li&gt;Aantal analyses: 39 ( conform: 38, niet conform: 1 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;verse-worst-saucijs-braadworst&quot;&gt;verse worst/saucijs/braadworst&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorat&quot;&gt;chloraat&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Herbicide/ontsmettingsmiddel&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 3&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 3 ( conform: 3 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;watermeloenen&quot;&gt;watermeloenen&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Koper(II)sulfaat&quot;&gt;koper&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide/bactericide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.28&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;28%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Fludioxonil&quot;&gt;fludioxonil&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Flupyradifuron&quot;&gt;flupyradifurone&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 18&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 2.1&lt;/li&gt;
&lt;li&gt;Aantal analyses: 37 ( conform: 35, niet conform*: 2 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;witlof-brussels-lof&quot;&gt;witlof/brussels lof&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;90%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.3&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 10&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.1&lt;/li&gt;
&lt;li&gt;Aantal analyses: 11 ( conform: 11 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;wortels&quot;&gt;wortels&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Azoxystrobin&quot;&gt;azoxystrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Boscalid&quot;&gt;boscalid&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;2.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Difenoconazool&quot;&gt;difenoconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.4&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;prosulfocarb&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://de.wikipedia.org/wiki/Fluopyram&quot;&gt;fluopyram&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;50%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.4&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Cypermethri&quot;&gt;cypermethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluopicolid&quot;&gt;fluopicolide&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Fluxapyroxa&quot;&gt;fluxapyroxad&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.09&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.9&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Pyraclostrobine&quot;&gt;pyraclostrobin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;quintozeen (som)&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.02&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Tebuconazool&quot;&gt;tebuconazool&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Fungicide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.4&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 4&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 4.0&lt;/li&gt;
&lt;li&gt;Aantal analyses: 16 ( conform: 16 )&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;zonnebloempit&quot;&gt;zonnebloempit&lt;/h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;analyse&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;type&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;% obs&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;mg/kg (gem.)&lt;/th&gt;&lt;th style=&quot;text-align: right&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://nl.wikipedia.org/wiki/Maximale_residulimiet&quot;&gt;MRL&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;pirimifos‐methyl&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;60%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.13&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Chlorpyrifo&quot;&gt;chloorpyrifos‐ethyl&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Deltamethri&quot;&gt;deltamethrin&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;Insecticide&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.15&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.05&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;mepiquat&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;-&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20%&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.03&lt;/td&gt;&lt;td style=&quot;text-align: right&quot;&gt;40.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Aantal metingen: 5&lt;/li&gt;
&lt;li&gt;Gem. aantal pesticides: 1.2&lt;/li&gt;
&lt;li&gt;Aantal analyses: 6 ( conform: 4, niet conform: 1, niet conform*: 1 )&lt;/li&gt;
&lt;/ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Advanced climate model evaluation with ESMValTool v2.11.0 using parallel, out-of-core, and distributed computing</title>
        <published>2025-07-02T00:00:00+00:00</published>
        <updated>2025-07-02T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/advanced-climate-model-evaluation/"/>
        <id>https://stefsmeets.nl/articles/advanced-climate-model-evaluation/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/advanced-climate-model-evaluation/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Custom toggle to hide the Reddit sidebar</title>
        <published>2025-05-25T00:00:00+00:00</published>
        <updated>2025-05-25T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/res-sidebar/"/>
        <id>https://stefsmeets.nl/posts/res-sidebar/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/res-sidebar/">&lt;p&gt;Because the sidebar is fixed size, it sometimes overlaps with the content on smaller screens. Using &lt;a rel=&quot;external&quot; href=&quot;https://redditenhancementsuite.com/&quot;&gt;RES&lt;/a&gt; you can create a toggle for the sidebar.&lt;/p&gt;
&lt;p&gt;First, create a toggle under: &lt;kbd&gt;RES settings console &amp;gt; Core &amp;gt; Custom toggles &amp;gt; Toggle&lt;/kbd&gt; named: &lt;code&gt;Sidebar toggle&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Add the following as a CSS snippet: &lt;kbd&gt;RES settings console &amp;gt; Appearance &amp;gt; Stylesheet Loader &amp;gt; Snippets&lt;/kbd&gt;:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;css&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;.side&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; display&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #F29E74;font-style: italic;&quot;&gt; none&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;span&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Assign your toggle to the snippet.&lt;/p&gt;
&lt;p&gt;A new toggle will appear under the RES menu (gear icon) in the top bar.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Convective shutdown in the atmospheres of lava worlds</title>
        <published>2024-12-24T00:00:00+00:00</published>
        <updated>2024-12-24T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/convective-shutdown-lava-atmospheres/"/>
        <id>https://stefsmeets.nl/articles/convective-shutdown-lava-atmospheres/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/convective-shutdown-lava-atmospheres/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Duqtools: Dynamic uncertainty quantification for Tokamak reactor simulations modelling</title>
        <published>2024-09-20T00:00:00+00:00</published>
        <updated>2024-09-20T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/duqtools-dynamic-uncertainty-quantification/"/>
        <id>https://stefsmeets.nl/articles/duqtools-dynamic-uncertainty-quantification/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/duqtools-dynamic-uncertainty-quantification/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Optimizing ionic transport in argyrodites: a unified view on the role of sulfur/halide distribution and local environments</title>
        <published>2024-09-09T00:00:00+00:00</published>
        <updated>2024-09-09T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/optimizing-ionic-transport/"/>
        <id>https://stefsmeets.nl/articles/optimizing-ionic-transport/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/optimizing-ionic-transport/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Build log for ambilight on a rooted LG TV</title>
        <published>2024-09-05T00:00:00+00:00</published>
        <updated>2024-09-05T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/tv-ambient-light/"/>
        <id>https://stefsmeets.nl/posts/tv-ambient-light/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/tv-ambient-light/">&lt;p&gt;We recently bought a second-hand LG OLED TV to replace our old Phillips Ambilight TV. It&#39;s awesome, because &lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/OLED#Advantages&quot;&gt;OLED&lt;/a&gt;, but I missed the Ambilight feature of my old TV.&lt;/p&gt;
&lt;p&gt;Although you can get these devices ready made, I thought it would be more fun to build it myself. These setups usually consist of the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Frame capture device (HDMI Splitter + USB frame grabber)&lt;/li&gt;
&lt;li&gt;Image processing service + host (Raspberry Pi + HyperHDR)&lt;/li&gt;
&lt;li&gt;LED strip + Controller (ESP32 + WLED)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The frame grabber is an hdmi video capture device video capture card that streams images to a Raspberry Pi. The Raspberry Pi runs &lt;a rel=&quot;external&quot; href=&quot;https://www.hyperhdr.eu/&quot;&gt;HyperHDR&lt;/a&gt;, an image processing service that analyzes the video stream, and turns it into a signal for the LED strip. Note that HyperHDR does not control the LED strip itself, this is done using &lt;a rel=&quot;external&quot; href=&quot;https://kno.wled.ge/&quot;&gt;WLED&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Since many LG TVs running WebOS can be rooted, it can host PicCap (frame capture service) and HyperHDR directly. This avoids setting up a Rasperry Pi with video grabber, making the setup a whole lot cheaper and more efficient.&lt;/p&gt;
&lt;h2 id=&quot;the-frame&quot;&gt;The Frame&lt;/h2&gt;
&lt;p&gt;I build a custum frame from solid wood, and bits and pieces I found at the DIY store and at home. The idea is that the frame acts as a support for the LED strip. It sits about 10 cm behind my TV, and I used diagonally cut wooden slats with a 45 degree angle, so that the LEDs project outward onto the wall. The frame is roughly 5 cm smaller on all sides that my TV.&lt;/p&gt;
&lt;p&gt;For the LED strip, I used 2x WS2813 LED strips (1m / 30 LEDs). I cut the strip to size and soldered the corners.&lt;/p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;|&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;frame-assembled.webp&quot;&gt;
    &lt;img src=&quot;frame-assembled.webp&quot; alt=&quot;Assembled frame&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Assembled frame&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;solder-corner.webp&quot;&gt;
    &lt;img src=&quot;solder-corner.webp&quot; alt=&quot;Corner detail, I used solid core wire to solder around the corner&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Corner detail, I used solid core wire to solder around the corner&lt;/figcaption&gt;
&lt;/figure&gt;
 |
&lt;h2 id=&quot;the-controller&quot;&gt;The Controller&lt;/h2&gt;
&lt;p&gt;The second step was to set up the LED strip using WLED. I had an old ESP32 lying around, which I used to install &lt;a rel=&quot;external&quot; href=&quot;https://kno.wled.ge/&quot;&gt;WLED&lt;/a&gt;. I installed WLED through the very convenient &lt;a rel=&quot;external&quot; href=&quot;https://install.wled.me/&quot;&gt;web interface&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Parts list:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ESP32 (ESP-WROOM-32)&lt;/li&gt;
&lt;li&gt;100 Ohm resistance&lt;/li&gt;
&lt;li&gt;DC Jack Female 5.5mm to Terminal Block&lt;/li&gt;
&lt;li&gt;5V/2A power adapter with 5.5mm DC Jack&lt;/li&gt;
&lt;li&gt;Cable box from DIY store&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;install-wled&quot;&gt;Install WLED&lt;/h3&gt;
&lt;p&gt;List USB devices:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; lsusb&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;Bus&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 001&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; Device 036: ID 10c4:ea60 Silicon Labs CP210x UART Bridge&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I used &lt;code&gt;/dev/serial/&lt;/code&gt; to find the right COM port:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;$ ls -ltr /dev/serial/by-id/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;lrwxrwxrwx. 1 root root 13 Sep  3 08:42 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -&amp;gt; ../../ttyUSB0&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To verify the installation was succesful, I could log in to the web interface and added it to Home Assistant for good measure 😅&lt;/p&gt;
&lt;h3 id=&quot;wled-failed-to-open-serial-port&quot;&gt;&lt;code&gt;wled failed to open serial port&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;I was struck with error: &lt;code&gt;wled failed to open serial port&lt;/code&gt;. This means my browser does not have the correct rights to write to the USB device. This can be solved by setting read/write permissions. Do not forget to reset the permissions afterwards.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;sudo chmod a+rw /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Flash&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo chmod 600 /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;soldering&quot;&gt;Soldering&lt;/h3&gt;
&lt;p&gt;I build everything on a bread board first following the scheme in the &lt;a rel=&quot;external&quot; href=&quot;https://kno.wled.ge/basics/getting-started/#quick-start-guide&quot;&gt;quick-start guide&lt;/a&gt;. Later on I soldered everything onto a prototype board and put it in small cable box.&lt;/p&gt;
&lt;p&gt;Some notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Make sure to connect data to GPIO16, which is labeled RX2 on my ESP:
https://www.mathaelectronics.com/wp-content/uploads/2022/08/image-19.png&lt;/li&gt;
&lt;li&gt;I used a 100 Ohm resistor, but apparently this is not necessary. When assembling the prototype board I had issues getting everything to work. It worked fine on the bread board, but no signal on the soldered prototype board. After a while I figured out that my resistor was faulty. To make things worse, I learned that is not necessary at all!! it turns out that the resistor only serves to clean up the data line. So I left it out in the final assembly.&lt;/li&gt;
&lt;li&gt;Solder bridges were very difficult to make for me. I ended using jump wires for everything, which was much easier.&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;|&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;breadboard.webp&quot;&gt;
    &lt;img src=&quot;breadboard.webp&quot; alt=&quot;Bread board setup&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Bread board setup&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;prototype-top.webp&quot;&gt;
    &lt;img src=&quot;prototype-top.webp&quot; alt=&quot;Prototype board top&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Prototype board top&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;prototype-bottom.webp&quot;&gt;
    &lt;img src=&quot;prototype-bottom.webp&quot; alt=&quot;Prototype board bottom&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Prototype board bottom&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;cable-box.webp&quot;&gt;
    &lt;img src=&quot;cable-box.webp&quot; alt=&quot;The final product in a box&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;The final product in a box&lt;/figcaption&gt;
&lt;/figure&gt;
 |
&lt;h2 id=&quot;the-tv&quot;&gt;The TV&lt;/h2&gt;
&lt;p&gt;I wanted to run everything directly from my TV, which means that I needed root on my LG C3.&lt;/p&gt;
&lt;p&gt;I used this &lt;a rel=&quot;external&quot; href=&quot;https://www.webosbrew.org/rooting/#can-i-root-my-tv&quot;&gt;table&lt;/a&gt; to find a method root. I ended up using [dejavuln-autoroot](https://github.com/throwaway96/dejavuln-autoroot, which was very simple. Once succesful, this installs the &lt;a rel=&quot;external&quot; href=&quot;https://www.webosbrew.org/&quot;&gt;homebrew channel&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;blocking-updates&quot;&gt;Blocking updates&lt;/h3&gt;
&lt;p&gt;I added these addresses to my Adguard blocklist to block the TV from updating, which could break the root:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;lgtvonline.lge.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;snu.lge.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;su.lge.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;su-ssl.lge.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;snu-dev.lge.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;su-dev.lge.com&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;nsu.lge.com&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;software-setup&quot;&gt;Software setup&lt;/h3&gt;
&lt;p&gt;Once rooted, I installed &lt;a rel=&quot;external&quot; href=&quot;https://github.com/TBSniller/piccap&quot;&gt;PicCap&lt;/a&gt; and &lt;a rel=&quot;external&quot; href=&quot;https://github.com/webosbrew/hyperhdr-webos-loader&quot;&gt;HyperHDR&lt;/a&gt;. These are meant to be used in combination.&lt;/p&gt;
&lt;p&gt;PicCap takes screenshots of the current image on the TV, and HyperHDR is an image processing that grabs the screenshots from Piccap and LED output, essentially rectreating ambilight frem Phillips TVs. s needed for WLED.&lt;/p&gt;
&lt;p&gt;Note that HyperHDR does not have an interface for WebOS, you have to connect and configure it via the web interface. It took me a while to find out the default port, so here it is: &lt;code&gt;http://&amp;lt;IP_OF_LG_TV&amp;gt;:8090&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Setting everything up in HyperHDR was a bit of fiddling, but it speaks for itself. To get the colors right, I had to tweak the Image processing settings to get the colors to pop on our green wall:&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;settings.webp&quot;&gt;
    &lt;img src=&quot;settings.webp&quot; alt=&quot;HyperHDR settings&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;HyperHDR settings&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;the-satisfaction&quot;&gt;The Satisfaction&lt;/h2&gt;
&lt;p&gt;Really happy with the end result. It&#39;s more reactive than what I&#39;m used to from Ambilight, and the colours feel more vibrant. Bonus: I can tune the brightness via Home Assistant, and use it as a lamp when the TV is off.&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;itsworking1.webp&quot;&gt;
    &lt;img src=&quot;itsworking1.webp&quot; alt=&quot;It&#39;s working!&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;It&#39;s working!&lt;/figcaption&gt;
&lt;/figure&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Notes on code quality</title>
        <published>2024-08-20T00:00:00+00:00</published>
        <updated>2024-08-20T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/code-quality/"/>
        <id>https://stefsmeets.nl/posts/code-quality/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/code-quality/">&lt;p&gt;As a software engineer we often talk about code quality as if it is something all encompassing that we can easily improve.
For me, however, these discussions are often fraught with ambiguity and disagreements on what is actually high-quality code.&lt;/p&gt;
&lt;p&gt;First, it&#39;s often not clear what we mean when we talk about code quality and we may not even agree on the same thing.&lt;/p&gt;
&lt;p&gt;Second, as engineers we are easy to judge whether code is good or bad quality. And we all like to brag about the quality of our code.
The fact is however that code quality is often difficult to measure objectively.&lt;/p&gt;
&lt;p&gt;Not surprising then that many companies try to jump into this gap and sell you tools to measure and improve code quality.
In my experience they mostly work at the superficial level, whereas true issues with code quality are often at a much deeper level.&lt;/p&gt;
&lt;p&gt;Although linting tools, code formatters, type checks, and unit tests help, there implementation in the code is also subject to quality.&lt;/p&gt;
&lt;p&gt;But what is good quality code and how can you measure it?&lt;/p&gt;
&lt;h2 id=&quot;external&quot;&gt;External&lt;/h2&gt;
&lt;p&gt;These measures are important for the users of the software.
Note that these say nothing about how the programming language, data structure, which compiler etc.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Correctness&lt;/li&gt;
&lt;li&gt;Usability&lt;/li&gt;
&lt;li&gt;Efficiency&lt;/li&gt;
&lt;li&gt;Reliability&lt;/li&gt;
&lt;li&gt;Integrety&lt;/li&gt;
&lt;li&gt;Adaptability&lt;/li&gt;
&lt;li&gt;Accuracy&lt;/li&gt;
&lt;li&gt;Robustness&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;internal&quot;&gt;Internal&lt;/h2&gt;
&lt;p&gt;These are measures that are important for the developers of the code.
As programmers we often tend to focus on those, because they make the code more fun to work with.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Maintainability&lt;/li&gt;
&lt;li&gt;Flexibility&lt;/li&gt;
&lt;li&gt;Portability&lt;/li&gt;
&lt;li&gt;Reusability&lt;/li&gt;
&lt;li&gt;Readability&lt;/li&gt;
&lt;li&gt;Testability&lt;/li&gt;
&lt;li&gt;Understandability&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You may notice that some of these measures are often at odds.
For example, focusing on correctness and reliability may affect performance and efficiency.&lt;/p&gt;
&lt;p&gt;The point is that what to focus on is a choice.
Some quality measures are aimed at making life easier for the programmer, while some are aimed at making the code easier to use.&lt;/p&gt;
&lt;p&gt;Having worked on many different code bases in recent years with varying degrees of &#39;code quality&#39;,
I think for me it boils down to three things that define high quality software for me:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Easy to change&lt;/strong&gt; - Code that is easy to change is often well structured, documented, and well encapsulated.
This means we can focus on adding new features, and avoid getting stuck in difficult refactoring tasks.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Follows best practices&lt;/strong&gt; - I&#39;m a big fan of code that follow best practices or community standards.
These code bases feel familiar, facilitating collaboration, and gives newcomers a head start when we need to contribute.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Does not surprise me&lt;/strong&gt; - Code should work as expected.
If I have to go down a rabbit hole to chase where that one variable is defined 12 levels deep, it&#39;s probably not a good sign (although we have all been there 😅).&lt;/li&gt;
&lt;/ol&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Regression testing Plotly plots with Pytest</title>
        <published>2024-05-29T00:00:00+00:00</published>
        <updated>2024-05-29T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/plotly-pytest/"/>
        <id>https://stefsmeets.nl/posts/plotly-pytest/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/plotly-pytest/">&lt;p&gt;I have long been using &lt;a rel=&quot;external&quot; href=&quot;https://matplotlib.org&quot;&gt;matplotlib&lt;/a&gt; to generate plots for my data. Matplotlib always serves me well for producing publication-style, static plots. For regression testing the plots produced by matplotlib, they provide this &lt;a rel=&quot;external&quot; href=&quot;https://matplotlib.org/3.9.0/devel/testing.html&quot;&gt;very useful image comparison decorator&lt;/a&gt; (see link for how it works). In short:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; matplotlib&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;testing&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;decorators&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; image_comparison&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D9BE98;&quot;&gt;@image_comparison&lt;/span&gt;&lt;span&gt;(baseline_images&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;your_plot&amp;#39;&lt;/span&gt;&lt;span&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; test_matplotlib_plot&lt;/span&gt;&lt;span&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;    your_plotting_code_here&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The decorator automatically picks up new figure objects, and compares these with the expected plots through direct image comparison. If the test fails, the difference between the plots is displayed, making it convenient to visualize the difference to help with debugging.&lt;/p&gt;
&lt;h2 id=&quot;regression-testing-in-plotly&quot;&gt;Regression testing in Plotly&lt;/h2&gt;
&lt;p&gt;For interactive plots that are better suited for online dashboards, we recently started using &lt;a rel=&quot;external&quot; href=&quot;https://plotly.com/python/&quot;&gt;plotly&lt;/a&gt; a lot more. There I wanted something similar, but to my surprise, there is no documentation or infrastructure available for regression testing plots. This meant all of our plotly plots were untested. This gave us little confidence in the robustness of the plotting code, and meant that any bugs could go unnoticed for a while. To solve this, I ended up developing a function that mimicks the matplotlib way. It uses the same directories and image comparison algorithm.&lt;/p&gt;
&lt;style&gt;
table th:first-of-type {
    width: 29%;
}
table th:nth-of-type(2) {
    width: 30%;
}
table th:nth-of-type(3) {
    width: 29%;
}
&lt;/style&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;|&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;actual.webp&quot;&gt;
    &lt;img src=&quot;actual.webp&quot; alt=&quot;actual&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;actual&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;expected.webp&quot;&gt;
    &lt;img src=&quot;expected.webp&quot; alt=&quot;expected&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;expected&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;diff.webp&quot;&gt;
    &lt;img src=&quot;diff.webp&quot; alt=&quot;difference&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;difference&lt;/figcaption&gt;
&lt;/figure&gt;
 |
&lt;p&gt;The visual comparison helps to identify where the problem lies.&lt;/p&gt;
&lt;h3 id=&quot;code&quot;&gt;Code&lt;/h3&gt;
&lt;p&gt;Below is the code that we use in &lt;a rel=&quot;external&quot; href=&quot;https://github.com/gemdat-repos/gemdat&quot;&gt;one of my projects&lt;/a&gt;. See it in action &lt;a rel=&quot;external&quot; href=&quot;https://github.com/GEMDAT-repos/GEMDAT/blob/main/tests/integration/plot_plotly_test.py&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# helpers.py&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; pathlib&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; Path&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; matplotlib&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;testing&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;compare&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; compare_images&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; inspect&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; typing&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; Any&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; assert_figures_similar&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;fig&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; *&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; str&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; ext&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; str&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;png&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; rms&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; float&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 0.0&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;    &amp;quot;&amp;quot;&amp;quot;Compare plotly figures and raise if different.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;    # Ensure same font is used on different machines (local/CI)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    fig&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;update_layout&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        font_family&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Arial&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        title_font_family&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Arial&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    )&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;    # Get path of caller&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    frame&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; inspect&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;stack&lt;/span&gt;&lt;span&gt;()[&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    module&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; inspect&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;getmodule&lt;/span&gt;&lt;span&gt;(frame[&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;0&lt;/span&gt;&lt;span&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    modulepath&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; Path&lt;/span&gt;&lt;span&gt;(module&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;__file__)&lt;/span&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;  # type: ignore&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    results_dir&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; Path&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;result_images&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; /&lt;/span&gt;&lt;span&gt; modulepath&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;stem&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    results_dir&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;mkdir&lt;/span&gt;&lt;span&gt;(exist_ok&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; parents&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;True&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    filename&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; f&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;{&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;{&lt;/span&gt;&lt;span&gt;ext&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    actual&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; results_dir&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; /&lt;/span&gt;&lt;span&gt; filename&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    fig&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;write_image&lt;/span&gt;&lt;span&gt;(actual)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    expected_dir&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; modulepath&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;parent&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;baseline_images&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; /&lt;/span&gt;&lt;span&gt; modulepath&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;stem&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    expected&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; expected_dir&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; /&lt;/span&gt;&lt;span&gt; filename&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    expected_link&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; results_dir&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; f&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;{&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;-expected.&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;{&lt;/span&gt;&lt;span&gt;ext&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    if&lt;/span&gt;&lt;span&gt; expected_link&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;exists&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        expected_link&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;unlink&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    expected_link&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;symlink_to&lt;/span&gt;&lt;span&gt;(expected)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    err&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span&gt; dict[&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; Any]&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; compare_images&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        expected&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;str&lt;/span&gt;&lt;span&gt;(expected_link)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; actual&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;str&lt;/span&gt;&lt;span&gt;(actual)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; tol&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span&gt;rms&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; in_decorator&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;True&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    )&lt;/span&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;  # type: ignore&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    if&lt;/span&gt;&lt;span&gt; err&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        for&lt;/span&gt;&lt;span&gt; key&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; in&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;actual&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;expected&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;diff&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            err[key]&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; Path&lt;/span&gt;&lt;span&gt;(err[key])&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;relative_to&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;.&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        raise&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; AssertionError&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            (&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;                &amp;#39;images not close (RMS &lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;{rms&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;:.3f&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;):&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;                &amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;\n\t{actual}\n\t{expected}\n\t{diff}&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;format&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;**&lt;/span&gt;&lt;span&gt;err)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            )&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        )&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There is no decorator, but you can use it like this:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; helpers&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; assert_figures_similar&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; test_plot&lt;/span&gt;&lt;span&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;   fig&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; your_plotting_code_here&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;   assert_figures_similar&lt;/span&gt;&lt;span&gt;(fig&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; name&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;name_of_plot&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; rms&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;0.5&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;my-takeaways&quot;&gt;My takeaways&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;You can &lt;a rel=&quot;external&quot; href=&quot;https://plotly.com/python/static-image-export/&quot;&gt;save plotly images&lt;/a&gt; using &lt;code&gt;fig.write_image(&#39;name_of_file.png&#39;)&lt;/code&gt; if you have the kaleido library installed.&lt;/li&gt;
&lt;li&gt;The code uses the &lt;a rel=&quot;external&quot; href=&quot;https://docs.python.org/3/library/inspect.html&quot;&gt;inspect module&lt;/a&gt; to get the filename of the caller.&lt;/li&gt;
&lt;li&gt;Make sure to force plotly to use the same fonts. Arial is a safe choice, because of its ubiquity. It is available on most operating systems, and also on the Github CI. Initially all my tests failed because the font was completely different between my development environment and the CI.&lt;/li&gt;
&lt;li&gt;There is a small deviation in rendering between my environment and the CI. These are invisible to the eye in the difference image, but enough to give up to 0.5 rms difference.&lt;/li&gt;
&lt;li&gt;I rely on the &lt;a rel=&quot;external&quot; href=&quot;https://github.com/matplotlib/matplotlib/blob/be56634d682bed257cb941369d8d3600635ddadf/lib/matplotlib/testing/compare.py#L386-L487&quot;&gt;&lt;code&gt;compare_images&lt;/code&gt;&lt;/a&gt; function to do all the heavy lifting. My code only puts the images in the right place, &lt;code&gt;compare_images&lt;/code&gt; does a file based compare and produces the difference.&lt;/li&gt;
&lt;li&gt;The &lt;a rel=&quot;external&quot; href=&quot;https://github.com/matplotlib/matplotlib/blob/be56634d682bed257cb941369d8d3600635ddadf/lib/matplotlib/testing/decorators.py#L91-L97&quot;&gt;code for the matplotlib decorator&lt;/a&gt; is very clever. Essentially the contextmanager picks up any newly generated figures generated while it was active. There is a &lt;em&gt;lot&lt;/em&gt; of code to make the decorator work seamlessly.&lt;/li&gt;
&lt;/ol&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Non-utopian optical properties computed of a tomographically reconstructed real photonic band gap crystal</title>
        <published>2024-02-14T00:00:00+00:00</published>
        <updated>2024-02-14T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/non-utopian-optical-properties/"/>
        <id>https://stefsmeets.nl/articles/non-utopian-optical-properties/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/non-utopian-optical-properties/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Let there be word clouds: most common words per Bible book</title>
        <published>2023-08-20T00:00:00+00:00</published>
        <updated>2023-08-20T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/bible-wordcloud/"/>
        <id>https://stefsmeets.nl/posts/bible-wordcloud/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/bible-wordcloud/">&lt;p&gt;One of my goals for this year is to read the bible cover-to-cover. At the same time I&#39;m learning about natural language processing for a project at work. So I got curious about the word usage per book. And particularly how the word usage evolves from book to book. In this blog post I share the word clouds and how I generated them.&lt;/p&gt;
&lt;p&gt;All the code to generate the word clouds can be found in &lt;a rel=&quot;external&quot; href=&quot;https://github.com/stefsmeets/bijbel-woordwolk&quot;&gt;this repo&lt;/a&gt;.
It consists of 2 parts:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Getting the word counts&lt;/li&gt;
&lt;li&gt;Generating the word clouds&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I&#39;m reading the bible in Dutch (Bijbel in Gewone Taal), so the word clouds are also in Dutch ;-)&lt;/p&gt;
&lt;h2 id=&quot;get-word-counts&quot;&gt;Get word counts&lt;/h2&gt;
&lt;p&gt;To get the word counts, I use the &lt;a rel=&quot;external&quot; href=&quot;https://spacy.io&quot;&gt;spacy&lt;/a&gt; library with the &lt;a rel=&quot;external&quot; href=&quot;https://spacy.io/models/nl/&quot;&gt;dutch&lt;/a&gt; pipeline. SpaCy is a natural language processing processing library that can tokenize and classify a text. At first I tried my own tokenization using regexes, but this is way easier and much better.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; spacy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;nlp&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; spacy&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;load&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;nl_core_news_sm&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tokenizing the text is then pretty straightforward. Just join all the lines together, pass it through the nlp engine, and get the tokens. For the word cloud, I&#39;m only interested in the nouns, propositions, adjectives and verbs.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; collections&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; Counter&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;poss&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;NOUN&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;PROPN&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;ADJ&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;VERB&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; get_counts&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;book&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    text&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39; &amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;join&lt;/span&gt;&lt;span&gt;(df[df[&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;book&amp;#39;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; ==&lt;/span&gt;&lt;span&gt; book][&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;text&amp;#39;&lt;/span&gt;&lt;span&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    doc&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; nlp&lt;/span&gt;&lt;span&gt;(text)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    tokens&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; (token&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;text&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; for&lt;/span&gt;&lt;span&gt; token&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; in&lt;/span&gt;&lt;span&gt; doc&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; if&lt;/span&gt;&lt;span&gt; token&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;pos_&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; in&lt;/span&gt;&lt;span&gt; poss)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; Counter&lt;/span&gt;&lt;span&gt;(tokens)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I use the handy &lt;a rel=&quot;external&quot; href=&quot;https://docs.python.org/3/library/collections.html#collections.Counter&quot;&gt;collection.Counter&lt;/a&gt; class to count the tokens. This gives me a dictionary that looks something like this:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span&gt; c&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; get_counts&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Genesis&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span&gt; c&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;most_common&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;10&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;zei&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 366&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; (&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Jakob&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 246&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; (&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;God&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 223&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; (&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Jozef&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 189&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; (&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Heer&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 152&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; (&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;ging&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 139&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; (&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Abraham&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 138&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; (&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;zoon&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 131&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; (&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;land&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 119&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; (&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;vader&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 119&lt;/span&gt;&lt;span&gt;)]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;generate-word-cloud&quot;&gt;Generate word cloud&lt;/h2&gt;
&lt;p&gt;There really is a library for everything, for word clouds I used &lt;a rel=&quot;external&quot; href=&quot;https://github.com/amueller/word_cloud&quot;&gt;this one&lt;/a&gt;. It&#39;s pretty straightforward to use.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; wordcloud&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; as&lt;/span&gt;&lt;span&gt; wc&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; get_wordcloud&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;counts&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; colormap&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;rainbow&amp;#39;&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    wordcloud&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; wc&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;WordCloud&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        width&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;800&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        height&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;500&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        colormap&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span&gt;colormap&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        background_color&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;None&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        mode&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;RGBA&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    )&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;generate_from_frequencies&lt;/span&gt;&lt;span&gt;(counts)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    return&lt;/span&gt;&lt;span&gt; wordcloud&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;What&#39;s left is to just loop over all the books and plot them:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;for&lt;/span&gt;&lt;span&gt; book&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; in&lt;/span&gt;&lt;span&gt; books&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    counts&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; get_counts&lt;/span&gt;&lt;span&gt;(book)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    wordcloud&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; get_wordcloud&lt;/span&gt;&lt;span&gt;(counts)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    plt&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;imshow&lt;/span&gt;&lt;span&gt;(wordcloud)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;style&gt;
table th:first-of-type {
    width: 29%;
}
table th:nth-of-type(2) {
    width: 30%;
}
table th:nth-of-type(3) {
    width: 29%;
}
&lt;/style&gt;
&lt;h2 id=&quot;old-testament&quot;&gt;Old Testament&lt;/h2&gt;
&lt;p&gt;Below are the word clouds for all books in the Old Testament.&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;old_testament.svg&quot;&gt;
    &lt;img src=&quot;old_testament.svg&quot; alt=&quot;Old Testament&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Old Testament&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;|&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;Genesis.svg&quot;&gt;
    &lt;img src=&quot;Genesis.svg&quot; alt=&quot;Genesis&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Genesis&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Exodus.svg&quot;&gt;
    &lt;img src=&quot;Exodus.svg&quot; alt=&quot;Exodus&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Exodus&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Leviticus.svg&quot;&gt;
    &lt;img src=&quot;Leviticus.svg&quot; alt=&quot;Leviticus&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Leviticus&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;Numeri.svg&quot;&gt;
    &lt;img src=&quot;Numeri.svg&quot; alt=&quot;Numeri&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Numeri&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Deuteronomium.svg&quot;&gt;
    &lt;img src=&quot;Deuteronomium.svg&quot; alt=&quot;Deuteronomium&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Deuteronomium&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Jozua.svg&quot;&gt;
    &lt;img src=&quot;Jozua.svg&quot; alt=&quot;Jozua&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Jozua&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;Richteren.svg&quot;&gt;
    &lt;img src=&quot;Richteren.svg&quot; alt=&quot;Richteren&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Richteren&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Ruth.svg&quot;&gt;
    &lt;img src=&quot;Ruth.svg&quot; alt=&quot;Ruth&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Ruth&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;1-Samuel.svg&quot;&gt;
    &lt;img src=&quot;1-Samuel.svg&quot; alt=&quot;1-Samuel&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;1-Samuel&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;2-Samuel.svg&quot;&gt;
    &lt;img src=&quot;2-Samuel.svg&quot; alt=&quot;2-Samuel&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;2-Samuel&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;1-Koningen.svg&quot;&gt;
    &lt;img src=&quot;1-Koningen.svg&quot; alt=&quot;1-Koningen&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;1-Koningen&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;2-Koningen.svg&quot;&gt;
    &lt;img src=&quot;2-Koningen.svg&quot; alt=&quot;2-Koningen&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;2-Koningen&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;1-Kronieken.svg&quot;&gt;
    &lt;img src=&quot;1-Kronieken.svg&quot; alt=&quot;1-Kronieken&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;1-Kronieken&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;2-Kronieken.svg&quot;&gt;
    &lt;img src=&quot;2-Kronieken.svg&quot; alt=&quot;2-Kronieken&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;2-Kronieken&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Ezra.svg&quot;&gt;
    &lt;img src=&quot;Ezra.svg&quot; alt=&quot;Ezra&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Ezra&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;Nehemia.svg&quot;&gt;
    &lt;img src=&quot;Nehemia.svg&quot; alt=&quot;Nehemia&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Nehemia&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Esther.svg&quot;&gt;
    &lt;img src=&quot;Esther.svg&quot; alt=&quot;Esther&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Esther&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Job.svg&quot;&gt;
    &lt;img src=&quot;Job.svg&quot; alt=&quot;Job&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Job&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;Psalmen.svg&quot;&gt;
    &lt;img src=&quot;Psalmen.svg&quot; alt=&quot;Psalmen&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Psalmen&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Spreuken.svg&quot;&gt;
    &lt;img src=&quot;Spreuken.svg&quot; alt=&quot;Spreuken&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Spreuken&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Prediker.svg&quot;&gt;
    &lt;img src=&quot;Prediker.svg&quot; alt=&quot;Prediker&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Prediker&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;Hooglied.svg&quot;&gt;
    &lt;img src=&quot;Hooglied.svg&quot; alt=&quot;Hooglied&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Hooglied&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Jesaja.svg&quot;&gt;
    &lt;img src=&quot;Jesaja.svg&quot; alt=&quot;Jesaja&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Jesaja&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Jeremia.svg&quot;&gt;
    &lt;img src=&quot;Jeremia.svg&quot; alt=&quot;Jeremia&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Jeremia&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;Klaagliederen.svg&quot;&gt;
    &lt;img src=&quot;Klaagliederen.svg&quot; alt=&quot;Klaagliederen&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Klaagliederen&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Ezechiël.svg&quot;&gt;
    &lt;img src=&quot;Ezechiël.svg&quot; alt=&quot;Ezechiël&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Ezechiël&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Daniël.svg&quot;&gt;
    &lt;img src=&quot;Daniël.svg&quot; alt=&quot;Daniël&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Daniël&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;Hosea.svg&quot;&gt;
    &lt;img src=&quot;Hosea.svg&quot; alt=&quot;Hosea&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Hosea&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Joël.svg&quot;&gt;
    &lt;img src=&quot;Joël.svg&quot; alt=&quot;Joël&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Joël&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Amos.svg&quot;&gt;
    &lt;img src=&quot;Amos.svg&quot; alt=&quot;Amos&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Amos&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;Obadja.svg&quot;&gt;
    &lt;img src=&quot;Obadja.svg&quot; alt=&quot;Obadja&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Obadja&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Jona.svg&quot;&gt;
    &lt;img src=&quot;Jona.svg&quot; alt=&quot;Jona&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Jona&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Micha.svg&quot;&gt;
    &lt;img src=&quot;Micha.svg&quot; alt=&quot;Micha&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Micha&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;Nahum.svg&quot;&gt;
    &lt;img src=&quot;Nahum.svg&quot; alt=&quot;Nahum&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Nahum&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Habakuk.svg&quot;&gt;
    &lt;img src=&quot;Habakuk.svg&quot; alt=&quot;Habakuk&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Habakuk&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Sefanja.svg&quot;&gt;
    &lt;img src=&quot;Sefanja.svg&quot; alt=&quot;Sefanja&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Sefanja&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;Haggai.svg&quot;&gt;
    &lt;img src=&quot;Haggai.svg&quot; alt=&quot;Haggai&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Haggai&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Zacharia.svg&quot;&gt;
    &lt;img src=&quot;Zacharia.svg&quot; alt=&quot;Zacharia&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Zacharia&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Maleachi.svg&quot;&gt;
    &lt;img src=&quot;Maleachi.svg&quot; alt=&quot;Maleachi&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Maleachi&lt;/figcaption&gt;
&lt;/figure&gt;
 |
&lt;h2 id=&quot;new-testament&quot;&gt;New Testament&lt;/h2&gt;
&lt;p&gt;Below are the word clouds for all books in the New Testament.&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;new_testament.svg&quot;&gt;
    &lt;img src=&quot;new_testament.svg&quot; alt=&quot;New Testament&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;New Testament&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;|&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;Matteüs.svg&quot;&gt;
    &lt;img src=&quot;Matteüs.svg&quot; alt=&quot;Matteüs&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Matteüs&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Marcus.svg&quot;&gt;
    &lt;img src=&quot;Marcus.svg&quot; alt=&quot;Marcus&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Marcus&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Lucas.svg&quot;&gt;
    &lt;img src=&quot;Lucas.svg&quot; alt=&quot;Lucas&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Lucas&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;Johannes.svg&quot;&gt;
    &lt;img src=&quot;Johannes.svg&quot; alt=&quot;Johannes&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Johannes&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Handelingen.svg&quot;&gt;
    &lt;img src=&quot;Handelingen.svg&quot; alt=&quot;Handelingen&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Handelingen&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Romeinen.svg&quot;&gt;
    &lt;img src=&quot;Romeinen.svg&quot; alt=&quot;Romeinen&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Romeinen&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;1-Korintiërs.svg&quot;&gt;
    &lt;img src=&quot;1-Korintiërs.svg&quot; alt=&quot;1-Korintiërs&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;1-Korintiërs&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;2-Korintiërs.svg&quot;&gt;
    &lt;img src=&quot;2-Korintiërs.svg&quot; alt=&quot;2-Korintiërs&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;2-Korintiërs&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Galaten.svg&quot;&gt;
    &lt;img src=&quot;Galaten.svg&quot; alt=&quot;Galaten&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Galaten&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;Efeziërs.svg&quot;&gt;
    &lt;img src=&quot;Efeziërs.svg&quot; alt=&quot;Efeziërs&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Efeziërs&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Filippenzen.svg&quot;&gt;
    &lt;img src=&quot;Filippenzen.svg&quot; alt=&quot;Filippenzen&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Filippenzen&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Kolossenzen.svg&quot;&gt;
    &lt;img src=&quot;Kolossenzen.svg&quot; alt=&quot;Kolossenzen&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Kolossenzen&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;1-Tessalonicenzen.svg&quot;&gt;
    &lt;img src=&quot;1-Tessalonicenzen.svg&quot; alt=&quot;1-Tessalonicenzen&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;1-Tessalonicenzen&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;2-Tessalonicenzen.svg&quot;&gt;
    &lt;img src=&quot;2-Tessalonicenzen.svg&quot; alt=&quot;2-Tessalonicenzen&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;2-Tessalonicenzen&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;1-Timoteüs.svg&quot;&gt;
    &lt;img src=&quot;1-Timoteüs.svg&quot; alt=&quot;1-Timoteüs&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;1-Timoteüs&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;2-Timoteüs.svg&quot;&gt;
    &lt;img src=&quot;2-Timoteüs.svg&quot; alt=&quot;2-Timoteüs&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;2-Timoteüs&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Titus.svg&quot;&gt;
    &lt;img src=&quot;Titus.svg&quot; alt=&quot;Titus&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Titus&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Filemon.svg&quot;&gt;
    &lt;img src=&quot;Filemon.svg&quot; alt=&quot;Filemon&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Filemon&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;Hebreeën.svg&quot;&gt;
    &lt;img src=&quot;Hebreeën.svg&quot; alt=&quot;Hebreeën&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Hebreeën&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Jakobus.svg&quot;&gt;
    &lt;img src=&quot;Jakobus.svg&quot; alt=&quot;Jakobus&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Jakobus&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;1-Petrus.svg&quot;&gt;
    &lt;img src=&quot;1-Petrus.svg&quot; alt=&quot;1-Petrus&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;1-Petrus&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;2-Petrus.svg&quot;&gt;
    &lt;img src=&quot;2-Petrus.svg&quot; alt=&quot;2-Petrus&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;2-Petrus&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;1-Johannes.svg&quot;&gt;
    &lt;img src=&quot;1-Johannes.svg&quot; alt=&quot;1-Johannes&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;1-Johannes&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;2-Johannes.svg&quot;&gt;
    &lt;img src=&quot;2-Johannes.svg&quot; alt=&quot;2-Johannes&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;2-Johannes&lt;/figcaption&gt;
&lt;/figure&gt;
 |
| 
&lt;figure&gt;
  &lt;a href=&quot;3-Johannes.svg&quot;&gt;
    &lt;img src=&quot;3-Johannes.svg&quot; alt=&quot;3-Johannes&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;3-Johannes&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Judas.svg&quot;&gt;
    &lt;img src=&quot;Judas.svg&quot; alt=&quot;Judas&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Judas&lt;/figcaption&gt;
&lt;/figure&gt;
 | 
&lt;figure&gt;
  &lt;a href=&quot;Openbaring.svg&quot;&gt;
    &lt;img src=&quot;Openbaring.svg&quot; alt=&quot;Openbaring&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Openbaring&lt;/figcaption&gt;
&lt;/figure&gt;
 |
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>My 5 favourite IPython tricks</title>
        <published>2023-08-03T00:00:00+00:00</published>
        <updated>2023-08-03T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/ipython-tricks/"/>
        <id>https://stefsmeets.nl/posts/ipython-tricks/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/ipython-tricks/">&lt;p&gt;These are my 5 favourite tricks I use daily when developing code using &lt;a rel=&quot;external&quot; href=&quot;https://ipython.readthedocs.io&quot;&gt;IPython&lt;/a&gt;, either in the shell or via a &lt;a rel=&quot;external&quot; href=&quot;https://jupyter.org/&quot;&gt;Jupyter notebook&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;auto-reload&quot;&gt;Auto reload&lt;/h2&gt;
&lt;p&gt;My all time favourite IPython magic is the auto reload function. This is an extension that automatically reloads modules before executing a cell. Whenever I&#39;m working on a library, I add these 2 lines at the top of my notebook. This means that whenever I change the library I&#39;m working, without having to restart the kernel. Super convenient for debugging.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;%&lt;/span&gt;&lt;span&gt;load_ext autoreload&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;%&lt;/span&gt;&lt;span&gt;autoreload&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 2&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;timing&quot;&gt;Timing&lt;/h2&gt;
&lt;p&gt;For some quick performance testing of benchmarking, you can use the built-in time magics.&lt;/p&gt;
&lt;p&gt;There are cell magics to time (&lt;code&gt;%%time&lt;/code&gt;) or benchmark (&lt;code&gt;%%timeit&lt;/code&gt;) the cell. Or you can time (&lt;code&gt;%time&lt;/code&gt;) and (&lt;code&gt;%timeit&lt;/code&gt;) a single line or function call.&lt;/p&gt;
&lt;h2 id=&quot;add-virtual-environment-as-jupyter-kernel&quot;&gt;Add virtual environment as Jupyter kernel&lt;/h2&gt;
&lt;p&gt;One of my habits is to create a custom virtual environment for every code that I&#39;m working on. These are usually called &lt;code&gt;.venv&lt;/code&gt;, and I want to enable these as a kernel in a Jupyter Notebook.&lt;/p&gt;
&lt;p&gt;I do this so infrequently that I can never remember the command:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;pip&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; install ipykernel&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;python&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -m&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; ipykernel install&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; --user --name&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; .venv&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;breakpoint&quot;&gt;Breakpoint&lt;/h2&gt;
&lt;p&gt;I use the &lt;code&gt;breakpoint()&lt;/code&gt; function added in &lt;a rel=&quot;external&quot; href=&quot;https://docs.python.org/3/whatsnew/3.7.html#pep-553-built-in-breakpoint&quot;&gt;Python 3.7&lt;/a&gt; all the time when developing code. Before that I was already calling the &lt;a rel=&quot;external&quot; href=&quot;https://ipython.readthedocs.io/en/stable/api/generated/IPython.terminal.embed.html&quot;&gt;&lt;code&gt;IPython.embed&lt;/code&gt;&lt;/a&gt; module directly, but using a &lt;code&gt;breakpoint()&lt;/code&gt; statement is much more convenient.&lt;/p&gt;
&lt;p&gt;Especially, because you can customize the debugger by setting the &lt;code&gt;PYTHONBREAKPOINT&lt;/code&gt; environment variable. The snippet below will open an IPython shell instead of the default &lt;code&gt;pdb&lt;/code&gt; by:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;PYTHONBREAKPOINT&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;IPython.embed&lt;/span&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt; python&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; my_script.py&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or in your &lt;code&gt;.bashrc&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;export&lt;/span&gt;&lt;span&gt; PYTHONBREAKPOINT&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;IPython.embed&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;sublime-keybindings-in-jupyter-notebook&quot;&gt;Sublime keybindings in Jupyter Notebook&lt;/h2&gt;
&lt;p&gt;As a daily &lt;a rel=&quot;external&quot; href=&quot;https://www.sublimetext.com/&quot;&gt;Sublime Text&lt;/a&gt; user, the &lt;kbd&gt;ctrl-D&lt;/kbd&gt; command to select the next word is burned into my fingers. One of my annoyances with the default install of Jupyter is that &lt;kbd&gt;ctrl-D&lt;/kbd&gt; deletes the current line. There are &lt;a rel=&quot;external&quot; href=&quot;https://stackoverflow.com/questions/41553806&quot;&gt;different ways to achieve this&lt;/a&gt; ways to enable the Sublime keymap in a Jupyter environment. I found this way to be the most reliable.&lt;/p&gt;
&lt;p&gt;Copy this snippet into &lt;code&gt;~/.config/jupyter/custom/custom.js&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;require&lt;/span&gt;&lt;span&gt;([&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;codemirror/keymap/sublime&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;notebook/js/cell&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;base/js/namespace&amp;quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    function&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;sublime_keymap&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; cell&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; IPython&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        cell&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;Cell&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;options_default&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;cm_config&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;keyMap&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;sublime&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        cell&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;Cell&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;options_default&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;cm_config&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;extraKeys[&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;Ctrl-Enter&amp;quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; function&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;cm&lt;/span&gt;&lt;span&gt;) {}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        var&lt;/span&gt;&lt;span&gt; cells&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; IPython&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;notebook&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;get_cells&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        for&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;var&lt;/span&gt;&lt;span&gt; cl&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;span&gt; cl&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span&gt; cells&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;length&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt; ;&lt;/span&gt;&lt;span&gt; cl&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;++&lt;/span&gt;&lt;span&gt;){&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            cells[cl]&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;code_mirror&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;setOption&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;keyMap&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;sublime&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            cells[cl]&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;code_mirror&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;setOption&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;extraKeys&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;                &amp;quot;Ctrl-Enter&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; function&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;cm&lt;/span&gt;&lt;span&gt;) {}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            })&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Reduce, reuse, recycle: Save the planet one Github action at the time</title>
        <published>2023-06-15T00:00:00+00:00</published>
        <updated>2023-06-15T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/workflow-sustainablity/"/>
        <id>https://stefsmeets.nl/posts/workflow-sustainablity/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/workflow-sustainablity/">&lt;p&gt;&lt;em&gt;Blog post I wrote with my colleague &lt;a rel=&quot;external&quot; href=&quot;https://www.esciencecenter.nl/team/sander-van-rijn-msc/&quot;&gt;Sander van Rijn&lt;/a&gt;. Originally published at &lt;a rel=&quot;external&quot; href=&quot;https://blog.esciencecenter.nl/reduce-reuse-recycle-save-the-planet-one-github-action-at-a-time-4ab602255c3f&quot;&gt;blog.esciencecenter.nl&lt;/a&gt; on June 15, 2023.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Ask any environmentalist what you can do to help combat climate change and protect the environment, and they will tell you to &lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Waste_hierarchy&quot;&gt;&quot;Reduce, Reuse, Recycle.&quot;&lt;/a&gt; These actions are focused on maximizing practical benefit while minimizing the cost to the environment through conservation of resources and preventing the emission of greenhouse gases.&lt;/p&gt;
&lt;p&gt;As software engineers, we are big fans of integration and continuous delivery (CI/CD) workflows as part of sustainable software development. GitHub actions is &lt;a rel=&quot;external&quot; href=&quot;https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions#about-billing-for-github-actions&quot;&gt;completely free for public repositories&lt;/a&gt;, so why wouldn&#39;t we? We use it for everything, from code analysis and linting, running tests and builds in isolated environments, generating documentation on &lt;a rel=&quot;external&quot; href=&quot;https://docs.readthedocs.io/en/stable/integrations.html&quot;&gt;readthedocs&lt;/a&gt;, and publishing packages on &lt;a rel=&quot;external&quot; href=&quot;https://github.com/marketplace/actions/pypi-publish&quot;&gt;PyPI&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Until all of our power comes from nuclear fusion, and data centers can be made of trees, running any code will have an environmental impact: CO2 and other emissions from the power used and the production of the computers it runs on. Not writing code won&#39;t solve our problems either, so we need to find places in our workflow where we can reduce our impact.&lt;/p&gt;
&lt;p&gt;Many CI/CD systems are configured to run automatically, often out of sight, so their impact to the planet adds up quickly. We have been asking ourselves some questions, like what we can do to make our use of CI/CD more sustainable.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Do we need to build the documentation for every commit we make to the code?&lt;/li&gt;
&lt;li&gt;Do we need to test on every version of Python on all platforms to ensure code works?&lt;/li&gt;
&lt;li&gt;Do we need to run all our machine learning notebooks on every push?&lt;/li&gt;
&lt;li&gt;When we fix a typo in our documentation, do we need to run a complete suite of regression tests?&lt;/li&gt;
&lt;li&gt;When we fix a bug, can we get away just re-running the failed tests?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In this blogpost we share what we have learned and give some ideas about what you can do to reduce your impact using &lt;a rel=&quot;external&quot; href=&quot;https://docs.github.com/en/actions&quot;&gt;GitHub Actions&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;why-bother&quot;&gt;Why bother?&lt;/h2&gt;
&lt;p&gt;Data centers need large amounts of energy, from running servers, computing hardware, and refrigerating equipment. And, let&#39;s not forget that the production of servers, cables and supporting equipment, and mining of the required raw materials also contribute.&lt;/p&gt;
&lt;p&gt;According to the &lt;a rel=&quot;external&quot; href=&quot;https://www.iea.org/reports/data-centres-and-data-transmission-networks&quot;&gt;IEA&lt;/a&gt;, all data centers and data transmission networks account for 2–3% of global electricity use. This corresponds to 300 Mt &lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Global_warming_potential#Carbon_dioxide_equivalent&quot;&gt;CO2-eq&lt;/a&gt; in 2020 (0.9% energy related greenhouse gas emissions). The costs for the environment are enormous. Although improvements in efficiency and hyperscale data centers help limit the growth in energy demands somewhat, the demand for data workloads and internet traffic still grows every year.&lt;/p&gt;
&lt;p&gt;GitHub (this blog is about GitHub Actions after all!) claims to be &lt;a rel=&quot;external&quot; href=&quot;https://github.blog/2021-04-22-environmental-sustainability-github/&quot;&gt;committed to environmental sustainability&lt;/a&gt;. A noble effort, but its parent company Microsoft increased its CO2 emissions by &lt;a rel=&quot;external&quot; href=&quot;https://aka.ms/SustainabilityReport2022&quot;&gt;nearly 15% from 2020 to 2022&lt;/a&gt;. Most companies who claim to achieve &#39;net zero&#39; do so not by reducing their emissions, but by compensating elsewhere. Microsoft compensated only about 10% of their emissions in 2022. This is typically done through &lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Guarantee_of_origin&quot;&gt;buying certified green energy&lt;/a&gt;, &lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Carbon_offsets_and_credits&quot;&gt;CO2 compensation&lt;/a&gt;, or &lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Emissions_trading&quot;&gt;emission trading&lt;/a&gt;. This allows companies to be green on paper by trading certificates, with little direct effect on their business operations. Such climate certificates are often sold on a promise, like planting trees or saving a forest from clearing. Better than nothing, but it’s even better to not have those emissions in the first place.&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;reduce.webp&quot;&gt;
    &lt;img src=&quot;reduce.webp&quot; alt=&quot;Less is more. Photo by [Etienne Girardet](https://unsplash.com/@etiennegirardet) on [Unsplash](https://unsplash.com/).&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Less is more. Photo by &lt;a rel=&quot;external&quot; href=&quot;https://unsplash.com/@etiennegirardet&quot;&gt;Etienne Girardet&lt;/a&gt; on &lt;a rel=&quot;external&quot; href=&quot;https://unsplash.com/&quot;&gt;Unsplash&lt;/a&gt;.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;reduce&quot;&gt;Reduce&lt;/h2&gt;
&lt;p&gt;So, what can we do?&lt;/p&gt;
&lt;p&gt;The best thing we can do is prevent resource usage by reducing the number of times we trigger the CI/CD workflows.&lt;/p&gt;
&lt;h3 id=&quot;restrict-branch-and-event-type&quot;&gt;Restrict branch and event type&lt;/h3&gt;
&lt;p&gt;Many of us have configured our CI to run whenever a commit is pushed to a pull request (PR). While this gives great peace of mind to see that our tests pass, we can&#39;t help but wonder if this is really necessary.&lt;/p&gt;
&lt;p&gt;One pattern we like to use when we are still working on a PR is to keep it in &lt;a rel=&quot;external&quot; href=&quot;https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request&quot;&gt;&lt;em&gt;Draft mode&lt;/em&gt;&lt;/a&gt;. Once we are happy with our code and want some feedback, we mark the PR as as &lt;em&gt;Ready for review&lt;/em&gt;. We can configure the CI to only run once a PR is &lt;em&gt;Ready for review&lt;/em&gt;. This gives the reviewer peace of mind that the PR is bug free and is safe to be merged.&lt;/p&gt;
&lt;p&gt;This also saves a whole bunch of unnecessary CI runs, and gives you more control when actually running the CI.&lt;/p&gt;
&lt;p&gt;To set this up, add this to your github action:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# tests.yml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; Tests&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;on&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  pull_request&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    branches&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; main&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    types&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; opened&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; reopened&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; synchronize&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; ready_for_review&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  push&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    branches&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; main&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;jobs&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  test&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; github.event.pull_request.draft == false&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;    ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    steps&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;      ...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;See an example of how we have implemented this for one of our projects &lt;a rel=&quot;external&quot; href=&quot;https://github.com/duqtools/duqtools/blob/main/.github/workflows/test.yaml&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;filter-by-changed-files&quot;&gt;Filter by changed files&lt;/h3&gt;
&lt;p&gt;Another common pattern we use is to only run a job when the relevant files have changed. Let&#39;s say we have a simple project with the following folder structure:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;project-to-save-the-planet/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;├── docs/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   └── the_plan.md&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   └── ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;├── src/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   ├── save_the_planet.py&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   ├── supporting_documentation.md&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   └── ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;├── tests/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;│   └── ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;├── ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;└── README.md&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We don&#39;t have to re-run all tests if something only changed in the documentation, nor do we have to rebuild the documentation if we only make changes to some tests. And if we only fix a typo in &lt;code&gt;README.md&lt;/code&gt; neither will be necessary. These restrictions can be enabled by &lt;a rel=&quot;external&quot; href=&quot;https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore&quot;&gt;adding filters in the &lt;code&gt;paths&lt;/code&gt;&lt;/a&gt; section of the workflow triggers. These &lt;code&gt;paths&lt;/code&gt; specifications can also be combined with the other filters such as branches shown earlier, to trigger only if it matches the paths &lt;strong&gt;and&lt;/strong&gt; branch.&lt;/p&gt;
&lt;p&gt;Here&#39;s an example configuration that triggers only on changes in the &lt;code&gt;docs&lt;/code&gt; folders:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# docs.yml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;on&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  push&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;    ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    paths&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;docs/**&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;jobs&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;  ...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Certain paths or types of files can also be excluded using an exclamation mark (&lt;code&gt;!&lt;/code&gt;). This can be useful if we want to trigger the tests to run on changes in &lt;code&gt;src/&lt;/code&gt; or &lt;code&gt;tests/&lt;/code&gt;, except when we make changes to some supporting documentation or other data that does not affect the outcome of the tests. Here&#39;s an example of such a workflow:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# tests.yml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;on&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  push&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;    ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    paths&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;src/**&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;!src/supporting_documentation.md&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;tests/**&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;jobs&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;  ...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;use-cpu-versions-of-tensorflow-and-pytorch&quot;&gt;Use CPU versions of tensorflow and pytorch&lt;/h3&gt;
&lt;p&gt;If you are working in machine learning, you will know that tensorflow and pytorch are enormous libraries. Together with their dependencies, they can be several gigabytes in size. On a CI, downloading these packages can already take up to a minute.&lt;/p&gt;
&lt;p&gt;But, did you know that most of this space is taken up by GPU support? Try using &lt;a rel=&quot;external&quot; href=&quot;https://pypi.org/project/tensorflow-cpu/&quot;&gt;&lt;code&gt;tensorflow-cpu&lt;/code&gt;&lt;/a&gt; or &lt;a rel=&quot;external&quot; href=&quot;https://pytorch.org/get-started/locally/&quot;&gt;&lt;code&gt;pytorch-cpu&lt;/code&gt;&lt;/a&gt;  instead of full-fat libraries. From our experience, this reduces the install size of our Python environments by approximately 1.5 GB on linux systems (this has no effect on Windows and Mac runners). The trick here is to install these prior to installing your package via &lt;code&gt;pip&lt;/code&gt;. These will then be skipped by &lt;code&gt;pip&lt;/code&gt; if these packages are also defined in your &lt;code&gt;pyproject.toml&lt;/code&gt; or &lt;code&gt;requirements.txt&lt;/code&gt;. Considering that all the common CI systems typically do not have GPUs in them, this makes the installs significantly lighter and therefore faster to run too!&lt;/p&gt;
&lt;p&gt;To do so, add this step to your GitHub action prior to installing your package:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# tests.yml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;jobs&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  test&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    steps&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;    ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; Install tensorflow&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      if&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; runner.os == &amp;#39;Linux&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      run&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        python3 -m pip install tensorflow-cpu&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; Install pytorch&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      if&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; runner.os == &amp;#39;Linux&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      run&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        python3 -m pip install torch --index-url https://download.pytorch.org/whl/cpu&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; Install dependencies&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      run&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;          pip install .&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;figure&gt;
  &lt;a href=&quot;reuse.webp&quot;&gt;
    &lt;img src=&quot;reuse.webp&quot; alt=&quot;Why throw away when you can reuse? Photo by [JulieN2212 via Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Upcycled_Roses.jpg).&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Why throw away when you can reuse? Photo by &lt;a rel=&quot;external&quot; href=&quot;https://commons.wikimedia.org/wiki/File:Upcycled_Roses.jpg&quot;&gt;JulieN2212 via Wikimedia Commons&lt;/a&gt;.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;reuse&quot;&gt;Reuse&lt;/h2&gt;
&lt;p&gt;If you must run the CI, the best way to reduce its impact is limit the actual work that needs to be done.&lt;/p&gt;
&lt;p&gt;With the &lt;a rel=&quot;external&quot; href=&quot;https://github.com/actions/cache&quot;&gt;cache action&lt;/a&gt;, you can cache dependencies and build outputs to make your workflows faster and thus more efficient. Maybe you need to compile some dependency, download and pre-compute some data, or set up your python environment via &lt;code&gt;pip&lt;/code&gt;. These typically do not change much from run to run, so try to cache these where possible.&lt;/p&gt;
&lt;h3 id=&quot;caching-your-python-environment&quot;&gt;Caching your Python environment&lt;/h3&gt;
&lt;p&gt;Just the installation of the dependencies of some Python code via pip can be quite significant. Some libraries just seem to pull in an endless stream of dependencies. So, why don&#39;t we cache our entire Python environment?&lt;/p&gt;
&lt;p&gt;Below is a snippet that we find effective in our workflows for Python code.&lt;/p&gt;
&lt;p&gt;As the cache key, we use a combination of the Python directory name (this includes the version) in combination with the hash of the &lt;code&gt;pyproject.toml&lt;/code&gt;, &lt;code&gt;setup.cfg&lt;/code&gt;, or &lt;code&gt;requirements.txt&lt;/code&gt; file. Whenever these get updated, the cache gets invalidated and regenerated.&lt;/p&gt;
&lt;p&gt;This means we can also safely skip the &lt;code&gt;pip install&lt;/code&gt; step if we hit the cache. Depending on the number of dependencies, this virtually eliminates the setup time of your workflow.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# tests.yaml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;jobs&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  test&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    steps&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;      ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; uses&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; actions/cache@v3&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        id&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; cache-python-env&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        with&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;          path&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; ${{ env.pythonLocation }}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;          key&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; ${{ env.pythonLocation }}-${{ hashFiles(&amp;#39;pyproject.toml&amp;#39;) }}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; Install dependencies&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; steps.cache-python-env.outputs.cache-hit != &amp;#39;true&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        run&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;          python -m pip install -e .[develop]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;caching-any-directory&quot;&gt;Caching any directory&lt;/h3&gt;
&lt;p&gt;To generalize the action below, the example below shows how any directory can be cached. We have used this to cache dependencies that need to be compiled. This can save minutes if not more from your workflow every single time it gets triggered.&lt;/p&gt;
&lt;p&gt;We recommend adding a version to the cache key, so that you can easily invalidate the cache and force a re-trigger through the action itself.&lt;/p&gt;
&lt;p&gt;Any subsequent workflows, will restore the directory from GitHub&#39;s cache.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# tests.yaml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;jobs&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  test&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    steps&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;      ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; uses&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; actions/cache@v3&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        id&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; cache-important-dependency&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        with&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;          path&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; important-dependency&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;          key&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; cache-key-1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; Compile dependency&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; steps.cache-important-dependency.outputs.cache-hit != &amp;#39;true&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        run&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;          mkdir important-dependency&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;          cd important-dependency&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;          echo &amp;quot;All I want is world peace... Or a piece of the world.&amp;quot; &amp;gt; t.txt&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;figure&gt;
  &lt;a href=&quot;recycle.webp&quot;&gt;
    &lt;img src=&quot;recycle.webp&quot; alt=&quot;Failing code into the red bin, please. Photo by [Pawel Czerwinski](https://unsplash.com/@pawel_czerwinski) on [Unsplash](https://unsplash.com/photos/RkIsyD_AVvc).&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Failing code into the red bin, please. Photo by &lt;a rel=&quot;external&quot; href=&quot;https://unsplash.com/@pawel_czerwinski&quot;&gt;Pawel Czerwinski&lt;/a&gt; on &lt;a rel=&quot;external&quot; href=&quot;https://unsplash.com/photos/RkIsyD_AVvc&quot;&gt;Unsplash&lt;/a&gt;.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;recycle&quot;&gt;Recycle&lt;/h2&gt;
&lt;p&gt;Finally, can we &lt;strong&gt;recycle&lt;/strong&gt; anything that is left when our CI run is done? Although not exactly trash, what&#39;s typically leftover is the test results: which tests passed and failed. If any tests failed, those definitely have to pass before we want to continue. It makes sense then to re-run those tests first, and we can stop if any of those fail again.&lt;/p&gt;
&lt;h3 id=&quot;pytest-last-failed&quot;&gt;Pytest last failed&lt;/h3&gt;
&lt;p&gt;Pytest has a very handy &lt;a rel=&quot;external&quot; href=&quot;https://docs.pytest.org/en/stable/how-to/cache.html&quot;&gt;&lt;code&gt;--last-failed&lt;/code&gt; flag&lt;/a&gt; for exactly this purpose, but that obviously depends on a local cache to remember the outcome of the previous run. Luckily for you, &lt;a rel=&quot;external&quot; href=&quot;https://github.com/sjvrijn/pytest-last-failed&quot;&gt;we&#39;ve already made a GitHub action&lt;/a&gt; that takes care of setting this up for you! Simply use this action instead of your &lt;code&gt;_run: pytest --my --pytest --args_&lt;/code&gt; step:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# tests.yaml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;jobs&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  test&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    steps&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;      # create python environment and install pytest&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;      ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; Run pytest&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      uses&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; sjvrijn/pytest-last-failed@v2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      with&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        pytest-args&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;--my --pytest --args&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;In this blog post, we introduced some options to make your sustainable software development more sustainable to the planet as well, whether by preventing double work or avoiding unnecessary CI runs in the first place. All it takes is a few extra lines in your workflows to help save the planet and save yourself some time in the process.&lt;/p&gt;
&lt;p&gt;Of course, there are many other strategies to reduce your impact, such as using pre-built dependencies, more efficient libraries, or preparing a docker container for complex test environments.&lt;/p&gt;
&lt;p&gt;It turns out that once you start looking, there are many technical options to reduce your impact. The more difficult challenge may be a social one, to convince your peers that change is necessary. In the end, we hope that this blog post inspired you, and that you will consider the environmental impact of your work.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Test your Streamlit dashboard using Playwright</title>
        <published>2023-05-17T00:00:00+00:00</published>
        <updated>2023-05-17T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/streamlit-pytest/"/>
        <id>https://stefsmeets.nl/posts/streamlit-pytest/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/streamlit-pytest/">&lt;p&gt;Over the last year, Streamlit has quickly become one of my favourite tools to &lt;a rel=&quot;external&quot; href=&quot;https://www.stefsmeets.nl/posts/forget-jupyter-notebooks/&quot;&gt;showcase research data&lt;/a&gt;. I have been using it to create interactive dashboards and simple user interfaces for my data analysis tools.&lt;/p&gt;
&lt;p&gt;As a software engineer, I want to make sure that whenever I make changes to my code, the dashboard that my users interact with still functions. Whether I did a refactoring, made some changes to the Python API of some functions, or a dependency got out-of-date. There are many reasons why a Streamlit dashboard may crash or refuse to work.&lt;/p&gt;
&lt;p&gt;Testing a Streamlit dashboard manually can be quite time-consuming after every code change. Sometimes I simply forget. So I was looking for a way to automate this process.&lt;/p&gt;
&lt;h2 id=&quot;playwright&quot;&gt;Playwright&lt;/h2&gt;
&lt;p&gt;For my requirements, I was looking for some tool that I can call from Python, is fairly lightweight, and easy to get started with.&lt;/p&gt;
&lt;p&gt;I had previously heard about &lt;a rel=&quot;external&quot; href=&quot;https://www.selenium.dev/&quot;&gt;Selenium&lt;/a&gt; as the goto tool for browser automation and testing of web apps, but in my search I quickly came across &lt;a rel=&quot;external&quot; href=&quot;https://playwright.dev&quot;&gt;Playwright&lt;/a&gt;. There are many reasons to prefer one over the other, but it seems that Playwright is a more modern tool with a growing community.&lt;/p&gt;
&lt;p&gt;The thing that won me over is that it has a &lt;a rel=&quot;external&quot; href=&quot;https://playwright.dev/python/docs/test-runners&quot;&gt;plugin for pytest&lt;/a&gt; and  is easy to install. It even has a &lt;a rel=&quot;external&quot; href=&quot;https://playwright.dev/python/docs/codegen-intro&quot;&gt;code generator&lt;/a&gt;!&lt;/p&gt;
&lt;h2 id=&quot;getting-started&quot;&gt;Getting started&lt;/h2&gt;
&lt;p&gt;Installing pytest into my virtual environment was straight-forward via the plugin:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;pip&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; install pytest-playwright&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will also install the playwright library, but you should install browsers seperately. I&#39;m not interested in testing browser support, so I stick with the chromium default:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;playwright install chromium&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;writing-your-first-streamlit-test&quot;&gt;Writing your first Streamlit test&lt;/h2&gt;
&lt;p&gt;First, start your Streamlit app. For this example, I use the Streamlit demo page. You can replace this with your own Streamlit app. I open it in headless mode to prevent Streamlit from opening a browser.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;streamlit&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; hello&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; --server.headless&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; true&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In a different tab, start the &lt;a rel=&quot;external&quot; href=&quot;https://playwright.dev/python/docs/codegen-intro&quot;&gt;playwright code generator&lt;/a&gt;:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;playwright&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; codegen http://localhost:8501&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;figure&gt;
  &lt;a href=&quot;canvas.webp&quot;&gt;
    &lt;img src=&quot;canvas.webp&quot; alt=&quot;Highlight an element and playwright will tell you how to locate it from code.&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Highlight an element and playwright will tell you how to locate it from code.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The code generator can be used to generate entire user workflows and automate testing procedures. You will get a little inspector window which will write out the code for you in Python, Java, Node.js, or C#.&lt;/p&gt;
&lt;p&gt;I have found the code generate to be very useful to get &lt;em&gt;locators&lt;/em&gt;. These can be used as targets to click on or to verify whether elements are present.&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;inspector.webp&quot;&gt;
    &lt;img src=&quot;inspector.webp&quot; alt=&quot;The playwright inspector automatically generates code for you.&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;The playwright inspector automatically generates code for you.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Add the generated code to a file, i.e. &lt;code&gt;test_hello.py&lt;/code&gt; and run pytest:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;pytest test_hello.py&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A cool feature, is that you can run it in &lt;em&gt;headed&lt;/em&gt; mode, which will open up a Chromium window so you can follow along with the steps.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;pytest test_hello.py --headed&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;waiting-for-long-running-processes&quot;&gt;Waiting for long running processes&lt;/h2&gt;
&lt;p&gt;If you&#39;re doing any sort of computation in your dashboard or need to wait for the page to load, you may have to tell playwright to pause at certain times.&lt;/p&gt;
&lt;p&gt;One trick I found is to look for the &lt;em&gt;Running...&lt;/em&gt; widget at the top of the page. While the widget is there, we cannot continue with the tests. You can add this line whever you need to wait for the next element to load:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;page&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;get_by_text&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Running...&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;wait_for&lt;/span&gt;&lt;span&gt;(state&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;detached&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;a-complete-script-for-testing&quot;&gt;A complete script for testing&lt;/h2&gt;
&lt;p&gt;Below is an example of what a complete script may look like. This code should run &#39;as-is&#39; if you have installed &lt;code&gt;streamlit&lt;/code&gt;, &lt;code&gt;pytest&lt;/code&gt;, and &lt;code&gt;pytest-playwright&lt;/code&gt;. Save it as as &lt;code&gt;test_hello.py&lt;/code&gt; and run &lt;code&gt;pytest test_hello.py&lt;/code&gt;. Checkout the full documentation for the playwright python api &lt;a rel=&quot;external&quot; href=&quot;https://playwright.dev/python/docs/writing-tests&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; time&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; contextlib&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; contextmanager&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; pytest&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; subprocess&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; as&lt;/span&gt;&lt;span&gt; sp&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; playwright&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;sync_api&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; Page&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; expect&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;PORT&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;8502&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;BASE_URL&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; f&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;localhost:&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;{PORT}&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D9BE98;&quot;&gt;@pytest&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #D9BE98;&quot;&gt;fixture&lt;/span&gt;&lt;span&gt;(scope&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;module&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; autouse&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;True&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; run_streamlit&lt;/span&gt;&lt;span&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;    &amp;quot;&amp;quot;&amp;quot;Run the app.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    p&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; sp&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;Popen&lt;/span&gt;&lt;span&gt;([&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;        *&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;streamlit&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;hello&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;        *&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;--server.port&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; PORT&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;        *&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;--server.headless&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;true&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    ])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    time&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;sleep&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;10&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;  # give Streamlit some time to start&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    yield&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    p&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;kill&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; test_page_load&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;page&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span&gt; Page):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;    &amp;quot;&amp;quot;&amp;quot;Test performance of landing page.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    page&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;goto&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;BASE_URL&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    page&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;get_by_text&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Running...&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;wait_for&lt;/span&gt;&lt;span&gt;(state&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;detached&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;    expect&lt;/span&gt;&lt;span&gt;(page)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;to_have_title&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;Hello&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    selector&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; page&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;get_by_text&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;Welcome to Streamlit! 👋&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;    expect&lt;/span&gt;&lt;span&gt;(selector)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;to_be_visible&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; test_plotting_demo&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;page&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span&gt; Page):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;    &amp;quot;&amp;quot;&amp;quot;Test performance of plotting demo.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    page&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;goto&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;{BASE_URL}&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;/Plotting_Demo&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    page&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;get_by_text&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Running...&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;wait_for&lt;/span&gt;&lt;span&gt;(state&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;detached&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;    expect&lt;/span&gt;&lt;span&gt;(page)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;to_have_title&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Plotting Demo&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    page&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;get_by_text&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Running...&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;wait_for&lt;/span&gt;&lt;span&gt;(state&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;detached&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    selector&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; page&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;locator&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;canvas&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;    expect&lt;/span&gt;&lt;span&gt;(selector)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;to_be_visible&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
        
    </entry>
    <entry xml:lang="en">
        <title>A workflow for making a release on PyPI</title>
        <published>2023-05-05T00:00:00+00:00</published>
        <updated>2023-05-05T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/release-pypi/"/>
        <id>https://stefsmeets.nl/posts/release-pypi/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/release-pypi/">&lt;p&gt;Releasing a package on &lt;a rel=&quot;external&quot; href=&quot;https://pypi.org&quot;&gt;PyPI&lt;/a&gt; is not as difficult as it used to be. The tooling has evolved significantly since I uploaded my first package many years ago. Most of the steps can now be automated using github actions. In this blog I describe my typical workflow for releasing a package on PyPI.&lt;/p&gt;
&lt;h3 id=&quot;authentication-on-pypi&quot;&gt;Authentication on PyPI&lt;/h3&gt;
&lt;p&gt;After 2023-06-01, &lt;a rel=&quot;external&quot; href=&quot;https://blog.pypi.org/posts/2023-06-01-2fa-enforcement-for-upload/&quot;&gt;all uploads from user accounts with 2FA enabled must use an API token in place of their password&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So, first things first, we must set up authentication:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to https://pypi.org/manage/account/token/&lt;/li&gt;
&lt;li&gt;Generate a new token, scope it to &lt;em&gt;Entire account (all projects)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Copy the token and create a new file: &lt;code&gt;$home/.pypirc&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It looks something like this:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;ini&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;[pypi]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;  username&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt; =&lt;/span&gt;&lt;span&gt; __token__&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;  password&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt; =&lt;/span&gt;&lt;span&gt; pypi-Fjk8z...39ZDiQ&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;Enjoy publishing to PyPI without every typing your password again&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;first-release&quot;&gt;First release&lt;/h3&gt;
&lt;p&gt;Although I have automated releases of my packages, the first release has to be manual.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Decide on a package name on &lt;a rel=&quot;external&quot; href=&quot;http://pypi.org&quot;&gt;PyPI&lt;/a&gt; that is still available&lt;/li&gt;
&lt;li&gt;Make a manual upload to &lt;a rel=&quot;external&quot; href=&quot;http://pypi.org&quot;&gt;PyPI&lt;/a&gt;. You can do this with &lt;a rel=&quot;external&quot; href=&quot;https://pypi.org/project/build/&quot;&gt;&lt;code&gt;build&lt;/code&gt;&lt;/a&gt; and &lt;a rel=&quot;external&quot; href=&quot;https://pypi.org/project/twine/&quot;&gt;&lt;code&gt;twine&lt;/code&gt;&lt;/a&gt;:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;pip&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; install twine build&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;python&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -m&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; build&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;twine&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; upload dist/&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;font-style: italic;&quot;&gt;*&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;Celebrate first release on pypi 🥳&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(I recommend using &lt;a rel=&quot;external&quot; href=&quot;https://packaging.python.org/en/latest/guides/using-testpypi/&quot;&gt;testpypi&lt;/a&gt; if this is the first time.)&lt;/p&gt;
&lt;h3 id=&quot;automating-the-next-releases&quot;&gt;Automating the next releases&lt;/h3&gt;
&lt;p&gt;The following releases can be completely automated using github actions.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to your &lt;a rel=&quot;external&quot; href=&quot;https://pypi.org/manage/account/token/&quot;&gt;PyPI settings&lt;/a&gt; and register an API token scoped to your package.&lt;/li&gt;
&lt;li&gt;Add the token to this repo&#39;s secrets named &lt;code&gt;PYPI_TOKEN&lt;/code&gt;: https://github.com/USER/PROJECT/settings/secrets/actions.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Afterwards, this github action will take care of the rest:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; Publish on PyPI&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;on&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  release&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    types&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;published&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;jobs&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  deploy&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    runs-on&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; ubuntu-latest&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    steps&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; uses&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; actions/checkout@v2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; uses&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; actions/setup-python@v2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      with&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        python-version&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 3.10&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; Install dependencies&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      run&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        python -m pip install --upgrade pip&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        pip install setuptools wheel twine&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        python setup.py sdist bdist_wheel&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; Publish package&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      uses&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; pypa/gh-action-pypi-publish@master&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      with&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        user&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; __token__&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        password&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; ${{ secrets.PYPI_TOKEN }}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Place this action in &lt;code&gt;.github/workflows/publish.yaml&lt;/code&gt; of your project.&lt;/p&gt;
&lt;h3 id=&quot;new-releases&quot;&gt;New releases&lt;/h3&gt;
&lt;p&gt;The workflow then becomes as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Bump the version (&lt;code&gt;major&lt;/code&gt;/&lt;code&gt;minor&lt;/code&gt;/&lt;code&gt;patch&lt;/code&gt; as needed). I use &lt;a rel=&quot;external&quot; href=&quot;https://pypi.org/project/bumpversion/&quot;&gt;&lt;code&gt;bumpversion&lt;/code&gt;&lt;/a&gt; to help with this.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;bumpversion&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; minor&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;Make a new &lt;a rel=&quot;external&quot; href=&quot;https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases&quot;&gt;release&lt;/a&gt; on github. The upload to PyPI is triggered when a release is published. Make sure the tag matches the version.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you use the standard &lt;a rel=&quot;external&quot; href=&quot;https://docs.github.com/en/get-started/quickstart/github-flow&quot;&gt;github workflow&lt;/a&gt; (create branch-&amp;gt;PR-&amp;gt;merge-&amp;gt;delete branch), it&#39;s really easy to make changelogs this way too.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>eScience Center Showcases Modelling Tools for Next Generation Fusion Reactors</title>
        <published>2023-05-01T00:00:00+00:00</published>
        <updated>2023-05-01T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/differ-workshop/"/>
        <id>https://stefsmeets.nl/posts/differ-workshop/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/differ-workshop/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>High-throughput phase elucidation of polycrystalline materials using serial rotation electron diffraction</title>
        <published>2023-04-01T00:00:00+00:00</published>
        <updated>2023-04-01T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/high-throughput-phase-elucidation/"/>
        <id>https://stefsmeets.nl/articles/high-throughput-phase-elucidation/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/high-throughput-phase-elucidation/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Did you ever wonder what domain name to use for your home network?</title>
        <published>2023-02-12T00:00:00+00:00</published>
        <updated>2023-02-12T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/localdomains/"/>
        <id>https://stefsmeets.nl/posts/localdomains/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/localdomains/">&lt;p&gt;Neither did I. That is, until I wanted to have easy-to-remember urls that I can access from any device I own without having to type in a long ip-address. For example, instead of writing &lt;code&gt;http://192.168.0.123:1234&lt;/code&gt;, I want to be able to type &lt;code&gt;https://jellyfin.myhome&lt;/code&gt; to navigate to my &lt;a rel=&quot;external&quot; href=&quot;https://jellyfin.org/&quot;&gt;jellyfin&lt;/a&gt; instance.&lt;/p&gt;
&lt;p&gt;I run a local DNS server &lt;a rel=&quot;external&quot; href=&quot;https://adguard.com&quot;&gt;adguard&lt;/a&gt;, which means I can use use DNS rewrites to capture outgoing DNS requests. Adguard then points whoever sends the requests to a server or service in my network. Very convenient.&lt;/p&gt;
&lt;h2 id=&quot;firefox-struggles&quot;&gt;Firefox struggles&lt;/h2&gt;
&lt;p&gt;Except... this didn&#39;t work. It turns out my first roadblock was Firefox. All my queries would give me the following screen:&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;nope-sorry.webp&quot;&gt;
    &lt;img src=&quot;nope-sorry.webp&quot; alt=&quot;Hmm. We’re having trouble finding that site.&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Hmm. We’re having trouble finding that site.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;It turns out that firefox has an allowlist of accepted domains. These are all the registered global &lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains&quot;&gt;TLDs&lt;/a&gt;. Additional entries are defined in &lt;a href=&quot;about:config&quot;&gt;about:config&lt;/a&gt; under &lt;code&gt;browser.fixup.domainsuffixwhitelist.*&lt;/code&gt;. These are the additional &lt;em&gt;special&lt;/em&gt; TLDs that firefox allows as defined by &lt;a rel=&quot;external&quot; href=&quot;https://www.iana.org/assignments/special-use-domain-names/special-use-domain-names.xhtml&quot;&gt;IANA&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.develop&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.example&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.intranet&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.local&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.localhost&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.test&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While I could add a TLD of my own choice (i.e. &lt;code&gt;browser.fixup.domainsuffixwhitelist.myhome&lt;/code&gt;)&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;, I would have to do this on every device I own. The added risk is that I do not &lt;em&gt;own&lt;/em&gt; the &lt;code&gt;myhome&lt;/code&gt; TLD, so I have no control over if someone else registers this domain. This is not really an issue for a &lt;del&gt;hobby home network with a couple of devices&lt;/del&gt; &lt;a rel=&quot;external&quot; href=&quot;https://reddit.com/r/homelab&quot;&gt;homelab&lt;/a&gt;, but still something to keep in mind.&lt;/p&gt;
&lt;p&gt;Instead, I settled on &lt;code&gt;.local&lt;/code&gt;. This worked well... for a while.&lt;/p&gt;
&lt;h2 id=&quot;multi-cast-dns&quot;&gt;Multi-cast DNS?&lt;/h2&gt;
&lt;p&gt;I shortly realized that while I could access my services via firefox (🥳) and SSH in Windows, I could no longer SSH from linux anymore. Somehow the DNS would resolve correctly:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; nslookup jellyfin.local&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;Server:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;		192.168.0.123&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;Address:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;	192.168.0.123#53&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;Non-authoritative&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; answer:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;Name:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;	jellyfin.local&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;Address:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 192.168.0.123&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But &lt;code&gt;ping&lt;/code&gt; would fail:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; ping jellyfin.local&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;ping:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; jellyfin.local: Name or service not known&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;What I didn&#39;t know is that &lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/.local&quot;&gt;&lt;code&gt;.local&lt;/code&gt;&lt;/a&gt; is essentially reserved for multi-cast DNS (mDNS) as defined by &lt;a rel=&quot;external&quot; href=&quot;https://www.rfc-editor.org/rfc/rfc6762.html&quot;&gt;RFC6762&lt;/a&gt;. I had never heard about this, but apparently &lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Multicast_DNS&quot;&gt;mDNS&lt;/a&gt; means servers can define their own names and advertise them on the network. It is zero-configuration, as opposed to a conventional (unicast) DNS server.&lt;/p&gt;
&lt;p&gt;My linux distro of choice (Debian) tries to resolve mDNS first, where Windows does not. On Linux this behaviour is defined in &lt;code&gt;/etc/nsswitch.conf&lt;/code&gt;. Setting hosts to &lt;code&gt;files dns&lt;/code&gt; works around the issue.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; cat /etc/nsswitch.conf&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt; grep&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; hosts&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;hosts:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;          files mdns4_minimal&lt;/span&gt;&lt;span&gt; [NOTFOUND=return] dns&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This again leads me back to the problem of having to define this behaviour on all of my 3 linux machines.&lt;/p&gt;
&lt;h2 id=&quot;tldr-use-home-arpa&quot;&gt;tldr: use &lt;code&gt;.home.arpa&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;All of this left me wondering, what is the right local domain to use?&lt;/p&gt;
&lt;p&gt;Apparently there is a relatively new standard for this defined by &lt;a rel=&quot;external&quot; href=&quot;https://datatracker.ietf.org/doc/html/rfc8375&quot;&gt;RFC8375&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This document specifies the behavior that is expected from the Domain
Name System with regard to DNS queries for names ending with
&lt;code&gt;.home.arpa.&lt;/code&gt; and designates this domain as a special-use domain
name. &lt;code&gt;home.arpa.&lt;/code&gt; is designated for non-unique use in residential
home networks.  The Home Networking Control Protocol (HNCP) is
updated to use the &lt;code&gt;home.arpa.&lt;/code&gt; domain instead of &lt;code&gt;.home&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The idea is that using a TLD you do not control means that it might eventually get registered, leaking information onto the global web. &lt;code&gt;.home.arpa&lt;/code&gt; is a subdomain of &lt;code&gt;.arpa&lt;/code&gt; for exactly the purpose of home networks. &lt;code&gt;.arpa&lt;/code&gt; itself is a special TLD used used &lt;em&gt;for the management of technical network infrastructure of the internet&lt;/em&gt;.&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#2&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; This guarantees that this domain is safe to use.&lt;/p&gt;
&lt;p&gt;Alternatively, you can register your own domain (i.e. &lt;code&gt;https://stefsmeets.nl&lt;/code&gt; in my case), which holds the same guarantees.&lt;/p&gt;
&lt;p&gt;I ended up using &lt;code&gt;*.home.arpa&lt;/code&gt; for my local services. Everything, including &lt;code&gt;http://jellyfin.home.arpa&lt;/code&gt;, seems to work as advertised. Which means zero-configuration on my part for any new devices I add to my network!&lt;/p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;1&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;1&lt;/sup&gt;
&lt;p&gt;I tried and it totally works!&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;2&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;2&lt;/sup&gt;
&lt;p&gt;https://en.wikipedia.org/wiki/.arpa&lt;/p&gt;
&lt;/div&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>TIL how to update docker compose images the right way</title>
        <published>2023-01-14T00:00:00+00:00</published>
        <updated>2023-01-14T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/docker-compose-update/"/>
        <id>https://stefsmeets.nl/posts/docker-compose-update/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/docker-compose-update/">&lt;p&gt;Every time I want to update my docker images, I&#39;m a bit confused about the best way to do it. I run all my images using docker compose. Sometimes I want to update a single image to try a new feature, and sometimes I update all of them at once.&lt;/p&gt;
&lt;p&gt;The reason for this post is that the last time when I tried to update all my images, it did not go as planned. I updated all images by removing the running images, and then restarting them.&lt;/p&gt;
&lt;p&gt;When you remove an image and then restart your container, docker will always pull the latest image version. While this usually works, it gave me issues this time because I run &lt;a rel=&quot;external&quot; href=&quot;https://adguard.com/en/adguard-home/overview.html&quot;&gt;adguard&lt;/a&gt; as my DNS server. Removing adguard meant that the image got taken down before the new image was available. No DNS means no internet&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;. No internet means no new docker images to pull. Not ideal. 😅&lt;/p&gt;
&lt;p&gt;I find it works better to first pull the new image(s) and then restarting the containers:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;docker&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; compose pull&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;docker&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; compose down&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;docker&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; compose up&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -d&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To pull the image for a specific service:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;docker&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; compose pull adguard&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or by its image name directly:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;docker&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; pull adguard/adguardhome&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Optionally, remove old unused images:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;docker&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; image prune&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;1&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;1&lt;/sup&gt;
&lt;p&gt;Well, mostly. At least firefox caches DNS requests, so my frequently visited sites are still accessible somehow.&lt;/p&gt;
&lt;/div&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>5 Python tricks I learned from Advent of Code 2022</title>
        <published>2022-12-28T00:00:00+00:00</published>
        <updated>2022-12-28T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/advent-of-code-2022/"/>
        <id>https://stefsmeets.nl/posts/advent-of-code-2022/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/advent-of-code-2022/">&lt;p&gt;As someone who loves to practice code optimization techniques, December has become one of my favourite times of the year. Like last year, I participated in &lt;a rel=&quot;external&quot; href=&quot;https://adventofcode.com/&quot;&gt;Advent of Code&lt;/a&gt;. This is an annual set of Christmas-themed programming puzzles that follow an advent calendar. This is the second time I participated, because it is a great way to practice my coding skills on problems I do not normally encounter.&lt;/p&gt;
&lt;p&gt;One of my favourite things about it is that everyone is sharing their solutions &lt;a rel=&quot;external&quot; href=&quot;https://old.reddit.com/r/adventofcode/&quot;&gt;on reddit&lt;/a&gt; or other forums. I love to share my own tricks, and even more to read about how others approached the same problem. I often go back to improve my own solutions to implement what I learned.&lt;/p&gt;
&lt;p&gt;This is a short list of some of the tricks that I picked up this year.&lt;/p&gt;
&lt;h2 id=&quot;count&quot;&gt;Count&lt;/h2&gt;
&lt;p&gt;Many puzzles require you to keep of some round or iteration number. While you could manually increment &lt;code&gt;n&lt;/code&gt; in a while-loop, you can also iterate over &lt;code&gt;count()&lt;/code&gt;. I used this in &lt;a rel=&quot;external&quot; href=&quot;https://github.com/stefsmeets/aoc2022/blob/main/day23/solve.py&quot;&gt;day 23&lt;/a&gt; and &lt;a rel=&quot;external&quot; href=&quot;https://github.com/stefsmeets/aoc2022/blob/main/day24/solve.py&quot;&gt;day 24&lt;/a&gt;.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; from&lt;/span&gt;&lt;span&gt; itertools&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; count&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; for&lt;/span&gt;&lt;span&gt; n&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; count&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;     if&lt;/span&gt;&lt;span&gt; n&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; ==&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 3&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;         break&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;     print&lt;/span&gt;&lt;span&gt;(n)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is especially useful to factor out the loop for some solutions. For &lt;a rel=&quot;external&quot; href=&quot;https://github.com/stefsmeets/aoc2022/blob/main/day23/solve.py&quot;&gt;day 23&lt;/a&gt; I used this pattern to re-use the same code for both part 1 and 2:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; part1&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;s&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; str&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; solve&lt;/span&gt;&lt;span&gt;(s&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; rounds&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;range&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;10&lt;/span&gt;&lt;span&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; part2&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;s&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; str&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; solve&lt;/span&gt;&lt;span&gt;(s&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; rounds&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;count&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;divmod&quot;&gt;Divmod&lt;/h2&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https://docs.python.org/3/library/functions.html#divmod&quot;&gt;Divmod&lt;/a&gt; is a python builtin that does division and modulo in a single function. It literally returns the (&lt;code&gt;x//y&lt;/code&gt;, &lt;code&gt;x%y&lt;/code&gt;):&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; divmod&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;7&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;2&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cool! I used this in &lt;a rel=&quot;external&quot; href=&quot;https://github.com/stefsmeets/aoc2022/blob/main/day17/solve.py&quot;&gt;day 17&lt;/a&gt; and &lt;a rel=&quot;external&quot; href=&quot;https://github.com/stefsmeets/aoc2022/blob/main/day25/solve.py&quot;&gt;25&lt;/a&gt; to save a few lines of code.&lt;/p&gt;
&lt;h2 id=&quot;complex-numbers-are-magic&quot;&gt;Complex numbers are magic&lt;/h2&gt;
&lt;p&gt;Complex numbers can be used to store coordinates. Who knew!? I saw many solutions using this trick in combinations with sets hack to avoid having to set up a custom &lt;code&gt;Pointer(x, y)&lt;/code&gt; class or &lt;code&gt;(x, y)&lt;/code&gt; tuples. Where the real and imaginary components represent the &lt;strong&gt;x&lt;/strong&gt; and &lt;strong&gt;y&lt;/strong&gt; coordianates.&lt;/p&gt;
&lt;p&gt;Complex numbers have 3 distinct advantages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Complex numbers are immutable, so they can be added to sets (tuples or dataclasses cannot).&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span&gt; coords&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; in&lt;/span&gt;&lt;span&gt; coords&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;True&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;They are a builtin type. This makes using them in list comprehensions a breeze.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span&gt; pos&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; for&lt;/span&gt;&lt;span&gt; new_pos&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; in&lt;/span&gt;&lt;span&gt; (pos&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; pos&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; pos&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;     ...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Complex math is really interesting for coordinate systems. Complex numbers are almost a coordinate system in itself. For example, a clockwise rotation is simply a multiplication by &lt;code&gt;-1j&lt;/code&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span&gt; a&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; for&lt;/span&gt;&lt;span&gt; x&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; range&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;4&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;      print&lt;/span&gt;&lt;span&gt;(a&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; :=&lt;/span&gt;&lt;span&gt; a&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; * -&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After seeing some solutions use this I tried it myself during &lt;a rel=&quot;external&quot; href=&quot;https://github.com/stefsmeets/aoc2022/blob/main/day14/solve.py&quot;&gt;day 14&lt;/a&gt;. While it made the code shorter, I thought it was a bit challenging to reason about it for myself. I tried again in some later solutions, but I prefer to pass row and column (&lt;code&gt;(r, c)&lt;/code&gt;) tuples.&lt;/p&gt;
&lt;h2 id=&quot;sets-are-useful-as-sparse-matrices&quot;&gt;Sets are useful as sparse matrices&lt;/h2&gt;
&lt;p&gt;As someone with a background in image processing, I immediately reach for &lt;code&gt;numpy&lt;/code&gt; whenever something can be parsed into an array. This turned out to be the wrong choice on &lt;a rel=&quot;external&quot; href=&quot;https://github.com/stefsmeets/aoc2022/blob/main/day14/solve.py&quot;&gt;day 14&lt;/a&gt; and &lt;a rel=&quot;external&quot; href=&quot;https://github.com/stefsmeets/aoc2022/blob/main/day23/solve.py&quot;&gt;23&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In both cases, the array could be infinitely expanded which made numpy the wrong choice. In fact, in both puzzles, you could simply keep track of the &#39;blocked&#39; positions as a set of coordinates. Bonus: checking whether coordinates are in a set is really fast in Python.&lt;/p&gt;
&lt;p&gt;For example, this snippet from my solution for &lt;a rel=&quot;external&quot; href=&quot;https://github.com/stefsmeets/aoc2022/blob/main/day24/solve.py&quot;&gt;day 24&lt;/a&gt;:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; for&lt;/span&gt;&lt;span&gt; rnd&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; count&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span&gt;     gusts&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; its_gusty_here&lt;/span&gt;&lt;span&gt;(gusts)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span&gt;     gust_map&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; sum&lt;/span&gt;&lt;span&gt;(gusts)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span&gt;     new_safe&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; {start}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;     for&lt;/span&gt;&lt;span&gt; pos&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; in&lt;/span&gt;&lt;span&gt; safe&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span&gt;         new_safe&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; |=&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; set&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;is_safe&lt;/span&gt;&lt;span&gt;(gust_map&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; pos))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span&gt;     safe&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; new_safe&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;     if&lt;/span&gt;&lt;span&gt; stop&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; in&lt;/span&gt;&lt;span&gt; safe&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;         break&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;for-else&quot;&gt;for/else&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;for/else&lt;/code&gt; and &lt;code&gt;while/else&lt;/code&gt; are odd statements in Python. If it were up to Guido, &lt;a rel=&quot;external&quot; href=&quot;https://mail.python.org/pipermail/python-ideas/2009-October/006157.html&quot;&gt;he would not have included them at all&lt;/a&gt;. Their use is highly discouraged, because it&#39;s somewhat confusing what to do. In my head I read it as &lt;code&gt;for/nobreak&lt;/code&gt;. However, they can be useful on some occasions. This advent of code I found two perfect opportunities to use them.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;for&lt;/span&gt;&lt;span&gt; x&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; range&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;5&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; some_condition&lt;/span&gt;&lt;span&gt;(x)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        break&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;    # loop completed&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    assert&lt;/span&gt;&lt;span&gt; x&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; ==&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 4&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For example, I used this in my solutions for &lt;a rel=&quot;external&quot; href=&quot;https://github.com/stefsmeets/aoc2022/blob/main/day14/solve.py&quot;&gt;day 14&lt;/a&gt;:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;while&lt;/span&gt;&lt;span&gt; hole&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; not in&lt;/span&gt;&lt;span&gt; cave&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    for&lt;/span&gt;&lt;span&gt; new_pos&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; in&lt;/span&gt;&lt;span&gt; (grain&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; grain&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; grain&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;j&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        if&lt;/span&gt;&lt;span&gt; part1&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; and&lt;/span&gt;&lt;span&gt; (new_pos&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;imag&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; ==&lt;/span&gt;&lt;span&gt; abyss)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;            return&lt;/span&gt;&lt;span&gt; n_grains&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        elif&lt;/span&gt;&lt;span&gt; new_pos&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;imag&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; ==&lt;/span&gt;&lt;span&gt; abyss&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;            pass&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        elif&lt;/span&gt;&lt;span&gt; new_pos&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; not in&lt;/span&gt;&lt;span&gt; cave&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            grain&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; new_pos&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;            break&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    else&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        cave&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;add&lt;/span&gt;&lt;span&gt;(grain)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        n_grains&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        grain&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; hole&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and &lt;a rel=&quot;external&quot; href=&quot;https://github.com/stefsmeets/aoc2022/blob/main/day23/solve.py&quot;&gt;day 23&lt;/a&gt;:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;for&lt;/span&gt;&lt;span&gt; pos&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; in&lt;/span&gt;&lt;span&gt; field&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; all_empty&lt;/span&gt;&lt;span&gt;(field&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; pos)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        for&lt;/span&gt;&lt;span&gt; func&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; in&lt;/span&gt;&lt;span&gt; moves&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;            if&lt;/span&gt;&lt;span&gt; new_pos&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; :=&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; func&lt;/span&gt;&lt;span&gt;(field&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; pos)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;                break&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        else&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            new_pos&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; pos&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    else&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        new_pos&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; pos&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;There you have it, some of the tricks I picked up during advent of code. See you next year! 🎄&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Nanomesh: A Python workflow tool for generating meshes from image data</title>
        <published>2022-10-09T00:00:00+00:00</published>
        <updated>2022-10-09T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/nanomesh/"/>
        <id>https://stefsmeets.nl/articles/nanomesh/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/nanomesh/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Streamlit + PySide = standalone data app</title>
        <published>2022-10-07T00:00:00+00:00</published>
        <updated>2022-10-07T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/streamlit-webview/"/>
        <id>https://stefsmeets.nl/posts/streamlit-webview/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/streamlit-webview/">&lt;p&gt;For one of my projects I wanted to be able to open a streamlit app in its own window. &lt;a rel=&quot;external&quot; href=&quot;https://streamlit.io/&quot;&gt;Streamlit&lt;/a&gt; is an excellent way to turn scripts into web apps that I like to use to &lt;a rel=&quot;external&quot; href=&quot;https://blog.esciencecenter.nl/forget-about-jupyter-notebooks-showcase-your-research-using-dashboards-5d13451ba374&quot;&gt;showcase research data&lt;/a&gt;. By default, it starts a web server and attempts to open this url in a webbrowser.&lt;/p&gt;
&lt;p&gt;I was curious if it would be possible to redirect this to some sort of Python webview, so that I could turn my dashboard into a standalone app.&lt;/p&gt;
&lt;h2 id=&quot;qt-webview&quot;&gt;Qt webview&lt;/h2&gt;
&lt;p&gt;It turns out that Qt (using &lt;a rel=&quot;external&quot; href=&quot;https://wiki.qt.io/Qt_for_Python&quot;&gt;PySide2&lt;/a&gt;) has this capability via the &lt;code&gt;QtWebEngineWidgets&lt;/code&gt;. The most straightforward way to install is via conda:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;conda&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -c&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; conda-forge pyside2&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With &lt;code&gt;pyside&lt;/code&gt; installed, it is straightforward enough to make a little window pop up showing any url:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; PySide2&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; QtCore&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; QtWebEngineWidgets&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; QtWidgets&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;URL&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;https://python.org&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;app&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; QtWidgets&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;QApplication&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;view&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; QtWebEngineWidgets&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;QWebEngineView&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;view&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;load&lt;/span&gt;&lt;span&gt;(QtCore&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;QUrl&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;URL&lt;/span&gt;&lt;span&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;view&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;show&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;app&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;exec_&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is what it looks like:&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;python-org.webp&quot;&gt;
    &lt;img src=&quot;python-org.webp&quot; alt=&quot;Python.org&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Python.org&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;wrapping-streamlit&quot;&gt;Wrapping streamlit&lt;/h2&gt;
&lt;p&gt;To start a streamlit server (and closing it!) is a bit more involved. Normally you would run &lt;code&gt;streamlit run my_script.py&lt;/code&gt;, and then pop the url into your webbrowser. But somehow we must wrap this behaviour. This is what I ended up with:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; atexit&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; subprocess&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; as&lt;/span&gt;&lt;span&gt; sp&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; os&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; PySide2&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; QtCore&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; QtWebEngineWidgets&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; QtWidgets&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; kill_server&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;p&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    if&lt;/span&gt;&lt;span&gt; os&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; ==&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;nt&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;        # p.kill is not adequate&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        sp&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;call&lt;/span&gt;&lt;span&gt;([&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;taskkill&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;/F&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;/T&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;/PID&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; str&lt;/span&gt;&lt;span&gt;(p&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;pid)])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    elif&lt;/span&gt;&lt;span&gt; os&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; ==&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;posix&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        p&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;kill&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    else&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        pass&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;if&lt;/span&gt;&lt;span&gt; __name__&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; ==&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;__main__&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    cmd&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; f&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;streamlit hello --server.headless=True&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    p&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; sp&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;Popen&lt;/span&gt;&lt;span&gt;(cmd&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;split&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; stdout&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span&gt;sp&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;DEVNULL&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    atexit&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;register&lt;/span&gt;&lt;span&gt;(kill_server&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; p)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    hostname&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;localhost&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    port&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 8501&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    app&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; QtWidgets&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;QApplication&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    view&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; QtWebEngineWidgets&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;QWebEngineView&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    view&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;load&lt;/span&gt;&lt;span&gt;(QtCore&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;QUrl&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;https://&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;{&lt;/span&gt;&lt;span&gt;hostname&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;{&lt;/span&gt;&lt;span&gt;port&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    view&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;show&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    app&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;exec_&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;In this example I use &lt;code&gt;streamlit hello&lt;/code&gt;. You can exchange this with the path to your script.&lt;/li&gt;
&lt;li&gt;For the streamlit command, we need &lt;code&gt;--server.headless=True&lt;/code&gt;. This will prevent streamlit from trying to open the URL in your default browser.&lt;/li&gt;
&lt;li&gt;I run the streamlit command in subprocess. This is to isolate the event loop. I tried going with threads, but using a subprocess is so much easier.&lt;/li&gt;
&lt;li&gt;Therefore, we must kill the streamlit server when we close the webview. To do so we can use the &lt;a rel=&quot;external&quot; href=&quot;https://docs.python.org/3/library/atexit.html&quot;&gt;&lt;code&gt;atexit&lt;/code&gt;&lt;/a&gt; handler. On Linux we can use &lt;code&gt;p.kill()&lt;/code&gt;, but on Windows we must send the &lt;code&gt;taskkill&lt;/code&gt; command. From experience, &lt;code&gt;p.kill()&lt;/code&gt; is not adequate on Windows.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is the end result:&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;streamlit-app.webp&quot;&gt;
    &lt;img src=&quot;streamlit-app.webp&quot; alt=&quot;Streamlit webview&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Streamlit webview&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;No browser required :-)&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Notes on moving Home Assistant from Raspberry Pi to Docker</title>
        <published>2022-09-18T00:00:00+00:00</published>
        <updated>2022-09-18T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/migrating-homeassistant/"/>
        <id>https://stefsmeets.nl/posts/migrating-homeassistant/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/migrating-homeassistant/">&lt;p&gt;I started out running &lt;a rel=&quot;external&quot; href=&quot;https://www.home-assistant.io/&quot;&gt;Home Assistant&lt;/a&gt; about 3 years ago, playing around with a few light bulbs. Installing it on an SD card was (&lt;a rel=&quot;external&quot; href=&quot;https://www.home-assistant.io/installation/raspberrypi/&quot;&gt;and still is&lt;/a&gt;) the recommended way to go. However, SD cards can&#39;t handle small I/O very well, and tend to crash after a while. This has happened to me twice. Usually not a big deal if you keep your back-ups, but increasingly worrysome as the number of devices and thus my dependence on Home Assistant grows. This is always in the back of my mind.&lt;/p&gt;
&lt;p&gt;Recently I installed a home server to serve as a NAS, media server, DNS, etc using &lt;a rel=&quot;external&quot; href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt; containers. And I figured I would also move my Home Assistant installation to it. This blog post contains some notes on the migration.&lt;/p&gt;
&lt;h2 id=&quot;restoring-from-back-up&quot;&gt;Restoring from back-up&lt;/h2&gt;
&lt;p&gt;I did a full backup of Home Assistant on my old installation and copied it over.&lt;/p&gt;
&lt;p&gt;Unfortunately, the Docker install of Home Assistant does not support restoring from a back-up.&lt;/p&gt;
&lt;p&gt;So in the end, I extracted the backup. I extracted &lt;code&gt;homeassistant.tar.gz&lt;/code&gt;. Inside is a directory &lt;code&gt;data&lt;/code&gt;, which I renamed to &lt;code&gt;config&lt;/code&gt; and moved to &lt;code&gt;$DOCKERDIR/homeassistant/&lt;/code&gt; (see below). Anything else in the archive is not used. It seems that I simply could have copied over the &lt;code&gt;config&lt;/code&gt; directory directly from my old install.&lt;/p&gt;
&lt;h2 id=&quot;docker-compose&quot;&gt;Docker compose&lt;/h2&gt;
&lt;p&gt;I use &lt;code&gt;docker compose&lt;/code&gt; to load my Docker containers. This is the docker compose snippet I added to my &lt;code&gt;docker-compose.yml&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;2.4&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;services&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  homeassistant&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    container_name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; homeassistant&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    image&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;ghcr.io/home-assistant/home-assistant:stable&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    volumes&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; $DOCKERDIR/homeassistant/config:/config&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; /etc/localtime:/etc/localtime:ro&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    devices&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; /dev/ttyACM0:/dev/ttyACM0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; /dev/ttyUSB0:/dev/ttyUSB0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    restart&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; always&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    privileged&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; true&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    ports&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; 8123:8123&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The snippet is slightly modified from the &lt;a rel=&quot;external&quot; href=&quot;https://www.home-assistant.io/installation/alternative/#docker-compose&quot;&gt;Home Assistant documentation&lt;/a&gt;. I did not want to use &lt;code&gt;network_mode: host&lt;/code&gt;, so I had to forward the &lt;code&gt;8123&lt;/code&gt; port.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$DOCKERDIR&lt;/code&gt; is an environment variable defined in a &lt;code&gt;.env&lt;/code&gt; file in the same directory. It points to a path where my Docker config files are stored.&lt;/p&gt;
&lt;h2 id=&quot;uninstall-system-integrations&quot;&gt;Uninstall system integrations&lt;/h2&gt;
&lt;p&gt;There are some integrations that are included for interfacing with the Home Assistant Operating System. With a Docker install these are no longer needed. Starting the container would greet me with a couple of errors of the likes: &lt;code&gt;The following integrations could not be set up...&lt;/code&gt; for &lt;code&gt;hassio&lt;/code&gt; and &lt;code&gt;raspberrypi&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The Raspberry Pi integration could be removed from the integrations page.&lt;/p&gt;
&lt;p&gt;Then I removed the &lt;code&gt;hassio&lt;/code&gt; integration by hand (it cannot be removed via the GUI), by opening &lt;code&gt;config/.storage/core.config_entries&lt;/code&gt;.
Look for the entry that looks below this and remove it&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        &amp;quot;entry_id&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;8809d872e74ca46913179fb6448b3621&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        &amp;quot;version&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        &amp;quot;domain&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;hassio&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        &amp;quot;title&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;Supervisor&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        &amp;quot;data&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span&gt; {}&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        &amp;quot;options&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span&gt; {}&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        &amp;quot;pref_disable_new_entities&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; false&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        &amp;quot;pref_disable_polling&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; false&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        &amp;quot;source&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;system&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        &amp;quot;unique_id&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;hassio&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        &amp;quot;disabled_by&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; null&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      },&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;usb-permissions-in-docker-rootless&quot;&gt;USB permissions in Docker rootless&lt;/h2&gt;
&lt;p&gt;I run Docker in &lt;a rel=&quot;external&quot; href=&quot;https://docs.docker.com/engine/security/rootless/&quot;&gt;rootless mode&lt;/a&gt;. This gave some issues with accessing my Zigbee stick and other usb devices in Home Assistant. As a work-around, I had to update the permissions.&lt;/p&gt;
&lt;p&gt;Get the IDs of the USB devices using: &lt;code&gt;ls -l /dev/serial/by-id&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Set the permissions:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; chmod&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 666&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; /dev/ttyACM0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; chmod&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 666&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; /dev/ttyUSB0&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This has to be done on every reboot. This link provides a method to set the &lt;a rel=&quot;external&quot; href=&quot;https://www.xmodulo.com/change-usb-device-permission-linux.html&quot;&gt;permissions automatically&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;ha-sidebar-shortcuts&quot;&gt;HA sidebar shortcuts&lt;/h2&gt;
&lt;p&gt;You can add shortcuts to he Home Assistant side bar to link to other services on the server, for example Jellyfin.&lt;/p&gt;
&lt;p&gt;To do so, add this snippet to your &lt;code&gt;configuration.yaml&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;panel_iframe&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  portainer&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;    title = &amp;quot;Jellyfin&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    url&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;https://192.168.1.123:8096&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    icon&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; mdi:jellyfish&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    require_admin&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; false&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;migrating-influxdb&quot;&gt;Migrating InfluxDB&lt;/h2&gt;
&lt;p&gt;I run InfluxDB on Home Assistant for long term data storage. The database also had to be moved. Make sure that you use InfluxDB version 1.8. To migrate the database I did the following.&lt;/p&gt;
&lt;p&gt;On Home Assistant on the Raspberry Pi, I opend an SSH shell and entered the influxdb container:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;docker exec -it addon_a0d7b954_influxdb /bin/bash&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Then I backed up the database:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;influxd backup -portable -database homeassistant /data/homeassistant.db&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;From the home assistant backup, I extracted &lt;code&gt;a0d7b954_influxdb.tar.gz&lt;/code&gt; and moved &lt;code&gt;homeassistant.db&lt;/code&gt; to my new server.&lt;/p&gt;
&lt;p&gt;I entered my influxdb container:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;docker exec -it influxdb /bin/bash&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;And imported restored the database:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;influxd restore -portable /data/homeassistant.db&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Afterwards I had to update the host/port to point to the new database location.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;influxdb&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  host&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  port&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; ...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I cannot say it was a painless exercise, but fairly happy with the result and learned a lot in the process. My new installation runs noticably faster, and I sleep better at night not having to worry about SD crashes 😅&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>The eWaterCycle platform for Open and FAIR Hydrological collaboration</title>
        <published>2022-07-14T00:00:00+00:00</published>
        <updated>2022-07-14T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/ewatercycle/"/>
        <id>https://stefsmeets.nl/articles/ewatercycle/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/ewatercycle/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Measure your water usage in Home Assistant</title>
        <published>2022-06-20T00:00:00+00:00</published>
        <updated>2022-06-20T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/watermeter/"/>
        <id>https://stefsmeets.nl/posts/watermeter/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/watermeter/">&lt;p&gt;In the Netherlands we have smart utility meters for gas and electricity meters. They have a digital port that sends an update every 10 seconds. I measure our usage through the &lt;a rel=&quot;external&quot; href=&quot;https://www.home-assistant.io/integrations/dsmr/&quot;&gt;DSMR integration&lt;/a&gt; in &lt;a rel=&quot;external&quot; href=&quot;https://www.home-assistant.io&quot;&gt;Home Assistant&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Most watermeters, however, are still completely anologue. We have a &lt;a rel=&quot;external&quot; href=&quot;https://sensus.com/emea/products/620-water-meter/&quot;&gt;Sensus 620&lt;/a&gt;, and I was interested in reading it out to get some insight in our water usage. This blog details the steps of how I automated it using Home Assistant.&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;sensus620.webp&quot;&gt;
    &lt;img src=&quot;sensus620.webp&quot; alt=&quot;The Sensus 620 has a spinning disk that rotates for every liter.&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;The Sensus 620 has a spinning disk that rotates for every liter.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The sensor I&#39;m using is an &lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Bipolar_junction_transistor#Function=&quot;&gt;inductive proximity sensor (NPN)&lt;/a&gt;. The idea is that every cycle of the metal plate the sensor is activated and sends out a pulse. The specific model I&#39;m using is the &lt;em&gt;LJ18A3-8-Z/BX - 5V&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I used this together with an old &lt;a rel=&quot;external&quot; href=&quot;https://www.theengineeringprojects.com/2018/10/introduction-to-nodemcu-v3.html&quot;&gt;nodeMCU v3&lt;/a&gt; (based on esp8266 board) I still had lying around. See the connection scheme below.&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;scheme.webp&quot;&gt;
    &lt;img src=&quot;scheme.webp&quot; alt=&quot;Connection scheme&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Connection scheme&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I connected it all together using a breadboard and some jumper wires.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The brown wire is connected to VU, which passes through th epower from the usb connection. There is no explicit 5V output on this board, but since the USB input runs on 5V, this works as well.&lt;/li&gt;
&lt;li&gt;The black wire receives the pulses and is connected to any of the digital ports (I used D2).&lt;/li&gt;
&lt;li&gt;The blue wire is connected to the ground port G.&lt;/li&gt;
&lt;li&gt;There is a 10k Ohm resistor between the brown and black wire that acts as a &lt;a rel=&quot;external&quot; href=&quot;https://en.m.wikipedia.org/wiki/Pull-up_resistor&quot;&gt;pull-up&lt;/a&gt;, which helps with ghost pulses.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;installing-esphome&quot;&gt;Installing esphome&lt;/h2&gt;
&lt;p&gt;I setup the using &lt;a rel=&quot;external&quot; href=&quot;https://esphome.io/&quot;&gt;ESPhome&lt;/a&gt;. ESPHome is a system to control esp8266 and esp32 boards using simple configuration files. Once you flash the boards, you can control and update them remotely through different home automation systems.&lt;/p&gt;
&lt;p&gt;I first tried to set it up using the ESPHome integration in Home Assistant, but I ran into a bunch of weird issues. So I used the command-line version (which worked the first try!).&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;conda&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; create&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -n&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; esphome python=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;3.10&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;pip&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; install esphome&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For nodeMCU v3 use &lt;code&gt;board: nodemcuv2&lt;/code&gt; (that&#39;s not a typo, apparently for v2+ all uses the same interface).&lt;/p&gt;
&lt;p&gt;Below is the config I used.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# watermeter.yaml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;esphome&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; watermeter&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  comment&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;Measure water cycles&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  platform&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; ESP8266&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  esp8266_restore_from_flash&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; true&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  board&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; nodemcuv2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;wifi&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  ssid&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;mywifi&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  password&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;badpassword&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  fast_connect&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; true&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;logger&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;api&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;time&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; platform&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; sntp&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    id&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; my_time&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;sensor&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; platform&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; pulse_meter&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    pin&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; D2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;Water usage&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    id&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; water_usage_per_min&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    icon&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;mdi:water&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    unit_of_measurement&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;L/min&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    accuracy_decimals&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    total&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      id&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; water_usage_total&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;Watermeter Total&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      icon&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;mdi:cube-outline&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      state_class&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;total_increasing&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      device_class&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; water&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      unit_of_measurement&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;L&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      accuracy_decimals&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 0&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This sets up the D2 pin as a &lt;a rel=&quot;external&quot; href=&quot;https://esphome.io/components/sensor/pulse_counter.html&quot;&gt;pulse counter&lt;/a&gt;, that will be reported reported to Home assistant as &lt;code&gt;water_usage_per_min&lt;/code&gt; (by default it reports the number of pulses per minute). It also keeps track of the total number of pulses under &lt;code&gt;water_usage_total&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Save the config and compile it using:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;esphome&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; compile watermeter.yaml&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The build file is in &lt;code&gt;.esphome/build/watermeter/.pioenvs/watermeter/firmware.bin&lt;/code&gt;. I uploaded the binary using &lt;code&gt;esphome-flasher&lt;/code&gt; from &lt;a rel=&quot;external&quot; href=&quot;https://github.com/esphome/esphome-flasher&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can test the sensor by holding a piece of metal near the blue part. The red LED will light up.&lt;/p&gt;
&lt;p&gt;I built a little encasing using lego. To hold the sensor in place, I drilled out a 17 mm hole from a piece of multiplex, and two smaller holes to fit the holding pins on the sensor.&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;meterkast.webp&quot;&gt;
    &lt;img src=&quot;meterkast.webp&quot; alt=&quot;This is what it looks like in my utility closet.&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;This is what it looks like in my utility closet.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Make sure to fix the IP of the water sensor, so it can be added to Home Assistant using the ESPHome integration. Afterwards, the setup was straightforward. The sensors were reported immediately. I added a &lt;a rel=&quot;external&quot; href=&quot;https://my.home-assistant.io/redirect/helpers/&quot;&gt;utility meter helper&lt;/a&gt; that cycles every day to keep track of our daily use (&lt;code&gt;water_per_day&lt;/code&gt;). And I set up a card in our dashboard.&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;graphs.webp&quot;&gt;
    &lt;img src=&quot;graphs.webp&quot; alt=&quot;Graphs in Home Assistant.&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Graphs in Home Assistant.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;This is the code I used for the graphs:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; vertical-stack&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;cards&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; type&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; custom:mushroom-title-card&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;    title = &amp;quot;Watermeter&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; type&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; horizontal-stack&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    cards&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; type&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; custom:mini-graph-card&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        entities&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;          -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; entity&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; sensor.water_per_day&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; Vandaag&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        hours_to_show&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 168&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        aggregate_func&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; max&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        group_by&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; date&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        show&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;          graph&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; bar&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        hour24&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; true&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; type&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; custom:mini-graph-card&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        entities&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;          -&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; entity&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; sensor.water_usage_per_min&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        name&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; Nu&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        hours_to_show&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 24&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;        hour24&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; true&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That&#39;s it! I already learned that we use between 70 and 100 L for our showers, and 400 L to water our garden!&lt;/p&gt;
&lt;h2 id=&quot;update-for-home-assistant-2022-11&quot;&gt;Update for Home Assistant 2022.11&lt;/h2&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https://www.home-assistant.io/blog/2022/11/02/release-202211/&quot;&gt;Home Assistant Version 2022.11&lt;/a&gt; adds support for water meters in the energy dashboard.&lt;/p&gt;
&lt;p&gt;To make this work, you will need to add &lt;code&gt;device_class: water&lt;/code&gt;  to the sensor. I have updated the example above.&lt;/p&gt;
&lt;p&gt;If you don&#39;t want to reflash your esphome, you can also customize your sensor:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;homeassistant&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;  customize&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    sensor.water_usage_total&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;      device_class&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; water&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Refresh your confg, and it should show up under the energy dashboard. 💦&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Updating to LineageOS 19.1 on a Samsung Galaxy S10, S10+ or S10e</title>
        <published>2022-05-15T00:00:00+00:00</published>
        <updated>2022-05-15T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/update-to-lineageos-191/"/>
        <id>https://stefsmeets.nl/posts/update-to-lineageos-191/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/update-to-lineageos-191/">&lt;p&gt;Last week I got the prompt to update my phone (S10e) to LineageOS 19.1. Usually LineageOS can be update from within the OS, but version upgrades &lt;a rel=&quot;external&quot; href=&quot;https://wiki.lineageos.org/devices/beyond0lte/upgrade&quot;&gt;require a bit more work&lt;/a&gt;. It was obvious what I had to do, but the process was not entirely clear to me. So I logged my steps here. The steps are equivalent for the different S10 versions.&lt;/p&gt;
&lt;p&gt;I use Ubuntu when I flash my phone, because I typically run into some driver issue of some sort on Windows.&lt;/p&gt;
&lt;p&gt;Most of the information here I gathered from these links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https://forum.xda-developers.com/t/rom-official-lineageos-19-for-galaxy-s10e-s10-s10-s10-5g-exynos.4442685/&quot;&gt;XDA - LineageOS 19 for Galaxy S10e/S10/S10+/S10 5G Exynos&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https://wiki.lineageos.org/devices/beyond0lte/upgrade&quot;&gt;LineageOS wiki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https://www.reddit.com/r/LineageOS/comments/ui74oe/samsung_s10e_update_to_lineageos_191_from_181_any/&quot;&gt;Reddit #1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https://www.reddit.com/r/LineageOS/comments/unylwj/s10e_beyond0lte_how_to_update_recovery_to_be_able/&quot;&gt;Reddit #2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;updating-the-firmware&quot;&gt;Updating the firmware&lt;/h2&gt;
&lt;p&gt;For this step you will need &lt;a rel=&quot;external&quot; href=&quot;https://wiki.lineageos.org/devices/beyond0lte/install#preparing-for-installation&quot;&gt;heimdall&lt;/a&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download and unzip the firmware compatible with Android 12 for your model (&lt;a rel=&quot;external&quot; href=&quot;https://lineage.linux4.de/fw_update/beyond0lte.html&quot;&gt;S10e&lt;/a&gt;, &lt;a rel=&quot;external&quot; href=&quot;https://lineage.linux4.de/fw_update/beyond1lte.html&quot;&gt;S10&lt;/a&gt;, &lt;a rel=&quot;external&quot; href=&quot;https://lineage.linux4.de/fw_update/beyond2lte.html&quot;&gt;S10+&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Put your phone in download mode:
&lt;ul&gt;
&lt;li&gt;Turn off the device&lt;/li&gt;
&lt;li&gt;Hold Volume Down + the Bixby button and plugin the usb cable connecting it to your pc&lt;/li&gt;
&lt;li&gt;In the menu, press &#39;Continue&#39;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Once in &lt;em&gt;download mode&lt;/em&gt;, flash the firmware:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;heimdall&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; flash&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; --CM&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; cm.bin&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; --DQMDBG&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; dqmdbg.img&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; --KEYSTORAGE&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; keystorage.bin&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; --RADIO&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; modem.bin&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; --CP_DEBUG&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; modem_debug.bin&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; --PARAM&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; param.bin&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; --BOOTLOADER&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; sboot.bin&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; --UH&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; uh.bin&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; --UP_PARAM&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; up_param.bin&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;(The phone will reboot normally afterwards)&lt;/p&gt;
&lt;h2 id=&quot;updating-to-lineageos-19-1&quot;&gt;Updating to LineageOS 19.1&lt;/h2&gt;
&lt;p&gt;This step needs &lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Android_Debug_Bridge&quot;&gt;&lt;em&gt;adb&lt;/em&gt;&lt;/a&gt;. I installed it using apt:
&lt;code&gt;sudo apt install adb&lt;/code&gt;&lt;/p&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;Download the latest build of LineageOS version 19.1 (&lt;a rel=&quot;external&quot; href=&quot;https://download.lineageos.org/beyond0lte&quot;&gt;S10e&lt;/a&gt;, &lt;a rel=&quot;external&quot; href=&quot;https://download.lineageos.org/beyond1lte&quot;&gt;S10&lt;/a&gt;, &lt;a rel=&quot;external&quot; href=&quot;https://download.lineageos.org/beyond2lte&quot;&gt;S10+&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Download gapps for Lineage 19.1 (Android 12; &lt;a rel=&quot;external&quot; href=&quot;https://wiki.lineageos.org/gapps&quot;&gt;MindTheGapps&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Put the phone in debugging mode
&lt;ul&gt;
&lt;li&gt;enable &lt;em&gt;USB debugging&lt;/em&gt; entry under &lt;em&gt;Debugging&lt;/em&gt; in the developer tools&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;I ran into an error running &lt;code&gt;adb&lt;/code&gt;: &lt;em&gt;no permissions (user in plugdev group; are your udev rules wrong?&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;To solve, I put the phone to &lt;em&gt;File transfer mode&lt;/em&gt; as recommended &lt;a rel=&quot;external&quot; href=&quot;https://stackoverflow.com/a/53887369&quot;&gt;here&lt;/a&gt;. This prompted the &lt;em&gt;Allow USB debugging?&lt;/em&gt; prompt to add my computer&#39;s RSA fingerprint to the phone.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Put the phone in sideload mode:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;adb reboot sideload&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Flash &lt;em&gt;LineageOS 19.1&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;adb sideload lineage-19.1-20220512-nightly-beyond0lte-signed.zip&lt;/code&gt; (replace with your version)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Flash &lt;em&gt;MindTheGapps&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;adb sideload MindTheGapps-12.1.0-arm64-20220416_174313.zip&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;11&quot;&gt;
&lt;li&gt;Reboot phone&lt;/li&gt;
&lt;li&gt;🥳&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Cool! So what&#39;s new? The most obvious to me is the updated UI with enormous clock on my home screen, giant volume and brightness sliders, and the enormous buttons in the pull-down menu.&lt;/p&gt;
&lt;p&gt;And Android Auto is working again! 🏎️&lt;/p&gt;
&lt;p&gt;Other than that, &lt;a rel=&quot;external&quot; href=&quot;https://www.androidauthority.com/android-12-features-1195735/&quot;&gt;I haven&#39;t noticed much difference&lt;/a&gt;.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Forget about Jupyter Notebooks — showcase your research using Dashboards</title>
        <published>2022-05-06T00:00:00+00:00</published>
        <updated>2022-05-06T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/forget-jupyter-notebooks/"/>
        <id>https://stefsmeets.nl/posts/forget-jupyter-notebooks/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/forget-jupyter-notebooks/">&lt;p&gt;As a Python lover, I use &lt;a rel=&quot;external&quot; href=&quot;https://jupyter.org/&quot;&gt;Jupyter Notebooks&lt;/a&gt; for everything. Notebooks mix markdown, code, and inline plots, which makes them a fantastic tool for exploratory data analysis. I use them to develop and share code, prototype new ideas, explore libraries, play around with data, and create plots and visualizations. Notebooks can be rendered as static html and pdfs, so they are also excellent to write reports, documentation and tutorials… when the intent is to share the code alongside the data.&lt;/p&gt;
&lt;p&gt;As a researcher, however, I find that the code sometimes gets in the way of the data I want to show. So when the intent is to share the data with a non-technical audience, what options do we have? Are there better alternatives?&lt;/p&gt;
&lt;h2 id=&quot;the-problem-with-notebooks&quot;&gt;The problem with notebooks&lt;/h2&gt;
&lt;p&gt;Before we continue, let’s take a step back and look at a few of the problems with Jupyter Notebooks.&lt;/p&gt;
&lt;p&gt;There is no denying that Jupyter notebooks have become very popular over the last years to present research results. This means that the issues with Jupyter Notebooks are &lt;a rel=&quot;external&quot; href=&quot;https://towardsdatascience.com/5-reasons-why-jupyter-notebooks-suck-4dc201e27086&quot;&gt;well&lt;/a&gt; &lt;a rel=&quot;external&quot; href=&quot;https://www.youtube.com/watch?v=7jiPeIFXb6U&quot;&gt;known&lt;/a&gt;. My biggest gripes are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The non-linear execution model. Notebooks often contain hidden state that is difficult to reason about. This can make them difficult to use for beginners.&lt;/li&gt;
&lt;li&gt;Notebooks are difficult to share with a non-technical audience. They would need to know how to set up Python, install libraries, manage environments, and modify the code.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Notebooks can be hosted somewhere like &lt;a rel=&quot;external&quot; href=&quot;https://mybinder.org/&quot;&gt;binder&lt;/a&gt; (solving 2.), making the code immediately reproducible. Reproducible, only &lt;em&gt;if&lt;/em&gt; one understands the code and how to run the notebook (including its quirks, see 1.). Here, the inline code can get in the way of itself. I have seen many notebooks spelling out what each variable does and how to run the code at the top. You would need some understanding of how the code works to use the notebooks.&lt;/p&gt;
&lt;h2 id=&quot;dashboards&quot;&gt;Dashboards&lt;/h2&gt;
&lt;p&gt;That is where dashboards come into play.&lt;/p&gt;
&lt;p&gt;Dashboards are a relatively new concept coming from the data science world making use of the modern web. In essence, dashboards are simple web-apps used to quickly glance at some data. Like a mini graphical interface for your data.&lt;/p&gt;
&lt;p&gt;If you are using Python, these are the ones you should be looking at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https://plotly.com/dash/&quot;&gt;Dash&lt;/a&gt; (2017, 883k downloads/month)&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https://panel.holoviz.org/&quot;&gt;Panel&lt;/a&gt; (2018, 387k downloads/month)&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https://streamlit.io/&quot;&gt;Streamlit&lt;/a&gt; (2019, 930k downloads/month)&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https://voila.readthedocs.io/en/stable/&quot;&gt;voila&lt;/a&gt; (2019, 56k downloads/month)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All are excellent choices. For a full comparison, check out &lt;a rel=&quot;external&quot; href=&quot;https://medium.datadriveninvestor.com/streamlit-vs-dash-vs-voil%C3%A0-vs-panel-battle-of-the-python-dashboarding-giants-177c40b9ea57&quot;&gt;this blog post&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;streamlit&quot;&gt;Streamlit&lt;/h2&gt;
&lt;p&gt;Out of these four, &lt;a rel=&quot;external&quot; href=&quot;https://streamlit.io/&quot;&gt;Streamlit&lt;/a&gt; stood out to me the most for its ease of use. For one of my projects, I have been playing with it to develop a simple data processing GUI. These are my initial impressions.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;After having used it for a week, I found it extremely straightforward to get started with.&lt;/li&gt;
&lt;li&gt;The linear execution model makes it easy to reason about the code (more on this &lt;a rel=&quot;external&quot; href=&quot;https://blog.esciencecenter.nl/forget-about-jupyter-notebooks-showcase-your-research-using-dashboards-5d13451ba374#How-does-this-work&quot;&gt;later&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;There is no need to know any web development, as one of the goals of the library is to look good out-of-the box (spoiler alert: it does).&lt;/li&gt;
&lt;li&gt;The api is well-designed, easy-to-manage, and very Pythonic. You could get to grips with the entire API in a day. Some would say the API is limited, but in my opinion it has a very clear scope which fits my brain. It also helps that the &lt;a rel=&quot;external&quot; href=&quot;https://docs.streamlit.io/&quot;&gt;documentation&lt;/a&gt; is well-structured, with clear explanations and &lt;a rel=&quot;external&quot; href=&quot;https://streamlit.io/gallery&quot;&gt;examples&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The streamlit developers claim its the fastest way to build data apps in Python. This sounds like a salespitch, but it might be true. You can turn any Python script into an interactive dashboard in minutes.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;from-a-normal-plot&quot;&gt;From a normal plot…&lt;/h2&gt;
&lt;p&gt;Let’s have a look at an example. As a researcher, I had plenty of Python scripts or notebooks lying around which just did this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Load or generate some data&lt;/li&gt;
&lt;li&gt;Apply some operations to the data&lt;/li&gt;
&lt;li&gt;Make some plots&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I would endlessly tune the the parameters and re-run the script to get the right plot. No problem for me. But, when it came to sharing the scripts with my not-so-software-savvy colleagues, this meant taking on a support role. Think about setting up Python, managing environments, fixing bugs, feature requests, etc…&lt;/p&gt;
&lt;p&gt;Sounds familiar?&lt;/p&gt;
&lt;p&gt;The snippet below generates some data (a normal distribution), fits it, and creates a &lt;a rel=&quot;external&quot; href=&quot;https://matplotlib.org/&quot;&gt;matplotlib&lt;/a&gt; plot out of it. It takes three parameters, &lt;code&gt;mu_in&lt;/code&gt;, &lt;code&gt;std_in&lt;/code&gt;, and &lt;code&gt;size&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; numpy&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; as&lt;/span&gt;&lt;span&gt; np&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; scipy&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;stats&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; norm&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; matplotlib&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;pyplot&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; as&lt;/span&gt;&lt;span&gt; plt&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;mu_in&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 5&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;std_in&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 5.0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;size&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 100&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; norm_dist&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;mu&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; std&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; size&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;100&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;    &amp;quot;&amp;quot;&amp;quot;Generate normal distribution.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    return&lt;/span&gt;&lt;span&gt; norm&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;rvs&lt;/span&gt;&lt;span&gt;(mu&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; std&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; size&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span&gt;size)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;data&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; norm_dist&lt;/span&gt;&lt;span&gt;(mu_in&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; std_in&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; size&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span&gt;size)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# Fit the normal distribution&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;mu&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; std&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; norm&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;fit&lt;/span&gt;&lt;span&gt;(data)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# Make some plots&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;x&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; np&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;linspace&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;40&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 40&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 100&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;y&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; norm&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;pdf&lt;/span&gt;&lt;span&gt;(x&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; mu&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; std)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;title&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;f&amp;quot;&lt;/span&gt;&lt;span&gt;Fit results&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span&gt; {mu=&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:.&lt;/span&gt;&lt;span&gt;2f}&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt;  {std=&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:.&lt;/span&gt;&lt;span&gt;2f}&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;fig&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; ax&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; plt&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;subplots&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;ax&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;hist&lt;/span&gt;&lt;span&gt;(data&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; bins&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;50&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; density&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;True&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;ax&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;plot&lt;/span&gt;&lt;span&gt;(x&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; y&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;k&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; linewidth&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;2&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;ax&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;set_title&lt;/span&gt;&lt;span&gt;(title)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;plt&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;show&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;My cool python script 😎&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;plot.webp&quot;&gt;
    &lt;img src=&quot;plot.webp&quot; alt=&quot;A normal plot&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;A normal plot&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;to-a-fancy-dashboard&quot;&gt;…to a fancy dashboard&lt;/h2&gt;
&lt;p&gt;Let’s turn this into an interactive dashboard in four simple steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;import streamlist as st&lt;/code&gt; 😅&lt;/li&gt;
&lt;li&gt;Add a title using &lt;code&gt;[st.title](https://docs.streamlit.io/library/api-reference/text)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Turn the input parameters into interactive sliders using &lt;code&gt;[st.slider](https://docs.streamlit.io/library/api-reference/widgets)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Tell streamlit about our plot using &lt;code&gt;[st.pyplot](https://docs.streamlit.io/library/api-reference/charts)&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Note that we do not have to change any of the data generation, fitting, or plotting code!&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; numpy&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; as&lt;/span&gt;&lt;span&gt; np&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; scipy&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;stats&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; norm&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; matplotlib&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;pyplot&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; as&lt;/span&gt;&lt;span&gt; plt&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; streamlit&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; as&lt;/span&gt;&lt;span&gt; st&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;st&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;title&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Normal distribution&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;mu_in&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; st&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;slider&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Mean&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; value&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; min_value&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=-&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; max_value&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;10&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;std_in&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; st&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;slider&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Standard deviation&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; value&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;5.0&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; min_value&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;0.0&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; max_value&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;10.0&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;size&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; st&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;slider&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Number of samples&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; value&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; max_value&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;500&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; norm_dist&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;mu&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; std&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; size&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;100&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;    &amp;quot;&amp;quot;&amp;quot;Generate normal distribution.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    return&lt;/span&gt;&lt;span&gt; norm&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;rvs&lt;/span&gt;&lt;span&gt;(mu&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; std&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; size&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span&gt;size)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;data&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; norm_dist&lt;/span&gt;&lt;span&gt;(mu_in&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; std_in&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; size&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span&gt;size)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# Fit the normal distribution&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;mu&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; std&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; norm&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;fit&lt;/span&gt;&lt;span&gt;(data)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# Make some plots&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;st&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;pyplot&lt;/span&gt;&lt;span&gt;(fig)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now as a dashboard 🐱‍💻&lt;/p&gt;
&lt;p&gt;Then run the dashboard using:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;streamlit&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; run my_dashboard.py&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will start a server, and the dashboard can be accessed through the browser (much like a Jupyter Notebook).&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;dashboard.webp&quot;&gt;
    &lt;img src=&quot;dashboard.webp&quot; alt=&quot;A fancy dashboard&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;A fancy dashboard&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;how-does-this-work&quot;&gt;How does this work?&lt;/h2&gt;
&lt;p&gt;The way Streamlit works is quite interesting. Everytime a slider is moved, a box is checked, or a button is pressed, Streamlit triggers a re-run of the script. The input values are updated. The javascript back-end keeps track of the values.&lt;/p&gt;
&lt;p&gt;This means that the code itself executes linearly. In my view, this simplicity is what sets it apart. There is no need for any callbacks or complex flow controls. Your python scripts runs from top-to-bottom. This makes it easy to reason about the code. And with minimal modifications to the python code, any script can be turned into a dashboard.&lt;/p&gt;
&lt;p&gt;Are there any downsides? Yes. Because streamlit re-runs the entire script on every update, it can feel a bit slow. Especially when updating a large number of plots. It can also get stuck on long-running functions. For performance optimizations, streamlit has some options to &lt;a rel=&quot;external&quot; href=&quot;https://docs.streamlit.io/library/api-reference/performance&quot;&gt;cache the result&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;plotting-libraries&quot;&gt;Plotting libraries&lt;/h2&gt;
&lt;p&gt;The example above uses &lt;a rel=&quot;external&quot; href=&quot;https://matplotlib.org/&quot;&gt;matplotlib&lt;/a&gt; for the plots. Matplotlib has been the go-to plotting library for Python for many for a long time. It has been around for nearly two decades, and it is tighly integrated in the scientific python stack.&lt;/p&gt;
&lt;p&gt;If you are familiar with matplotlib, you will know that it is great for making making publication quality plots. You will also know that making interactive plots can be a hassle.&lt;/p&gt;
&lt;p&gt;Streamlit supports these libraries:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https://matplotlib.org/&quot;&gt;matplotlib&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https://altair-viz.github.io/&quot;&gt;altair&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https://bokeh.org/&quot;&gt;bokeh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https://plotly.com/python/&quot;&gt;plotly&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https://seaborn.pydata.org/&quot;&gt;seaborn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https://deckgl.readthedocs.io/en/latest/layer.html&quot;&gt;PyDeck&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https://github.com/xflr6/graphviz&quot;&gt;GraphViz&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Modern plotting libraries like &lt;a rel=&quot;external&quot; href=&quot;https://plotly.com/python/&quot;&gt;plotly&lt;/a&gt;, &lt;a rel=&quot;external&quot; href=&quot;https://bokeh.org/&quot;&gt;bokeh&lt;/a&gt;, and &lt;a rel=&quot;external&quot; href=&quot;https://altair-viz.github.io/&quot;&gt;altair&lt;/a&gt; render directly to javascript. This means they are built for the web, and interactivity is built-in. This makes them better suited for web-apps. If you are going to make a dashboard, I recommend checking out one of these alternatives.&lt;/p&gt;
&lt;h2 id=&quot;sharing-your-dashboard&quot;&gt;Sharing your dashboard&lt;/h2&gt;
&lt;p&gt;Alright, so now that we have made a fancy looking dashboard, so that anyone can play with the data. How do we make it available?&lt;/p&gt;
&lt;p&gt;Streamlit uses a host/server model, which means you can run it on your own server.&lt;/p&gt;
&lt;p&gt;Easier is to use the &lt;a rel=&quot;external&quot; href=&quot;https://streamlit.io/cloud&quot;&gt;streamlit cloud&lt;/a&gt; to host your dashboard (it’s free for students and open-source projects). I found this also quite straightforward to set up. All I had to do was to create a &lt;a rel=&quot;external&quot; href=&quot;https://github.com/stefsmeets/dashboard_blog&quot;&gt;repository on github&lt;/a&gt; with the code and a requirements file.&lt;/p&gt;
&lt;p&gt;Then I logged into &lt;a rel=&quot;external&quot; href=&quot;https://share.streamlit.io/&quot;&gt;streamlit cloud&lt;/a&gt; using the Github SSO, and started a new app pointing at my repo and code.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https://share.streamlit.io/stefsmeets/dashboard_blog/main&quot;&gt;Click here&lt;/a&gt; for the result! 🥳&lt;/p&gt;
&lt;h2 id=&quot;final-remarks&quot;&gt;Final remarks&lt;/h2&gt;
&lt;p&gt;In this blog post, I introduced streamlit and showed how it can be used to turn a python script into a dashboard, and host it online. An excellent way to showcase your research to a non-technical audience, if you ask me. The linear execution model makes it straightforward to adapt existing scripts. The code does not get in the way, and the result look awesome.&lt;/p&gt;
&lt;p&gt;So next time you want to present some data in a notebook, consider using a dashboard instead.&lt;/p&gt;
&lt;p&gt;All the code in this blog post is available from &lt;a rel=&quot;external&quot; href=&quot;https://github.com/stefsmeets/dashboard_blog&quot;&gt;Github&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;PS. Don&#39;t actually forget about notebooks, they are awesome!&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Resetting an unavailable Philips HUE bulb in Home Assistant</title>
        <published>2022-04-10T00:00:00+00:00</published>
        <updated>2022-04-10T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/reset-hue-bulbs/"/>
        <id>https://stefsmeets.nl/posts/reset-hue-bulbs/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/reset-hue-bulbs/">&lt;p&gt;After the most recent Home assistant update, some of my philips Hue lights became unresponsive. OK, no big deal, I have had this before, I will just reset them. Turns out this is not as easy as just flipping the switch a couple of times to put the bulb into pairing mode.&lt;/p&gt;
&lt;p&gt;The manual is not very helpful either, and search the web sent me to install the HUE or Alexa apps (both were useless for this).&lt;/p&gt;
&lt;p&gt;In the end I came accross a post somewhere about using the HUE remote. Luckily I have a couple around.&lt;/p&gt;
&lt;p&gt;To reset a Philips HUE bulb, hold the on and off buttons on the remote for 10 seconds. The light will flash three times and the bulb will reset itself.&lt;/p&gt;
&lt;figure&gt;
  &lt;a href=&quot;remote.webp&quot;&gt;
    &lt;img src=&quot;remote.webp&quot; alt=&quot;I&#39;m sure I went through this before... in part this blog post serves as a reminder for myself.&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;I&#39;m sure I went through this before... in part this blog post serves as a reminder for myself.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;This was not the end of it.&lt;/p&gt;
&lt;p&gt;I managed to get one bulb to pair, using the &lt;em&gt;find devices&lt;/em&gt; in the ZHA menu. But another only seemed to not complete the pairing process (stuck at &#39;starting interview&#39;). It did not fully initialize, but it did register a device in Home Assistant. This blocked me from doing anything else.&lt;/p&gt;
&lt;p&gt;In the end, I found that I first had to completely remove the device. In Developer tools, I used the &lt;code&gt;zha.remove&lt;/code&gt; service and put the IEEE address of the bulb (you can find this in the device menu).&lt;/p&gt;
&lt;p&gt;You can do it in the GUI, but the &lt;em&gt;yaml&lt;/em&gt; looks like this:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;service&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; zha.remove&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;    ieee&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; 00:12:34:56:78:90:5a:b6&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After this, the bulb paired on the second attempt. 2 hours well spent!&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>An interview with myself on my favourite meshing library </title>
        <published>2022-03-05T00:00:00+00:00</published>
        <updated>2022-03-05T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/triangle/"/>
        <id>https://stefsmeets.nl/posts/triangle/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/triangle/">&lt;p&gt;&lt;strong&gt;Q&lt;/strong&gt;: &lt;em&gt;Hi self, for this blog series we are looking to highlight our developer&#39;s favourite libraries.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;S&lt;/strong&gt;: As a software engineer I always get excited by tools that exactly fit the job that we need it for. For one project, I was looking for a triangle &lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Mesh_generation&quot;&gt;mesh generator&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q&lt;/strong&gt;: &lt;em&gt;Wait.. wait... Meshes?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;S&lt;/strong&gt;: Meshes simplify image data and describe complex geometries. A mesh is essentially a collection of vertices and triangles. They are used for computer graphics and physical simulations such as finite element analyses and fluid dynamics.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q&lt;/strong&gt;: &lt;em&gt;Like in computer games?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;S&lt;/strong&gt;: Exactly!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q&lt;/strong&gt;: &lt;em&gt;I have heard CGAL is the go-to library for Meshing.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;S&lt;/strong&gt;: CGAL is an excellent choice. It&#39;s written in C++, and provides easy access to efficient and reliable geometric algorithms. For my project, I was looking for a simple library that runs on all platforms, and can be easily interfaced with Python. Unfortunately, CGAL is a bit heavy-weight, difficult to install on Windows, and the python bindings are limited.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q&lt;/strong&gt;: So what did you end up using?&lt;/p&gt;
&lt;p&gt;After having tried a few more meshing libraries, I came accross &lt;a rel=&quot;external&quot; href=&quot;https://www.cs.cmu.edu/~quake/triangle.html&quot;&gt;Triangle&lt;/a&gt;. Triangle is an open-source two-dimensional quality mesh generator that supports multiple domains. It&#39;s written in C++ and supports all three major operating systems. Although it can be used on its own, there is an awesome python library that wraps it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q&lt;/strong&gt;: &lt;em&gt;Cool, so how do you install it?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;S&lt;/strong&gt;: It&#39;s available on &lt;code&gt;pypi&lt;/code&gt;. If you are already using &lt;a rel=&quot;external&quot; href=&quot;https://www.python.org/&quot;&gt;Python&lt;/a&gt;, just do:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;pip install triangle&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Q&lt;/strong&gt;: &lt;em&gt;That&#39;s great! That will make it easy to integrate it into my existing project. How do you use it?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;S&lt;/strong&gt;: Let me give you an example. Here is the code to generate a simple square and triangulate it:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; matplotlib&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;pyplot&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; as&lt;/span&gt;&lt;span&gt; plt&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; numpy&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; as&lt;/span&gt;&lt;span&gt; np&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; triangle&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; as&lt;/span&gt;&lt;span&gt; tr&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vertices&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; np&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;array&lt;/span&gt;&lt;span&gt;([[&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 0&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 0&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span&gt;]])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;inp&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;vertices&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span&gt; vertices}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;out&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; tr&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;triangulate&lt;/span&gt;&lt;span&gt;(inp&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; opts&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;qa0.05&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;tr&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;compare&lt;/span&gt;&lt;span&gt;(plt&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; inp&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; out)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;plt&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;show&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;figure&gt;
  &lt;a href=&quot;example_1.webp&quot;&gt;
    &lt;img src=&quot;example_1.webp&quot; alt=&quot;Example 1&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Example 1&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Q&lt;/strong&gt;: &lt;em&gt;So I see &lt;code&gt;triangle&lt;/code&gt; fills the box with little triangles. How does that work?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;S&lt;/strong&gt;: Alright, let me break it down for you.&lt;/p&gt;
&lt;p&gt;First we import &lt;code&gt;matplotlib&lt;/code&gt;, &lt;code&gt;numpy&lt;/code&gt; and &lt;code&gt;triangle&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Second, we generate the vertices representing a square with edges of length &lt;code&gt;l&lt;/code&gt; and store them in a dictionary.&lt;/p&gt;
&lt;p&gt;Next, we call &lt;code&gt;triangulate&lt;/code&gt;. The options &lt;code&gt;opts=qa0.05&lt;/code&gt; tell &lt;code&gt;triangle&lt;/code&gt; to perform a quality mesh, and that no triangles have an area larger than &lt;code&gt;0.05&lt;/code&gt;. A quality mesh is a mesh with all angles over 30 degrees.&lt;/p&gt;
&lt;p&gt;Finally, &lt;code&gt;triangle&lt;/code&gt; has a useful function to compare the input and the output.&lt;/p&gt;
&lt;p&gt;Try playing around with the area to see what happens to the result!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q&lt;/strong&gt;: &lt;em&gt;Cool, so if I give it a set of points, it will generate a mesh surface. Can I specify different regions?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;S&lt;/strong&gt;: Yes, that is one of the strenghts of &lt;code&gt;triangle&lt;/code&gt;. It makes multi-region meshing easy. This means that it can label triangles according to the region it belongs to. Let me give you an example:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; matplotlib&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;pyplot&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; as&lt;/span&gt;&lt;span&gt; plt&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; numpy&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; as&lt;/span&gt;&lt;span&gt; np&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;import&lt;/span&gt;&lt;span&gt; triangle&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; as&lt;/span&gt;&lt;span&gt; tr&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vertices&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; np&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;array&lt;/span&gt;&lt;span&gt;([[&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 0&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 0&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span&gt;]])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;segments&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; np&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;array&lt;/span&gt;&lt;span&gt;([[&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;2&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;3&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;0&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;3&lt;/span&gt;&lt;span&gt;]])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;regions&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; np&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;array&lt;/span&gt;&lt;span&gt;([[&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;0.25&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 0.25&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 0&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;0.75&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 0.75&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 0&lt;/span&gt;&lt;span&gt;]])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;inp&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;vertices&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span&gt; vertices&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;segments&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span&gt; segments&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;regions&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span&gt; regions}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;out&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; tr&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;triangulate&lt;/span&gt;&lt;span&gt;(inp&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; opts&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;pqa0.05&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;tr&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;compare&lt;/span&gt;&lt;span&gt;(plt&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; inp&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; out)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;plt&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;show&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;figure&gt;
  &lt;a href=&quot;example_2.webp&quot;&gt;
    &lt;img src=&quot;example_2.webp&quot; alt=&quot;Example 2&quot;&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;Example 2&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Q&lt;/strong&gt;: &lt;em&gt;Can you explain how it works?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The difference here is that we specify the different segments. The segments describe the boundaries of a region inside the square. Triangles will be generated for each region independently. Each region thus contains its own set of triangles, and are labeled accordingly.&lt;/p&gt;
&lt;p&gt;The format for defining the regions can seem a bit tricky at first. The first two numbers describe the coordinate, and the third number is the label of the region. The final number can be used to set the maximum area in that region. We don&#39;t use that here, so we set it to 0.&lt;/p&gt;
&lt;p&gt;As before, use the compare function to check the result.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q&lt;/strong&gt;: &lt;em&gt;Wow! That makes it useful for my finite element analyses.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;S&lt;/strong&gt;: Yup, now you can get started meshing your own data using &lt;code&gt;triangle&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you want to know more, the documentation for triangle is available &lt;a rel=&quot;external&quot; href=&quot;https://rufat.be/triangle/API.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For one of my projects, we use &lt;code&gt;triangle&lt;/code&gt; as the triangle mesh generator in &lt;a href=&quot;https://stefsmeets.nl/posts/triangle/nanomesh.readthedocs.org&quot;&gt;nanomesh&lt;/a&gt;. Nanomesh is a python workflow tool to prepare meshes for finite element analysis from 2D (and 3D!) microscopy image data.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>TIL you can refactor your documentation using decorators</title>
        <published>2022-02-28T00:00:00+00:00</published>
        <updated>2022-02-28T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/refactor-docstrings/"/>
        <id>https://stefsmeets.nl/posts/refactor-docstrings/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/refactor-docstrings/">&lt;p&gt;I don&#39;t mind writing documentation. I try to write and update docstrings as I&#39;m working on the code. This is not always easy, and sometimes documentation is spread over different docstrings. Or if docstrings for similar functions are not consistent. This, I do mind. Especially if they are part of the public API.&lt;/p&gt;
&lt;p&gt;Last week I found that you can copy docstrings using a decorator. This post is inspired by some code I found in &lt;a rel=&quot;external&quot; href=&quot;https://github.com/matplotlib/matplotlib/blob/main/lib/matplotlib/docstring.py&quot;&gt;matplotlib&lt;/a&gt;:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; copy&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;source&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;    &amp;quot;&amp;quot;&amp;quot;Copy a docstring from another function.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; do_copy&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;target&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        if&lt;/span&gt;&lt;span&gt; source&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;__doc__&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            target&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;__doc__&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; source&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;__doc__&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        return&lt;/span&gt;&lt;span&gt; target&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    return&lt;/span&gt;&lt;span&gt; do_copy&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It&#39;s a decorator for a function, that copies the docstring from the source function to the decorated function.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; roar&lt;/span&gt;&lt;span&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;    &amp;quot;&amp;quot;&amp;quot;Roar like a lion.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;    print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;rawr&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D9BE98;&quot;&gt;@copy&lt;/span&gt;&lt;span&gt;(roar)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; loud_roar&lt;/span&gt;&lt;span&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;    print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;RAWR!&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;help&lt;/span&gt;&lt;span&gt;(roar)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;help&lt;/span&gt;&lt;span&gt;(loud_roar)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Help on function roar in module __main__:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;roar()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    Roar like a lion.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Help on function loud_roar in module __main__:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;loud_roar()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    Roar like a lion.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cool! Not immediately useful for my own purposes. The good thing is that it can easily be extended using string formatting.&lt;/p&gt;
&lt;p&gt;The decorator below takes a function, and tries to copy the docstring to the target function. Any keyword parameters are passed to &lt;code&gt;string.formatting&lt;/code&gt;. A copy of the source docstring is kept on &lt;code&gt;._docstring&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; textwrap&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; dedent&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; docstring&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;source&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;None&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;params&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;    &amp;quot;&amp;quot;&amp;quot;Copy a docstring from another function.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; do_copy&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;target&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        if&lt;/span&gt;&lt;span&gt; source&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; is&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            docstring&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; dedent&lt;/span&gt;&lt;span&gt;(target&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;__doc__)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        elif&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; hasattr&lt;/span&gt;&lt;span&gt;(source&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;_docstring&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            docstring&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; source&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;_docstring&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        elif&lt;/span&gt;&lt;span&gt; source&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;__doc__&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            docstring&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; dedent&lt;/span&gt;&lt;span&gt;(source&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;__doc__)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        target&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;__doc__&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; docstring&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;format&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;**&lt;/span&gt;&lt;span&gt;params)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        target&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;_docstring&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; docstring&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        return&lt;/span&gt;&lt;span&gt; target&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    return&lt;/span&gt;&lt;span&gt; do_copy&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Let&#39;s see how it works:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D9BE98;&quot;&gt;@docstring&lt;/span&gt;&lt;span&gt;(cry&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Roar&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; animal&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;cow&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; roar&lt;/span&gt;&lt;span&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;    &amp;quot;&amp;quot;&amp;quot;{cry} like a {animal}.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;    print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;RAWR!&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D9BE98;&quot;&gt;@docstring&lt;/span&gt;&lt;span&gt;(roar&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; cry&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;Moo&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; animal&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;cow&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; moo&lt;/span&gt;&lt;span&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;    print&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;MOO!&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;help&lt;/span&gt;&lt;span&gt;(roar)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;help&lt;/span&gt;&lt;span&gt;(moo)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Help on function roar in module __main__:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;roar()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    Roar like a cow.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Help on function moo in module __main__:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;moo()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    Moo like a cow.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It also works with class methods:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; statistics&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; median&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt; MyList&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;list&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D9BE98;&quot;&gt;    @docstring&lt;/span&gt;&lt;span&gt;(op&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;minimum&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    def&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; min&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;self&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;        &amp;quot;&amp;quot;&amp;quot;Return {op} value from the list.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; min&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;font-style: italic;&quot;&gt;self&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D9BE98;&quot;&gt;    @docstring&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;min&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; op&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;maximum&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    def&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; max&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;self&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; max&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;font-style: italic;&quot;&gt;self&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D9BE98;&quot;&gt;    @docstring&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;min&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; op&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;median&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; mean&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;self&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; median&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;font-style: italic;&quot;&gt;self&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;help&lt;/span&gt;&lt;span&gt;(MyList&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;min)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;help&lt;/span&gt;&lt;span&gt;(MyList&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;max)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;help&lt;/span&gt;&lt;span&gt;(MyList&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;mean)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Help on function min in module __main__:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;min(self)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    Return minimum value from the list.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Help on function max in module __main__:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;max(self)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    Return maximum value from the list.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Help on function mean in module __main__:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;mean(self)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    Return median value from the list.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Essentially anything with a docstring (&lt;code&gt;__doc__&lt;/code&gt; attribute) works, such as classes:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D9BE98;&quot;&gt;@docstring&lt;/span&gt;&lt;span&gt;(classname&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;A&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt; A&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;    &amp;quot;&amp;quot;&amp;quot;This is {classname}.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    pass&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D9BE98;&quot;&gt;@docstring&lt;/span&gt;&lt;span&gt;(A&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt; classname&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;B&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt; B&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;A&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    pass&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;print&lt;/span&gt;&lt;span&gt;(A&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;__doc__)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;print&lt;/span&gt;&lt;span&gt;(B&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;__doc__)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;This is A.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;This is B.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nice! you can imagine that if you have large docstrings, that helps keeping the documentation consistent and concise.&lt;/p&gt;
&lt;p&gt;As a bonus, this will also be picked up by &lt;a href=&quot;https://stefsmeets.nl/posts/refactor-docstrings/sphinx-emdocs.readthedocs.io/&quot;&gt;Sphinx&lt;/a&gt;. If you are generating documentation for e.g. &lt;a rel=&quot;external&quot; href=&quot;https://readthedocs.io&quot;&gt;readthedocs&lt;/a&gt;, this will make it just a little bit nicer to read!&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Type union operator in Python 3.7+</title>
        <published>2022-01-21T00:00:00+00:00</published>
        <updated>2022-01-21T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/type-union/"/>
        <id>https://stefsmeets.nl/posts/type-union/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/type-union/">&lt;p&gt;I&#39;m a big fan of Python type hints. I try to use them whenever I can. Not only for static type checking with &lt;a rel=&quot;external&quot; href=&quot;https://mypy.readthedocs.io/en/stable/&quot;&gt;mypy&lt;/a&gt;. They also help document functions (sphinx has nice support for them) and force me to think about how I structure my functions.&lt;/p&gt;
&lt;p&gt;One thing that bothers me, is that type hints can get quite verbose. Especially if you have multiple possible input types or optional values. For example, take this function that takes an &lt;code&gt;int&lt;/code&gt; or a &lt;code&gt;float&lt;/code&gt; as input:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# type_union.py&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; typing&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; Union&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; square&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt; :&lt;/span&gt;&lt;span&gt; Union[&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; float&lt;/span&gt;&lt;span&gt;]):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    return&lt;/span&gt;&lt;span&gt; a&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;**&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Python 3.10 introduces a new &lt;a rel=&quot;external&quot; href=&quot;https://www.python.org/dev/peps/pep-0604/&quot;&gt;type union syntax&lt;/a&gt; to make this a bit nicer to read. The piping operator (&lt;code&gt;|&lt;/code&gt;) can be used to join multiple types:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# type_union_310.py&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; square&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt; :&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; int&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; float&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    return&lt;/span&gt;&lt;span&gt; a&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;**&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you try to run this code in older versions of Python, it will raise this error:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span&gt; type_union_future&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span&gt;py&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span&gt; error&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;span&gt; X&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; |&lt;/span&gt;&lt;span&gt; Y syntax&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; for&lt;/span&gt;&lt;span&gt; unions requires Python&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 3.10&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It is a little known fact that the new type union syntax is also available in older versions of Python (3.7+) using a &lt;a rel=&quot;external&quot; href=&quot;https://docs.python.org/3/library/__future__.html&quot;&gt;futures import&lt;/a&gt;! &lt;code&gt;__future__&lt;/code&gt; is a Python module part of the standard library that makes newer features available to older versions of Python.&lt;/p&gt;
&lt;p&gt;If you add &lt;code&gt;from __future__ import annotations&lt;/code&gt; to the top of your code:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# type_union_future.py&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; __future__&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; annotations&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; square&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt; :&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; int&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color: #5CCFE6;&quot;&gt; float&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    return&lt;/span&gt;&lt;span&gt; a&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;**&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also use the new type union syntax in Python 3.7+! 🥳&lt;/p&gt;
&lt;h2 id=&quot;extra&quot;&gt;Extra&lt;/h2&gt;
&lt;p&gt;I was already aware that &lt;a rel=&quot;external&quot; href=&quot;https://www.python.org/dev/peps/pep-0563/&quot;&gt;PEP-563&lt;/a&gt; will introduce postponed evaluation of annotations. This will help deal with forward references. For example:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;# forward_reference.py&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; __future__&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; annotations&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt; MyClass&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; __constructor__&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;self&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt; -&amp;gt;&lt;/span&gt;&lt;span&gt; MyClass:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;        pass&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Without the futures import, this will be valid in &lt;code&gt;mypy&lt;/code&gt;, but throws &lt;code&gt;NameError: name &#39;MyClass&#39; is not defined&lt;/code&gt; when trying to execute it. This has been available via the same &lt;code&gt;from __future__ import annotations&lt;/code&gt; since Python 3.7.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>HELLO WORLD</title>
        <published>2022-01-10T00:00:00+00:00</published>
        <updated>2022-01-10T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/hello-world/"/>
        <id>https://stefsmeets.nl/posts/hello-world/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/hello-world/">&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https://en.wikipedia.org/wiki/Lorem_ipsum&quot;&gt;Lorem ipsum&lt;/a&gt; dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>In the age of electrons, do we still need powder diffraction?</title>
        <published>2021-08-18T00:00:00+00:00</published>
        <updated>2021-08-18T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/iucr2021/"/>
        <id>https://stefsmeets.nl/presentations/iucr2021/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/iucr2021/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Serial rotation electron diffraction: Automated high-throughput data collection and data processing</title>
        <published>2021-08-13T00:00:00+00:00</published>
        <updated>2021-08-13T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/ecs2021/"/>
        <id>https://stefsmeets.nl/presentations/ecs2021/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/ecs2021/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>era5cli: the commandline tool to download ERA5 data</title>
        <published>2021-04-28T00:00:00+00:00</published>
        <updated>2021-04-28T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/vegu2021/"/>
        <id>https://stefsmeets.nl/presentations/vegu2021/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/vegu2021/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Automated electron diffraction using Instamatic</title>
        <published>2020-12-17T00:00:00+00:00</published>
        <updated>2020-12-17T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/ecworkshop2020/"/>
        <id>https://stefsmeets.nl/presentations/ecworkshop2020/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/ecworkshop2020/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>InsteaDMatic: towards cross-platform automated continuous rotation electron diffraction</title>
        <published>2020-10-01T00:00:00+00:00</published>
        <updated>2020-10-01T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/insteadmatic/"/>
        <id>https://stefsmeets.nl/articles/insteadmatic/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/insteadmatic/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Towards automated serial electron diffraction for macromolecular crystallography</title>
        <published>2019-12-09T00:00:00+00:00</published>
        <updated>2019-12-09T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/chains2019/"/>
        <id>https://stefsmeets.nl/presentations/chains2019/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/chains2019/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Towards automated serial electron diffraction for macromolecular crystallography</title>
        <published>2019-10-07T00:00:00+00:00</published>
        <updated>2019-10-07T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/dutchbiophysics2019/"/>
        <id>https://stefsmeets.nl/presentations/dutchbiophysics2019/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/dutchbiophysics2019/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>SSZ-27: A Small-Pore Zeolite with Large Heart-Shaped Cavities Determined by Using Multi-crystal Electron Diffraction</title>
        <published>2019-09-09T00:00:00+00:00</published>
        <updated>2019-09-09T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/ssz-27/"/>
        <id>https://stefsmeets.nl/articles/ssz-27/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/ssz-27/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>The Role of Cluster Analysis in Automated Serial Electron Crystallography</title>
        <published>2019-08-18T00:00:00+00:00</published>
        <updated>2019-08-18T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/ecm32/"/>
        <id>https://stefsmeets.nl/presentations/ecm32/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/ecm32/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Glue it all together with Python: Automating electron diffraction data collection</title>
        <published>2019-08-14T00:00:00+00:00</published>
        <updated>2019-08-14T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/eccf2019/"/>
        <id>https://stefsmeets.nl/presentations/eccf2019/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/eccf2019/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>The Role of Cluster Analysis in Automated Serial Electron Crystallography</title>
        <published>2019-08-05T00:00:00+00:00</published>
        <updated>2019-08-05T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/hierarchical-cluster-analysis/"/>
        <id>https://stefsmeets.nl/articles/hierarchical-cluster-analysis/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/hierarchical-cluster-analysis/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>The Role of Cluster Analysis in Automated Serial Electron Crystallography</title>
        <published>2019-08-05T00:00:00+00:00</published>
        <updated>2019-08-05T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/mandm2019/"/>
        <id>https://stefsmeets.nl/presentations/mandm2019/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/mandm2019/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Automated serial rotation electron diffraction combined with cluster analysis: an efficient multi-crystal workflow for structure determination</title>
        <published>2019-07-12T00:00:00+00:00</published>
        <updated>2019-07-12T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/serialred/"/>
        <id>https://stefsmeets.nl/articles/serialred/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/serialred/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Towards automated serial electron diffraction for macromolecular crystallography</title>
        <published>2019-07-02T00:00:00+00:00</published>
        <updated>2019-07-02T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/bioday2019/"/>
        <id>https://stefsmeets.nl/presentations/bioday2019/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/bioday2019/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Towards automated serial electron diffraction for macromolecular crystallography</title>
        <published>2019-06-06T00:00:00+00:00</published>
        <updated>2019-06-06T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/nvk2019/"/>
        <id>https://stefsmeets.nl/presentations/nvk2019/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/nvk2019/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Preferential Siting of Aluminum Heteroatoms in the Zeolite Catalyst Al-SSZ-70</title>
        <published>2019-05-06T00:00:00+00:00</published>
        <updated>2019-05-06T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/preferential-siting-of-al-in-ssz-70/"/>
        <id>https://stefsmeets.nl/articles/preferential-siting-of-al-in-ssz-70/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/preferential-siting-of-al-in-ssz-70/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Structure determination of nanocrystalline materials using electron diffraction</title>
        <published>2019-03-18T00:00:00+00:00</published>
        <updated>2019-03-18T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/nanofront2019/"/>
        <id>https://stefsmeets.nl/presentations/nanofront2019/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/nanofront2019/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Synthesis and Structure Determination of SCM-15: A 3D Large Pore Zeolite with Interconnected Straight 12x12x10-Ring Channels</title>
        <published>2019-02-11T00:00:00+00:00</published>
        <updated>2019-02-11T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/synthesis-and-structure-determination-of-scm-15/"/>
        <id>https://stefsmeets.nl/articles/synthesis-and-structure-determination-of-scm-15/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/synthesis-and-structure-determination-of-scm-15/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Quantitative Phase Analysis for Carbide Characterization in Steel Using Automated Electron Diffraction</title>
        <published>2019-01-03T00:00:00+00:00</published>
        <updated>2019-01-03T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/serialed-carbides/"/>
        <id>https://stefsmeets.nl/articles/serialed-carbides/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/serialed-carbides/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>High-throughput continuous rotation electron diffraction data acquisition via software automation</title>
        <published>2018-12-01T00:00:00+00:00</published>
        <updated>2018-12-01T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/cred-high-throughput/"/>
        <id>https://stefsmeets.nl/articles/cred-high-throughput/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/cred-high-throughput/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Site-Specific Adsorption of CO2 in Zeolite NaK-A</title>
        <published>2018-11-05T00:00:00+00:00</published>
        <updated>2018-11-05T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/zeolite-a-co2-neutron/"/>
        <id>https://stefsmeets.nl/articles/zeolite-a-co2-neutron/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/zeolite-a-co2-neutron/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Serial electron crystallography for structure determination and phase analysis of nanocrystalline materials</title>
        <published>2018-10-01T00:00:00+00:00</published>
        <updated>2018-10-01T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/serialed/"/>
        <id>https://stefsmeets.nl/articles/serialed/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/serialed/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>High-Silica Zeolite SSZ-70: New Understanding of a Successful Catalytic Material</title>
        <published>2018-08-22T00:00:00+00:00</published>
        <updated>2018-08-22T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/ecm31/"/>
        <id>https://stefsmeets.nl/presentations/ecm31/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/ecm31/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>CO2-Induced Displacement of Na+ and K+ in Zeolite |NaK|-A</title>
        <published>2018-07-10T00:00:00+00:00</published>
        <updated>2018-07-10T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/zeolite-a-co2/"/>
        <id>https://stefsmeets.nl/articles/zeolite-a-co2/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/zeolite-a-co2/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Structure determination of polycrystalline materials using X-rays and electrons</title>
        <published>2018-07-01T00:00:00+00:00</published>
        <updated>2018-07-01T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/epdic16/"/>
        <id>https://stefsmeets.nl/presentations/epdic16/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/epdic16/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Multidimensional Disorder in Zeolite IM-18 Revealed by Combining Transmission Electron Microscopy and X-ray Powder Diffraction Analyses</title>
        <published>2018-02-27T00:00:00+00:00</published>
        <updated>2018-02-27T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/im-18/"/>
        <id>https://stefsmeets.nl/articles/im-18/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/im-18/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Instamatic: a multi-purpose toolbox for collecting electron diffraction data</title>
        <published>2017-12-09T00:00:00+00:00</published>
        <updated>2017-12-09T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/cryoem2017/"/>
        <id>https://stefsmeets.nl/presentations/cryoem2017/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/cryoem2017/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Synthesis and Structure Determination of Large-Pore Zeolite SCM-14</title>
        <published>2017-11-27T00:00:00+00:00</published>
        <updated>2017-11-27T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/scm-14/"/>
        <id>https://stefsmeets.nl/articles/scm-14/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/scm-14/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Well-Defined Silanols in the Structure of the Calcined High-Silica Zeolite SSZ-70: New Understanding of a Successful Catalytic Material</title>
        <published>2017-11-22T00:00:00+00:00</published>
        <updated>2017-11-22T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/well-defined-silanols-in-the-structure-of-the-calcined-high-silica-zeolite-ssz-70/"/>
        <id>https://stefsmeets.nl/articles/well-defined-silanols-in-the-structure-of-the-calcined-high-silica-zeolite-ssz-70/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/well-defined-silanols-in-the-structure-of-the-calcined-high-silica-zeolite-ssz-70/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Serial electron diffraction for structure determination and phase analysis of polycrystalline materials</title>
        <published>2017-11-03T00:00:00+00:00</published>
        <updated>2017-11-03T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/nvk2017/"/>
        <id>https://stefsmeets.nl/presentations/nvk2017/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/nvk2017/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Structure analysis of polycrystalline materials with X-rays and electrons</title>
        <published>2017-09-12T00:00:00+00:00</published>
        <updated>2017-09-12T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/sgk2017/"/>
        <id>https://stefsmeets.nl/presentations/sgk2017/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/sgk2017/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Serial electron diffraction for phase analysis and structure determination</title>
        <published>2017-08-21T00:00:00+00:00</published>
        <updated>2017-08-21T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/iucr2017/"/>
        <id>https://stefsmeets.nl/presentations/iucr2017/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/iucr2017/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Location of Organic Structure-Directing Agents in Zeolites Using Diffraction Techniques</title>
        <published>2017-08-17T00:00:00+00:00</published>
        <updated>2017-08-17T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/location-of-osdas/"/>
        <id>https://stefsmeets.nl/articles/location-of-osdas/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/location-of-osdas/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Characterization of zeolites using powder diffraction: frameworks, heteroatoms, and SDAs</title>
        <published>2017-07-03T00:00:00+00:00</published>
        <updated>2017-07-03T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/feza2017/"/>
        <id>https://stefsmeets.nl/presentations/feza2017/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/feza2017/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>The structure of zeolite SSZ-70 through combined HRTEM, XRPD, and 2D NMR</title>
        <published>2017-07-03T00:00:00+00:00</published>
        <updated>2017-07-03T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/feza2017poster/"/>
        <id>https://stefsmeets.nl/presentations/feza2017poster/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/feza2017poster/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>The structure of zeolite SSZ-70 through combined HRTEM, XRPD, and 2D NMR</title>
        <published>2017-06-13T00:00:00+00:00</published>
        <updated>2017-06-13T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/inorganicdays2017/"/>
        <id>https://stefsmeets.nl/presentations/inorganicdays2017/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/inorganicdays2017/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Zeolite Structures</title>
        <published>2017-06-07T00:00:00+00:00</published>
        <updated>2017-06-07T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/zeolite-structures/"/>
        <id>https://stefsmeets.nl/articles/zeolite-structures/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/zeolite-structures/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Serial electron crystallography: merging diffraction data through rank aggregation</title>
        <published>2017-06-01T00:00:00+00:00</published>
        <updated>2017-06-01T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/serialmerge/"/>
        <id>https://stefsmeets.nl/articles/serialmerge/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/serialmerge/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Locating organic guests in inorganic host materials from XRPD</title>
        <published>2016-09-22T00:00:00+00:00</published>
        <updated>2016-09-22T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/debye2016/"/>
        <id>https://stefsmeets.nl/presentations/debye2016/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/debye2016/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Synthesis and Characterization of CIT-13, a Germanosilicate Molecular Sieve with Extra-Large Pore Openings</title>
        <published>2016-09-13T00:00:00+00:00</published>
        <updated>2016-09-13T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/cit-13/"/>
        <id>https://stefsmeets.nl/articles/cit-13/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/cit-13/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Serial snapshot crystallography using electron diffraction</title>
        <published>2016-08-28T00:00:00+00:00</published>
        <updated>2016-08-28T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/ecm30/"/>
        <id>https://stefsmeets.nl/presentations/ecm30/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/ecm30/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Locating organic guests in inorganic host materials from XRPD</title>
        <published>2016-06-12T00:00:00+00:00</published>
        <updated>2016-06-12T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/epdic15/"/>
        <id>https://stefsmeets.nl/presentations/epdic15/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/epdic15/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Locating Organic Guests in Inorganic Host Materials from X-ray Powder Diffraction Data</title>
        <published>2016-06-08T00:00:00+00:00</published>
        <updated>2016-06-08T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/locating-organic-guests/"/>
        <id>https://stefsmeets.nl/articles/locating-organic-guests/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/locating-organic-guests/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>How do the positions of OSDAs determined from powder diffraction compare to molecular modelling</title>
        <published>2015-09-14T00:00:00+00:00</published>
        <updated>2015-09-14T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/sgk2015/"/>
        <id>https://stefsmeets.nl/presentations/sgk2015/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/sgk2015/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Indexing of multi-crystal snapshots collected with a broad bandpass beam</title>
        <published>2015-08-23T00:00:00+00:00</published>
        <updated>2015-08-23T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/ecm29/"/>
        <id>https://stefsmeets.nl/presentations/ecm29/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/ecm29/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Ionothermal Synthesis and Structure of a New Layered Zirconium Phosphate</title>
        <published>2015-08-17T00:00:00+00:00</published>
        <updated>2015-08-17T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/zrpof-epy/"/>
        <id>https://stefsmeets.nl/articles/zrpof-epy/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/zrpof-epy/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>How do the positions of OSDAs determined from powder diffraction compare to molecular modelling?</title>
        <published>2015-07-26T00:00:00+00:00</published>
        <updated>2015-07-26T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/bza38/"/>
        <id>https://stefsmeets.nl/presentations/bza38/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/bza38/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Structure analysis of a BEC-type germanosilicate zeolite including the location of the flexible organic cations in the channels</title>
        <published>2015-06-22T00:00:00+00:00</published>
        <updated>2015-06-22T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/ge-bec/"/>
        <id>https://stefsmeets.nl/articles/ge-bec/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/ge-bec/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Serial snapshot crystallography for materials science with SwissFEL</title>
        <published>2015-05-01T00:00:00+00:00</published>
        <updated>2015-05-01T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/swissfel/"/>
        <id>https://stefsmeets.nl/articles/swissfel/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/swissfel/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>SSZ-87: A Borosilicate Zeolite with Unusually Flexible 10-Ring Pore Openings</title>
        <published>2015-02-11T00:00:00+00:00</published>
        <updated>2015-02-11T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/ssz-87/"/>
        <id>https://stefsmeets.nl/articles/ssz-87/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/ssz-87/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>High-Silica Zeolite SSZ-61 with Dumbbell-Shaped Extra-Large-Pore Channels</title>
        <published>2014-09-22T00:00:00+00:00</published>
        <updated>2014-09-22T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/ssz-61/"/>
        <id>https://stefsmeets.nl/articles/ssz-61/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/ssz-61/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>When two bad data sets are better than one</title>
        <published>2014-08-05T00:00:00+00:00</published>
        <updated>2014-08-05T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/iucr2014/"/>
        <id>https://stefsmeets.nl/presentations/iucr2014/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/iucr2014/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>SSZ-45: A High-Silica Zeolite with Small Pore Openings, Large Cavities, and Unusual Adsorption Properties</title>
        <published>2014-07-08T00:00:00+00:00</published>
        <updated>2014-07-08T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/ssz-45/"/>
        <id>https://stefsmeets.nl/articles/ssz-45/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/ssz-45/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Solvent-Mediated Reconstruction of the Metal-Organic Framework HKUST-1 (Cu3(BTC)2)</title>
        <published>2014-07-01T00:00:00+00:00</published>
        <updated>2014-07-01T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/hkust-1-reconstruction/"/>
        <id>https://stefsmeets.nl/articles/hkust-1-reconstruction/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/hkust-1-reconstruction/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Difficult structures come in a variety of flavors</title>
        <published>2014-06-15T00:00:00+00:00</published>
        <updated>2014-06-15T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/epdic14/"/>
        <id>https://stefsmeets.nl/presentations/epdic14/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/epdic14/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Synthesis, Structural Elucidation, and Catalytic Properties in Olefin Epoxidation of the Polymeric Hybrid Material [Mo3O9(2-[3(5)-Pyrazolyl]pyridine)]-&lt;i&gt;n&lt;/i&gt;</title>
        <published>2014-03-03T00:00:00+00:00</published>
        <updated>2014-03-03T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/mo-polymeric-hybrid-material/"/>
        <id>https://stefsmeets.nl/articles/mo-polymeric-hybrid-material/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/mo-polymeric-hybrid-material/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>A two-dimensional zeolitic imidazolate framework with a cushion-shaped cavity for CO2 adsorption</title>
        <published>2013-09-19T00:00:00+00:00</published>
        <updated>2013-09-19T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/zif-8l/"/>
        <id>https://stefsmeets.nl/articles/zif-8l/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/zif-8l/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Using FOCUS and Superflip to solve structures from 3D electron and powder diffraction data</title>
        <published>2013-08-25T00:00:00+00:00</published>
        <updated>2013-08-25T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/ecm28/"/>
        <id>https://stefsmeets.nl/presentations/ecm28/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/ecm28/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Using FOCUS to solve zeolite structures from three-dimensional electron diffraction data</title>
        <published>2013-08-01T00:00:00+00:00</published>
        <updated>2013-08-01T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/focus-for-ed/"/>
        <id>https://stefsmeets.nl/articles/focus-for-ed/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/focus-for-ed/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Little myepisodes.com userscript (modified for Firefox)</title>
        <published>2013-06-01T00:00:00+00:00</published>
        <updated>2013-06-01T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/myepisodes-yarrr-firefox/"/>
        <id>https://stefsmeets.nl/posts/myepisodes-yarrr-firefox/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/myepisodes-yarrr-firefox/">&lt;p&gt;I have updated my myepisodes userscript to work with Firefox (&lt;a href=&quot;../myepisodes-yarrr&quot;&gt;link&lt;/a&gt;), which is apparently significantly different. It would be nice if at least all browsers had the same javascript standards... oh well.&lt;/p&gt;
&lt;p&gt;To install, you need the Greasemonkey extension and then you can add this to it!&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;// ==UserScript==&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;// @name        myeps&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;// @include     http://www.myepisodes.com/*&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;// @version     1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;// @grant       none&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;// ==/UserScript==&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; myfunc&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;  // get table by class name as array&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; arr&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; document&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;getElementsByClassName&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;showname&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;  // loop over array&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;var&lt;/span&gt;&lt;span&gt; i&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;span&gt; i&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; &amp;lt;&lt;/span&gt;&lt;span&gt; arr&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;length&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;span&gt; i&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;++&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;    // get show name&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;   name&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; arr&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;item&lt;/span&gt;&lt;span&gt;(i)&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;textContent&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;    // add torrentz.net search&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;   str&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;http://torrentz.eu/search?f=&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +&lt;/span&gt;&lt;span&gt; name&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;replace&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;/ /&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;g&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;+&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;    // generate link&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;   link&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;&amp;lt;a href=&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span&gt;str&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;&amp;gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;&amp;lt;/a&amp;gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;    // generate 720p link&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;   link_720p&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;&amp;lt;a href=&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span&gt;str&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot; +720p&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;&amp;gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;(720p)&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;&amp;lt;/a&amp;gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;    // update cell&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;   arr&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;item&lt;/span&gt;&lt;span&gt;(i)&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;innerHTML&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; arr&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;item&lt;/span&gt;&lt;span&gt;(i)&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;innerHTML&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +&lt;/span&gt;&lt;span&gt; link_720p&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt; // run after page has loaded&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;window&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;onload&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; myfunc&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Original post on &lt;a rel=&quot;external&quot; href=&quot;https://web.archive.org/web/20140602142618/http://eftrunk.blogspot.com/&quot;&gt;web.archive.org&lt;/a&gt;.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Ab initio structure solution of a new zeolitic imidazolate framework</title>
        <published>2012-10-28T00:00:00+00:00</published>
        <updated>2012-10-28T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/presentations/epdic13/"/>
        <id>https://stefsmeets.nl/presentations/epdic13/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/presentations/epdic13/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Writing to NTFS on OS X</title>
        <published>2012-08-17T00:00:00+00:00</published>
        <updated>2012-08-17T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/writing-ntfs-on-osx/"/>
        <id>https://stefsmeets.nl/posts/writing-ntfs-on-osx/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/writing-ntfs-on-osx/">&lt;p&gt;Out of the box, OS X only supports reading from NTFS drives. The following steps explain how to install and where to find drivers to write to NTFS drives as well. From my experience, this works well on all recent versions of OS X, from Snow Leopard to Mountain Lion.&lt;/p&gt;
&lt;h2 id=&quot;step-1&quot;&gt;Step 1&lt;/h2&gt;
&lt;p&gt;Install &lt;a rel=&quot;external&quot; href=&quot;https://github.com/osxfuse/osxfuse&quot;&gt;osxfuse&lt;/a&gt;. For use with NTFS-3G below, make sure to tick the option &quot;Install MacFuse compatibility layer&quot;. This is the general framework for extending OS X with new file system drivers.&lt;/p&gt;
&lt;h2 id=&quot;step-2&quot;&gt;Step 2&lt;/h2&gt;
&lt;p&gt;Install &lt;a rel=&quot;external&quot; href=&quot;https://sourceforge.net/projects/catacombae/files/NTFS-3G%20for%20Mac%20OS%20X/2010.10.2/&quot;&gt;NTFS 3g&lt;/a&gt;. This is the NTFS driver for use with osxfuse. Make sure to reboot after installing. Writing to NTFS drives should now be possible. 2010.10.2 is the latest version available at the time of writing.&lt;/p&gt;
&lt;h2 id=&quot;step-3-optional&quot;&gt;Step 3 (optional)&lt;/h2&gt;
&lt;p&gt;In Lion and newer you might experience a timeout bug every 15 seconds. This can be remedied with this patch: &lt;a rel=&quot;external&quot; href=&quot;https://github.com/bfleischer/fuse_wait/&quot;&gt;fuse_wait.&lt;/a&gt; To uninstall, simply reinstall the NTFS-3G driver.&lt;/p&gt;
&lt;p&gt;More information is available on the &lt;a rel=&quot;external&quot; href=&quot;https://github.com/osxfuse/osxfuse/wiki/&quot;&gt;osxfuse wiki page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Original post on &lt;a rel=&quot;external&quot; href=&quot;https://web.archive.org/web/20140602142618/http://eftrunk.blogspot.com/&quot;&gt;web.archive.org&lt;/a&gt;.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Git difftool</title>
        <published>2012-08-07T00:00:00+00:00</published>
        <updated>2012-08-07T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/git-difftool/"/>
        <id>https://stefsmeets.nl/posts/git-difftool/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/git-difftool/">&lt;p&gt;To use your favourite visuall diff-tool with git:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git difftool -t xxdiff HEAD&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Or &#39;HEAD&#39; can be any particular file you want to diff.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git difftool&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;shows a list of programs it can use... if you happen to have them installed.&lt;/p&gt;
&lt;p&gt;There is a thread on &lt;a rel=&quot;external&quot; href=&quot;https://stackoverflow.com/questions/255202/how-do-i-view-git-diff-output-with-a-visual-diff-program&quot;&gt;stackoverflow&lt;/a&gt; that details a few more advanced options, including setting up your own difftool, but I like this one the best, due to its simplicity.&lt;/p&gt;
&lt;p&gt;Original post on &lt;a rel=&quot;external&quot; href=&quot;https://web.archive.org/web/20140602142618/http://eftrunk.blogspot.com/&quot;&gt;web.archive.org&lt;/a&gt;.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Speed up Mountain Lion</title>
        <published>2012-07-29T00:00:00+00:00</published>
        <updated>2012-07-29T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/mountain-lion-faster/"/>
        <id>https://stefsmeets.nl/posts/mountain-lion-faster/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/mountain-lion-faster/">&lt;p&gt;Some useful commands too speed up Mountain Lion I came across:&lt;/p&gt;
&lt;p&gt;Disable smooth scrolling:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;defaults write -g NSScrollAnimationEnabled -bool NO&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Disable rubber banding (Sadly doesn&#39;t work everywhere, applications will need to restart after):&lt;/p&gt;
&lt;p&gt;&lt;code&gt;defaults write -g NSScrollViewRubberbanding -int 0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Reset rubber banding:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;defaults delete -g NSScrollViewRubberbanding&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Speed up the Dock animation:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;defaults write com.apple.dock autohide-time-modifier -float 0.40;killall Dock&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Reset Dock animation:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;defaults delete com.apple.dock autohide-time-modifier;killall Dock&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;2D dock, because the indicators on the new 3D dock are absolutely impossible to see:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;defaults write com.apple.dock no-glass -bool true&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;That said, last year I posted some &lt;a rel=&quot;external&quot; href=&quot;https://web.archive.org/web/20130416052427/http://eftrunk.blogspot.ch/2011/10/speed-up-os-x-lion.html&quot;&gt;Lion commands&lt;/a&gt; that still work too :-)&lt;/p&gt;
&lt;p&gt;Speed up Mission Control, by reducing the length of animations and reduce the delay before switching spaces:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;defaults write com.apple.dock expose-animation-duration -float 0.15&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;defaults write com.apple.dock workspaces-edge-delay -float 0.15&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;killall Dock&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can modify the 0.15 to whatever you want, but this is my preferred settings.&lt;/p&gt;
&lt;p&gt;Remove mouse acceleration (needs a relog):&lt;/p&gt;
&lt;p&gt;&lt;code&gt;defaults write .GlobalPreferences com.apple.mouse.scaling -1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Original post on &lt;a rel=&quot;external&quot; href=&quot;https://web.archive.org/web/20130416052427/http://eftrunk.blogspot.com/2012/07/speed-up-mountain-lion.html&quot;&gt;web.archive.org&lt;/a&gt;&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>OS X terminal alerts</title>
        <published>2012-06-22T00:00:00+00:00</published>
        <updated>2012-06-22T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/os-x-terminal-alerts/"/>
        <id>https://stefsmeets.nl/posts/os-x-terminal-alerts/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/os-x-terminal-alerts/">&lt;p&gt;Sometimes when I&#39;m running a long command I want to be alerted when it&#39;s done, so I don&#39;t have to check the other window all the time to see if it&#39;s finished.&lt;/p&gt;
&lt;p&gt;To do so, simply append &lt;code&gt;printf &#39;\a&#39;&lt;/code&gt; to your command, like so:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;sleep&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 5&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; printf&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;#39;\a&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will add a &#39;bell&#39; character to the message, which will bounce the dock icon and add a little badge if it is out of focus, very useful!&lt;/p&gt;
&lt;p&gt;Original post on &lt;a rel=&quot;external&quot; href=&quot;https://web.archive.org/web/20130416052427/http://eftrunk.blogspot.com/2012/06/os-x-terminal-alerts.html&quot;&gt;web.archive.org&lt;/a&gt;&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Little myepisodes.com userscript</title>
        <published>2012-05-01T00:00:00+00:00</published>
        <updated>2012-05-01T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/myepisodes-yarrr/"/>
        <id>https://stefsmeets.nl/posts/myepisodes-yarrr/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/myepisodes-yarrr/">&lt;p&gt;As a little project for today to learn some javascript, I decided to modify one of my favourite websites &lt;a href=&quot;http://www.myepisodes.com&quot;&gt;myepisodes.com&lt;/a&gt; and make it a little bit more useful, by adding torrent links directly to the show list &amp;gt;:)&lt;/p&gt;
&lt;p&gt;Down below is the userscript that will modify the contents of each cell and update the link from tvrage to a torrent search engine.&lt;/p&gt;
&lt;h3 id=&quot;installation-for-opera&quot;&gt;Installation for Opera:&lt;/h3&gt;
&lt;p&gt;Go to &lt;kbd&gt;Preferences&lt;/kbd&gt; &amp;gt; &lt;kbd&gt;content&lt;/kbd&gt; &amp;gt; &lt;kbd&gt;javascript options&lt;/kbd&gt; &amp;gt; &lt;kbd&gt;User javascript folder&lt;/kbd&gt;.&lt;/p&gt;
&lt;p&gt;Set a folder to put your user javascripts if you haven&#39;t, otherwise add this script to that folder.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;// ==UserScript==&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;// @include http://myepisodes.com/*&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;// ==/UserScript==&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; myfunc&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;  // get table by class name as array&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; arr&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; document&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;getElementsByClassName&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;showname&amp;#39;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;  // loop over array&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;var&lt;/span&gt;&lt;span&gt; i&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;span&gt; i&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; &amp;lt;&lt;/span&gt;&lt;span&gt; arr&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;length&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;span&gt; i&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;++&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;    // get show name&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;   var&lt;/span&gt;&lt;span&gt; name&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; arr&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;item&lt;/span&gt;&lt;span&gt;(i)&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;innerText&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;    // add torrentz.net search&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;   var&lt;/span&gt;&lt;span&gt; str&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;http://torrentz.eu/search?f=&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +&lt;/span&gt;&lt;span&gt; name&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;replace&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt;/ /&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;g&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;+&amp;quot;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;    // generate link&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;   link&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;&amp;lt;a href=&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span&gt;str&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;&amp;gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;&amp;lt;/a&amp;gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;    // generate 720p link&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;   link_720p&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot;&amp;lt;a href=&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span&gt;str&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot; +720p&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;&amp;gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;(720p)&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;quot;&amp;lt;/a&amp;gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt;    // update cell&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;   arr&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;item&lt;/span&gt;&lt;span&gt;(i)&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;innerHTML&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; link&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; &amp;quot; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; +&lt;/span&gt;&lt;span&gt; link_720p&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #6E7C8F;font-style: italic;&quot;&gt; // run after page has loaded&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;window&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;.&lt;/span&gt;&lt;span&gt;onload&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; myfunc&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Original post on &lt;a rel=&quot;external&quot; href=&quot;https://web.archive.org/web/20140602142618/http://eftrunk.blogspot.com/&quot;&gt;web.archive.org&lt;/a&gt;.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Co-sort multiple python lists</title>
        <published>2012-03-08T00:00:00+00:00</published>
        <updated>2012-03-08T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/co-sort-python/"/>
        <id>https://stefsmeets.nl/posts/co-sort-python/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/co-sort-python/">&lt;p&gt;I have written a small function to sort multiple lists. The values are sorted according to the values in the first list first, then the second etc. It can take any number of lists and returns the same number.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; cosort&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;lsts&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;    &amp;quot;&amp;quot;&amp;quot;Takes a any number of lists and sorts them based on the values of the first list.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    tmp&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; zip&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;*&lt;/span&gt;&lt;span&gt;lsts)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    tmp&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;sort&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; zip&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;*&lt;/span&gt;&lt;span&gt;tmp)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Little testing script:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;from&lt;/span&gt;&lt;span&gt; random&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; import&lt;/span&gt;&lt;span&gt; shuffle&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; cosort&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;lsts&lt;/span&gt;&lt;span&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;    &amp;quot;&amp;quot;&amp;quot;Takes a few lists and sorts them based on the values of the first list.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    tmp&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; zip&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;*&lt;/span&gt;&lt;span&gt;lsts)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    tmp&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;sort&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; zip&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt;*&lt;/span&gt;&lt;span&gt;tmp)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;a&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; range&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DFBFFF;&quot;&gt;10&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;b&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;a&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;b&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;c&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;d&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;e&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;f&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;g&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;h&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;i&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;j&amp;#39;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;c&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;j&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;i&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;h&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;g&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;f&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;e&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;d&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;c&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;b&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt;&amp;#39;a&amp;#39;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt;shuffle&lt;/span&gt;&lt;span&gt;(a)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;for&lt;/span&gt;&lt;span&gt; i&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; range&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;len&lt;/span&gt;&lt;span&gt;(a))&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;    print&lt;/span&gt;&lt;span&gt; a[i]&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt;b[i]&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt;c[i]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;a&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt;b&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt;c&lt;/span&gt;&lt;span style=&quot;color: #F29E74;&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color: #FFCD66;&quot;&gt; cosort&lt;/span&gt;&lt;span&gt;(a&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt;b&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt;c)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;print&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt;for&lt;/span&gt;&lt;span&gt; i&lt;/span&gt;&lt;span style=&quot;color: #FFA659;&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt; range&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;len&lt;/span&gt;&lt;span&gt;(a))&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;    print&lt;/span&gt;&lt;span&gt; a[i]&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt;b[i]&lt;/span&gt;&lt;span style=&quot;color: #CCCAC2B3;&quot;&gt;,&lt;/span&gt;&lt;span&gt;c[i]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Original post on &lt;a rel=&quot;external&quot; href=&quot;https://web.archive.org/web/20140602142618/http://eftrunk.blogspot.com/&quot;&gt;web.archive.org&lt;/a&gt;.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Install fennec on Nokia N9</title>
        <published>2012-01-31T00:00:00+00:00</published>
        <updated>2012-01-31T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/fennec-n9/"/>
        <id>https://stefsmeets.nl/posts/fennec-n9/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/fennec-n9/">&lt;p&gt;Compiled deb packages have kindly been provided here: &lt;a rel=&quot;external&quot; href=&quot;https://web.archive.org/web/20130416052427/http://romaxa.bolshe.net/fennec/&quot;&gt;http://romaxa.bolshe.net/fennec/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Either download on your phone directly or dump it on there via USB. Next make sure to disconnect the USB cable and open up the terminal.&lt;/p&gt;
&lt;p&gt;First we need root:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;devel-su&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Password: rootme&lt;/p&gt;
&lt;p&gt;&lt;code&gt;vi /etc/apt/sources.list.d/harmattan-dev.list&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;hit &lt;kbd&gt;i&lt;/kbd&gt; for text entering mode and add the following repo:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;deb http://harmattan-dev.nokia.com/ harmattan/sdk free non-free&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;hit &lt;kbd&gt;esc&lt;/kbd&gt; to exit text-entering mode. The file is automatically saved. Doing so will add this source to the package manager apt. This particular repo gives us access to a library we need for installing Fennec, libpango, a library for laying out and rendering of text:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;apt-get install libpango1.0-0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now, it&#39;s time to install Fennec:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cd /home/user/MyDocs&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;or if you downloaded it on the phone:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F28779;&quot;&gt;cd&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; /home/user/MyDocs/Download&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;dpkg&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -i&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; fennec_12.0~a1_armel.deb&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;(or whatever version you downloaded, just hit &lt;kbd&gt;f&lt;/kbd&gt; and &lt;kbd&gt;tab&lt;/kbd&gt; :) )&lt;/p&gt;
&lt;p&gt;And it should run with no errors and the Fennec icon will appear in your home screen!&lt;/p&gt;
&lt;p&gt;Original post on &lt;a rel=&quot;external&quot; href=&quot;https://web.archive.org/web/20140602142618/http://eftrunk.blogspot.com/&quot;&gt;web.archive.org&lt;/a&gt;.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>How to fix &quot;error trying to exec f951: execvp: No such file or directory&quot;</title>
        <published>2011-11-24T00:00:00+00:00</published>
        <updated>2011-11-24T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/posts/fortran-f951/"/>
        <id>https://stefsmeets.nl/posts/fortran-f951/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/posts/fortran-f951/">&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;error trying to exec &amp;#39;f951&amp;#39;: execvp: No such file or directory&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;error trying to exec &amp;#39;cc1&amp;#39;: execvp: No such file or directory&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I was trying to compile a program today on OS X Lion using gfortran, but to my disappointment I got these errors every time. I am not really familiar with this kind of stuff, so I wasn&#39;t sure where to look at first. Even when trying to compile a simple &lt;code&gt;hello_world&lt;/code&gt; program.&lt;/p&gt;
&lt;p&gt;The internet wasn&#39;t very useful either. Google gave me barely anything :-(&lt;/p&gt;
&lt;h2 id=&quot;the-solution&quot;&gt;The solution&lt;/h2&gt;
&lt;p&gt;First I removed xcode, with the idea to reinstall it later:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo /Developer/Library/uninstall-devtools -mode=all&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;After that I dug into my &lt;code&gt;/usr/local/lib&lt;/code&gt; and &lt;code&gt;/usr/bin&lt;/code&gt; folders and removed any reference to &lt;code&gt;gcc&lt;/code&gt;, &lt;code&gt;gcov&lt;/code&gt;, &lt;code&gt;g++&lt;/code&gt;, &lt;code&gt;cpp&lt;/code&gt; and &lt;code&gt;gfortran&lt;/code&gt;, which are all part of the gcc package.&lt;/p&gt;
&lt;p&gt;I also removed all references to &lt;code&gt;llvm-*&lt;/code&gt; (where &lt;code&gt;*&lt;/code&gt; can be &lt;code&gt;gcc&lt;/code&gt;, &lt;code&gt;g++&lt;/code&gt;, etc). This comes with xcode, not really sure what this is used for. And finally I removed the &lt;code&gt;libgcc/&lt;/code&gt; folder and all &lt;code&gt;libgfortran&lt;/code&gt;-related files in &lt;code&gt;/usr/local/lib&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;I rebooted for good measure.&lt;/p&gt;
&lt;p&gt;Next I got Xcode 4 from the Appstore (for OS X 10.6 and lower, it&#39;s available on &lt;a rel=&quot;external&quot; href=&quot;https://web.archive.org/web/20140612021257/http://developer.apple.com/devcenter/mac/index.action&quot;&gt;the Mac Dev Center&lt;/a&gt; and installed it. Again I went into my &lt;code&gt;/usr/bin/&lt;/code&gt; and removed the symlink xcode made to their (incomplete, it misses gfortran) &lt;code&gt;gcc&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;I downloaded and installed &lt;code&gt;gcc-lion.tar.gz&lt;/code&gt; from &lt;a rel=&quot;external&quot; href=&quot;https://web.archive.org/web/20140612021257/http://hpc.sourceforge.net/&quot;&gt;HPC&lt;/a&gt; and installed using:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;gunzip&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; gcc-lion.tar.gz&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #73D0FF;&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; tar&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -xvf&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; gcc-bin.tar&lt;/span&gt;&lt;span style=&quot;color: #95E6CB;&quot;&gt; -C&lt;/span&gt;&lt;span style=&quot;color: #D5FF80;&quot;&gt; /&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After that, everything seemed to work! There is without doubt a faster way to fix it, but after trying to fix it for a few hours, I&#39;m glad it now works! :-)&lt;/p&gt;
&lt;h2 id=&quot;what-else&quot;&gt;What else?&lt;/h2&gt;
&lt;p&gt;If gcc gives an error that looks something like this:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CCCAC2; background-color: #1F2430;&quot; &gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;ld: symbol(s) not found for architecture x86_64&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;collect2: ld returned 1 exit status,&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;an explanation can be found &lt;a rel=&quot;external&quot; href=&quot;https://web.archive.org/web/20140612021257/http://stackoverflow.com/questions/8034568/undefined-symbols-for-architecture-x86-64-which-architecture-should-i-use&quot;&gt;here&lt;/a&gt;. Basically, the &lt;code&gt;lstdc++&lt;/code&gt; parameter has to be given, so it uses the correct library. Alternativey, &lt;code&gt;g++&lt;/code&gt; or &lt;code&gt;clang++&lt;/code&gt; can be used directly.&lt;/p&gt;
&lt;h2 id=&quot;useful-links&quot;&gt;Useful links:&lt;/h2&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http://www.webmo.net/support/fortran_osx.html&quot;&gt;http://www.webmo.net/support/fortran_osx.html&lt;/a&gt;
&lt;a rel=&quot;external&quot; href=&quot;http://hpc.sourceforge.net/&quot;&gt;http://hpc.sourceforge.net/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Original post on &lt;a rel=&quot;external&quot; href=&quot;https://web.archive.org/web/20140602142618/http://eftrunk.blogspot.com/&quot;&gt;web.archive.org&lt;/a&gt;.&lt;/p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Hexakis(urea-kO)zinc(II) dinitrate at 110 and 250 K: uniaxial negative thermal expansion</title>
        <published>2011-02-15T00:00:00+00:00</published>
        <updated>2011-02-15T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/zinc-complex/"/>
        <id>https://stefsmeets.nl/articles/zinc-complex/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/zinc-complex/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>Temperature-dependent analysis of thermal motion, disorder and structures of tris(ethylenediamine)zinc(II) sulfate and tris(ethylenediamine)copper(II) sulfate</title>
        <published>2011-02-01T00:00:00+00:00</published>
        <updated>2011-02-01T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/thermal-motion-analysis/"/>
        <id>https://stefsmeets.nl/articles/thermal-motion-analysis/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/thermal-motion-analysis/"></content>
        
    </entry>
    <entry xml:lang="en">
        <title>catena-Poly[[bis-(ethylenediamine)copper(II)]-u-sulfato]</title>
        <published>2010-06-01T00:00:00+00:00</published>
        <updated>2010-06-01T00:00:00+00:00</updated>
        
        <author>
          <name>Stef Smeets</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://stefsmeets.nl/articles/ethelenediamine-cu-sulphate/"/>
        <id>https://stefsmeets.nl/articles/ethelenediamine-cu-sulphate/</id>
        
        <content type="html" xml:base="https://stefsmeets.nl/articles/ethelenediamine-cu-sulphate/"></content>
        
    </entry>
</feed>
