<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Open Science on INBO Tutorials</title>
		<link>/categories/open-science/</link>
		<description>Recent content in Open Science on INBO Tutorials</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Fri, 21 Feb 2025 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="/categories/open-science/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Containers (1): An Overview</title>
				<link>/tutorials/development_containers1/</link>
				<pubDate>Fri, 21 Feb 2025 00:00:00 +0000</pubDate>
				<guid>/tutorials/development_containers1/</guid>
				<description>&lt;p&gt;You might have heard about &amp;ldquo;containerization&amp;rdquo; with &lt;a href=&#34;https://docs.docker.com&#34;&gt;&lt;strong&gt;Docker&lt;/strong&gt;&lt;/a&gt;.&#xA;Docker has been labeled &amp;ldquo;the &lt;em&gt;Holy Grail&lt;/em&gt; of reproducibility&amp;rdquo; in &lt;a href=&#34;https://arca-dpss.github.io/manual-open-science/docker-chapter.html&#34;&gt;The Open Science Manual by Claudio Zandonella Callegher and Davide Massidda (2023)&lt;/a&gt;.&#xA;Although containerization is an immensely useful Open Science tool worth striving for, the &lt;em&gt;Holy Grail&lt;/em&gt; is an inaccurate metaphor, because&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;(i) Unlike The Grail, Docker is easy to find and accessible.&lt;/li&gt;&#xA;&lt;li&gt;(ii) Docker alone does not make a reproducible workflow; some of its capability is occasionally confused with package version management.&lt;/li&gt;&#xA;&lt;li&gt;(iii) Docker has issues, some of them mitigated by configuration adjustment or switching to &amp;ldquo;Podman&amp;rdquo;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;figure&gt;&#xA;&lt;img src=&#34;../../images/tutorials/development_docker/Gemini_Generated_Image_ngoz1wngoz1wngoz.jpg&#34; alt=&#34;build&#34; /&gt;&#xA;&lt;figcaption aria-hidden=&#34;true&#34;&gt;I could not resist generating&lt;sup id=&#34;fnref:gemini&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:gemini&#34; role=&#34;doc-noteref&#34;&gt;*&lt;/a&gt;&lt;/sup&gt; a catchy image on this, just to make this tutorial seem a little less dull. &lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Time to explore what containers really are, and what they are not.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Containers (2): Running Existing Containers</title>
				<link>/tutorials/development_containers2_run/</link>
				<pubDate>Fri, 21 Feb 2025 00:00:00 +0000</pubDate>
				<guid>/tutorials/development_containers2_run/</guid>
				<description>&lt;p&gt;Docker is about assembling and working in containers.&#xA;&amp;ldquo;Living&amp;rdquo; in containers.&#xA;Or, rather, you can think of this as living in a &lt;a href=&#34;https://parametric-architecture.com/tiny-house-movement&#34;&gt;&amp;ldquo;tiny home&amp;rdquo;, or &amp;ldquo;mobile home&amp;rdquo;&lt;/a&gt;.&#xA;(Let&amp;rsquo;s call it a fancy caravan.)&#xA;In the simple, but comfortable case, you do not get to pick a general design or to choose all details of the interior: you just take that wheeled cabine &amp;ldquo;as is&amp;rdquo; from a tiny home reseller.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;img src=&#34;../../images/tutorials/development_docker/docker_metaphor_tiny_space.jpg&#34; alt=&#34;Black/white image of a tiny home as a metaphor for software containerization.&#34; /&gt;&#xA;&lt;figcaption aria-hidden=&#34;true&#34;&gt;A tiny home close to &#34;Gare Maritime&#34;, Brussels, February 2025.&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Just as a tiny home is a mini-version of an immobile house, a container can be thought of as a miniature computer which can be transferred to other computing environments.&#xA;The good news:&#xA;there are a gazillion &lt;strong&gt;Docker images available&lt;/strong&gt; on repositories like &lt;a href=&#34;https://hub.docker.com&#34;&gt;Docker Hub&lt;/a&gt; or &lt;a href=&#34;https://quay.io&#34;&gt;Quay&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Containers (3): Building Custom Containers</title>
				<link>/tutorials/development_containers3_build/</link>
				<pubDate>Fri, 21 Feb 2025 00:00:00 +0000</pubDate>
				<guid>/tutorials/development_containers3_build/</guid>
				<description>&lt;p&gt;By now, you &lt;a href=&#34;/tutorials/development_containers1/#sec-installation&#34;&gt;will have successfully installed&lt;/a&gt; Docker or &lt;a href=&#34;/tutorials/development_containers4_podman/&#34;&gt;Podman&lt;/a&gt;.&#xA;You hopefully succeeded in &lt;a href=&#34;/tutorials/development_containers2_run/&#34;&gt;running others&amp;rsquo; containers&lt;/a&gt;, e.g. from a container repository.&lt;/p&gt;&#xA;&lt;p&gt;Next, it is time to customize your container.&lt;/p&gt;&#xA;&lt;p&gt;To give you a metaphor to work on: imagine you have a nice little DIY project for your garage workshop.&#xA;This time, you would like to build your own &lt;a href=&#34;https://en.wikipedia.org/wiki/Matryoshka_doll&#34;&gt;Matryoshka dolls&lt;/a&gt; (матрёшка, stacking dolls, a great allegory for recursion).&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;img src=&#34;https://images.unsplash.com/photo-1586010135736-c16373adf060?q=80&#34; alt=&#34;Photo of a set of Matryoshka dolls.&#34; /&gt;&#xA;&lt;figcaption aria-hidden=&#34;true&#34;&gt;(Photo by &lt;a href=&#34;https://unsplash.com/@ilmatar?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash&#34;&gt;Iza Gawrych&lt;/a&gt; on &lt;a href=&#34;https://unsplash.com/photos/a-group-of-blue-and-gold-vases-sitting-on-top-of-a-table-oL3O2PybLoo?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash&#34;&gt;Unsplash&lt;/a&gt;)&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Like all good DIY, you do not fully start from scratch: you start with a blueprint which someone else has created, or general building instructions.&#xA;You usually do not grow your own trees to get the wood, you buy wooden blocks of approximately the right size; neither do you mix paint from elemental ingredients, you assemble what others have to offer.&#xA;But with those ingredients, you customize your making and end up with a very individual creation which, ideally, is exactly what you had in mind.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Containers (4): Containers with Podman</title>
				<link>/tutorials/development_containers4_podman/</link>
				<pubDate>Fri, 21 Feb 2025 00:00:00 +0000</pubDate>
				<guid>/tutorials/development_containers4_podman/</guid>
				<description>&lt;p&gt;In this cluster of tutorials, you might have &lt;a href=&#34;/tutorials/development_containers1/&#34;&gt;gotten a general overview on containers&lt;/a&gt;, and installed Docker.&#xA;You can find instructions on &lt;a href=&#34;/tutorials/development_containers2_run/&#34;&gt;how to run existing images&lt;/a&gt;, and take this further to &lt;a href=&#34;/tutorials/development_containers3_build/&#34;&gt;building custom containers&lt;/a&gt;.&#xA;And during the installation and use of Docker, you might have been annoyed by the mandatory administrator mode, or quirks of the Desktop App.&#xA;Or you might value fully free and open source software, like I do.&lt;/p&gt;&#xA;&lt;p&gt;Luckily, Docker is not a monolith.&#xA;There are alternative approaches to containerization which mitigate some of the Docker limitations and disadvantages.&#xA;In this tutorial, I will present &lt;a href=&#34;https://podman.io&#34;&gt;Podman&lt;/a&gt;, a Docker alternative which I personally use the most (besides occasionally turning to &lt;a href=&#34;https://buildah.io&#34;&gt;&amp;ldquo;buildah&amp;rdquo;&lt;/a&gt;).&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
