<!DOCTYPE html>

<html class="no-js" lang="en-US">

	<head>

		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0" >

		<link rel="profile" href="https://gmpg.org/xfn/11">

		<title>Jeroen Leenarts &#8211; An occasional blog post on a tech topic related to iOS, Mac and software development.</title>
<meta name='robots' content='max-image-preview:large' />
<link rel='dns-prefetch' href='//s.w.org' />
<link rel="alternate" type="application/rss+xml" title="Jeroen Leenarts &raquo; Feed" href="https://leenarts.net/feed/" />
<link rel="alternate" type="application/rss+xml" title="Jeroen Leenarts &raquo; Comments Feed" href="https://leenarts.net/comments/feed/" />
		<script>
			window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/13.1.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/13.1.0\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/leenarts.net\/wp-includes\/js\/wp-emoji-release.min.js?ver=5.8.13"}};
			!function(e,a,t){var n,r,o,i=a.createElement("canvas"),p=i.getContext&&i.getContext("2d");function s(e,t){var a=String.fromCharCode;p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,e),0,0);e=i.toDataURL();return p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,t),0,0),e===i.toDataURL()}function c(e){var t=a.createElement("script");t.src=e,t.defer=t.type="text/javascript",a.getElementsByTagName("head")[0].appendChild(t)}for(o=Array("flag","emoji"),t.supports={everything:!0,everythingExceptFlag:!0},r=0;r<o.length;r++)t.supports[o[r]]=function(e){if(!p||!p.fillText)return!1;switch(p.textBaseline="top",p.font="600 32px Arial",e){case"flag":return s([127987,65039,8205,9895,65039],[127987,65039,8203,9895,65039])?!1:!s([55356,56826,55356,56819],[55356,56826,8203,55356,56819])&&!s([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]);case"emoji":return!s([10084,65039,8205,55357,56613],[10084,65039,8203,55357,56613])}return!1}(o[r]),t.supports.everything=t.supports.everything&&t.supports[o[r]],"flag"!==o[r]&&(t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&t.supports[o[r]]);t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady=!1,t.readyCallback=function(){t.DOMReady=!0},t.supports.everything||(n=function(){t.readyCallback()},a.addEventListener?(a.addEventListener("DOMContentLoaded",n,!1),e.addEventListener("load",n,!1)):(e.attachEvent("onload",n),a.attachEvent("onreadystatechange",function(){"complete"===a.readyState&&t.readyCallback()})),(n=t.source||{}).concatemoji?c(n.concatemoji):n.wpemoji&&n.twemoji&&(c(n.twemoji),c(n.wpemoji)))}(window,document,window._wpemojiSettings);
		</script>
		<style>
img.wp-smiley,
img.emoji {
	display: inline !important;
	border: none !important;
	box-shadow: none !important;
	height: 1em !important;
	width: 1em !important;
	margin: 0 .07em !important;
	vertical-align: -0.1em !important;
	background: none !important;
	padding: 0 !important;
}
</style>
	<link rel='stylesheet' id='wp-block-library-css'  href='https://leenarts.net/wp-includes/css/dist/block-library/style.min.css?ver=5.8.13' media='all' />
<link rel='stylesheet' id='prismatic-blocks-css'  href='https://leenarts.net/wp-content/plugins/prismatic/css/styles-blocks.css?ver=5.8.13' media='all' />
<link rel='stylesheet' id='twentytwenty-style-css'  href='https://leenarts.net/wp-content/themes/twentytwenty/style.css?ver=1.8' media='all' />
<style id='twentytwenty-style-inline-css'>
.color-accent,.color-accent-hover:hover,.color-accent-hover:focus,:root .has-accent-color,.has-drop-cap:not(:focus):first-letter,.wp-block-button.is-style-outline,a { color: #cd2653; }blockquote,.border-color-accent,.border-color-accent-hover:hover,.border-color-accent-hover:focus { border-color: #cd2653; }button,.button,.faux-button,.wp-block-button__link,.wp-block-file .wp-block-file__button,input[type="button"],input[type="reset"],input[type="submit"],.bg-accent,.bg-accent-hover:hover,.bg-accent-hover:focus,:root .has-accent-background-color,.comment-reply-link { background-color: #cd2653; }.fill-children-accent,.fill-children-accent * { fill: #cd2653; }body,.entry-title a,:root .has-primary-color { color: #000000; }:root .has-primary-background-color { background-color: #000000; }cite,figcaption,.wp-caption-text,.post-meta,.entry-content .wp-block-archives li,.entry-content .wp-block-categories li,.entry-content .wp-block-latest-posts li,.wp-block-latest-comments__comment-date,.wp-block-latest-posts__post-date,.wp-block-embed figcaption,.wp-block-image figcaption,.wp-block-pullquote cite,.comment-metadata,.comment-respond .comment-notes,.comment-respond .logged-in-as,.pagination .dots,.entry-content hr:not(.has-background),hr.styled-separator,:root .has-secondary-color { color: #6d6d6d; }:root .has-secondary-background-color { background-color: #6d6d6d; }pre,fieldset,input,textarea,table,table *,hr { border-color: #dcd7ca; }caption,code,code,kbd,samp,.wp-block-table.is-style-stripes tbody tr:nth-child(odd),:root .has-subtle-background-background-color { background-color: #dcd7ca; }.wp-block-table.is-style-stripes { border-bottom-color: #dcd7ca; }.wp-block-latest-posts.is-grid li { border-top-color: #dcd7ca; }:root .has-subtle-background-color { color: #dcd7ca; }body:not(.overlay-header) .primary-menu > li > a,body:not(.overlay-header) .primary-menu > li > .icon,.modal-menu a,.footer-menu a, .footer-widgets a,#site-footer .wp-block-button.is-style-outline,.wp-block-pullquote:before,.singular:not(.overlay-header) .entry-header a,.archive-header a,.header-footer-group .color-accent,.header-footer-group .color-accent-hover:hover { color: #cd2653; }.social-icons a,#site-footer button:not(.toggle),#site-footer .button,#site-footer .faux-button,#site-footer .wp-block-button__link,#site-footer .wp-block-file__button,#site-footer input[type="button"],#site-footer input[type="reset"],#site-footer input[type="submit"] { background-color: #cd2653; }.header-footer-group,body:not(.overlay-header) #site-header .toggle,.menu-modal .toggle { color: #000000; }body:not(.overlay-header) .primary-menu ul { background-color: #000000; }body:not(.overlay-header) .primary-menu > li > ul:after { border-bottom-color: #000000; }body:not(.overlay-header) .primary-menu ul ul:after { border-left-color: #000000; }.site-description,body:not(.overlay-header) .toggle-inner .toggle-text,.widget .post-date,.widget .rss-date,.widget_archive li,.widget_categories li,.widget cite,.widget_pages li,.widget_meta li,.widget_nav_menu li,.powered-by-wordpress,.to-the-top,.singular .entry-header .post-meta,.singular:not(.overlay-header) .entry-header .post-meta a { color: #6d6d6d; }.header-footer-group pre,.header-footer-group fieldset,.header-footer-group input,.header-footer-group textarea,.header-footer-group table,.header-footer-group table *,.footer-nav-widgets-wrapper,#site-footer,.menu-modal nav *,.footer-widgets-outer-wrapper,.footer-top { border-color: #dcd7ca; }.header-footer-group table caption,body:not(.overlay-header) .header-inner .toggle-wrapper::before { background-color: #dcd7ca; }
</style>
<link rel='stylesheet' id='twentytwenty-print-style-css'  href='https://leenarts.net/wp-content/themes/twentytwenty/print.css?ver=1.8' media='print' />
<script src='https://leenarts.net/wp-content/themes/twentytwenty/assets/js/index.js?ver=1.8' id='twentytwenty-js-js' async></script>
<link rel="https://api.w.org/" href="https://leenarts.net/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://leenarts.net/ulysses.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://leenarts.net/wp-includes/wlwmanifest.xml" /> 
<meta name="generator" content="WordPress 5.8.13" />
	<script>document.documentElement.className = document.documentElement.className.replace( 'no-js', 'js' );</script>
	<link rel="icon" href="https://leenarts.net/wp-content/uploads/2020/02/cropped-jeroen-512-1-32x32.jpg" sizes="32x32" />
<link rel="icon" href="https://leenarts.net/wp-content/uploads/2020/02/cropped-jeroen-512-1-192x192.jpg" sizes="192x192" />
<link rel="apple-touch-icon" href="https://leenarts.net/wp-content/uploads/2020/02/cropped-jeroen-512-1-180x180.jpg" />
<meta name="msapplication-TileImage" content="https://leenarts.net/wp-content/uploads/2020/02/cropped-jeroen-512-1-270x270.jpg" />
		<style id="wp-custom-css">
			.entry-content > *:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.is-style-wide) {
    max-width: 87rem;
    width: calc(100% - 8rem);
}		</style>
		
	</head>

	<body data-rsssl=1 class="home blog wp-custom-logo wp-embed-responsive enable-search-modal has-no-pagination showing-comments show-avatars footer-top-visible">

		<a class="skip-link screen-reader-text" href="#site-content">Skip to the content</a>
		<header id="site-header" class="header-footer-group" role="banner">

			<div class="header-inner section-inner">

				<div class="header-titles-wrapper">

					
						<button class="toggle search-toggle mobile-search-toggle" data-toggle-target=".search-modal" data-toggle-body-class="showing-search-modal" data-set-focus=".search-modal .search-field" aria-expanded="false">
							<span class="toggle-inner">
								<span class="toggle-icon">
									<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="23" height="23" viewBox="0 0 23 23"><path d="M38.710696,48.0601792 L43,52.3494831 L41.3494831,54 L37.0601792,49.710696 C35.2632422,51.1481185 32.9839107,52.0076499 30.5038249,52.0076499 C24.7027226,52.0076499 20,47.3049272 20,41.5038249 C20,35.7027226 24.7027226,31 30.5038249,31 C36.3049272,31 41.0076499,35.7027226 41.0076499,41.5038249 C41.0076499,43.9839107 40.1481185,46.2632422 38.710696,48.0601792 Z M36.3875844,47.1716785 C37.8030221,45.7026647 38.6734666,43.7048964 38.6734666,41.5038249 C38.6734666,36.9918565 35.0157934,33.3341833 30.5038249,33.3341833 C25.9918565,33.3341833 22.3341833,36.9918565 22.3341833,41.5038249 C22.3341833,46.0157934 25.9918565,49.6734666 30.5038249,49.6734666 C32.7048964,49.6734666 34.7026647,48.8030221 36.1716785,47.3875844 C36.2023931,47.347638 36.2360451,47.3092237 36.2726343,47.2726343 C36.3092237,47.2360451 36.347638,47.2023931 36.3875844,47.1716785 Z" transform="translate(-20 -31)" /></svg>								</span>
								<span class="toggle-text">Search</span>
							</span>
						</button><!-- .search-toggle -->

					
					<div class="header-titles">

						<h1 class="site-logo"><a href="https://leenarts.net/" class="custom-logo-link" rel="home" aria-current="page"><img width="512" height="384" src="https://leenarts.net/wp-content/uploads/2020/02/cropped-jeroen-512-3.jpg" class="custom-logo" alt="Jeroen Leenarts" srcset="https://leenarts.net/wp-content/uploads/2020/02/cropped-jeroen-512-3.jpg 512w, https://leenarts.net/wp-content/uploads/2020/02/cropped-jeroen-512-3-300x225.jpg 300w" sizes="(max-width: 512px) 100vw, 512px" /></a><span class="screen-reader-text">Jeroen Leenarts</span></h1><div class="site-description">An occasional blog post on a tech topic related to iOS, Mac and software development.</div><!-- .site-description -->
					</div><!-- .header-titles -->

					<button class="toggle nav-toggle mobile-nav-toggle" data-toggle-target=".menu-modal"  data-toggle-body-class="showing-menu-modal" aria-expanded="false" data-set-focus=".close-nav-toggle">
						<span class="toggle-inner">
							<span class="toggle-icon">
								<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="26" height="7" viewBox="0 0 26 7"><path fill-rule="evenodd" d="M332.5,45 C330.567003,45 329,43.4329966 329,41.5 C329,39.5670034 330.567003,38 332.5,38 C334.432997,38 336,39.5670034 336,41.5 C336,43.4329966 334.432997,45 332.5,45 Z M342,45 C340.067003,45 338.5,43.4329966 338.5,41.5 C338.5,39.5670034 340.067003,38 342,38 C343.932997,38 345.5,39.5670034 345.5,41.5 C345.5,43.4329966 343.932997,45 342,45 Z M351.5,45 C349.567003,45 348,43.4329966 348,41.5 C348,39.5670034 349.567003,38 351.5,38 C353.432997,38 355,39.5670034 355,41.5 C355,43.4329966 353.432997,45 351.5,45 Z" transform="translate(-329 -38)" /></svg>							</span>
							<span class="toggle-text">Menu</span>
						</span>
					</button><!-- .nav-toggle -->

				</div><!-- .header-titles-wrapper -->

				<div class="header-navigation-wrapper">

					
							<nav class="primary-menu-wrapper" aria-label="Horizontal" role="navigation">

								<ul class="primary-menu reset-list-style">

								<li class="page_item page-item-2 page_item_has_children menu-item-has-children"><a href="https://leenarts.net/about/">About Me</a><span class="icon"></span>
<ul class='children'>
	<li class="page_item page-item-200"><a href="https://leenarts.net/about/other-activities/">Other activities</a></li>
	<li class="page_item page-item-8"><a href="https://leenarts.net/about/work-history/">Work history</a></li>
	<li class="page_item page-item-3"><a href="https://leenarts.net/about/getintouch/">Contact</a></li>
</ul>
</li>

								</ul>

							</nav><!-- .primary-menu-wrapper -->

						
						<div class="header-toggles hide-no-js">

						
							<div class="toggle-wrapper search-toggle-wrapper">

								<button class="toggle search-toggle desktop-search-toggle" data-toggle-target=".search-modal" data-toggle-body-class="showing-search-modal" data-set-focus=".search-modal .search-field" aria-expanded="false">
									<span class="toggle-inner">
										<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="23" height="23" viewBox="0 0 23 23"><path d="M38.710696,48.0601792 L43,52.3494831 L41.3494831,54 L37.0601792,49.710696 C35.2632422,51.1481185 32.9839107,52.0076499 30.5038249,52.0076499 C24.7027226,52.0076499 20,47.3049272 20,41.5038249 C20,35.7027226 24.7027226,31 30.5038249,31 C36.3049272,31 41.0076499,35.7027226 41.0076499,41.5038249 C41.0076499,43.9839107 40.1481185,46.2632422 38.710696,48.0601792 Z M36.3875844,47.1716785 C37.8030221,45.7026647 38.6734666,43.7048964 38.6734666,41.5038249 C38.6734666,36.9918565 35.0157934,33.3341833 30.5038249,33.3341833 C25.9918565,33.3341833 22.3341833,36.9918565 22.3341833,41.5038249 C22.3341833,46.0157934 25.9918565,49.6734666 30.5038249,49.6734666 C32.7048964,49.6734666 34.7026647,48.8030221 36.1716785,47.3875844 C36.2023931,47.347638 36.2360451,47.3092237 36.2726343,47.2726343 C36.3092237,47.2360451 36.347638,47.2023931 36.3875844,47.1716785 Z" transform="translate(-20 -31)" /></svg>										<span class="toggle-text">Search</span>
									</span>
								</button><!-- .search-toggle -->

							</div>

							
						</div><!-- .header-toggles -->
						
				</div><!-- .header-navigation-wrapper -->

			</div><!-- .header-inner -->

			<div class="search-modal cover-modal header-footer-group" data-modal-target-string=".search-modal">

	<div class="search-modal-inner modal-inner">

		<div class="section-inner">

			<form role="search" aria-label="Search for:" method="get" class="search-form" action="https://leenarts.net/">
	<label for="search-form-1">
		<span class="screen-reader-text">Search for:</span>
		<input type="search" id="search-form-1" class="search-field" placeholder="Search &hellip;" value="" name="s" />
	</label>
	<input type="submit" class="search-submit" value="Search" />
</form>

			<button class="toggle search-untoggle close-search-toggle fill-children-current-color" data-toggle-target=".search-modal" data-toggle-body-class="showing-search-modal" data-set-focus=".search-modal .search-field">
				<span class="screen-reader-text">Close search</span>
				<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><polygon fill="" fill-rule="evenodd" points="6.852 7.649 .399 1.195 1.445 .149 7.899 6.602 14.352 .149 15.399 1.195 8.945 7.649 15.399 14.102 14.352 15.149 7.899 8.695 1.445 15.149 .399 14.102" /></svg>			</button><!-- .search-toggle -->

		</div><!-- .section-inner -->

	</div><!-- .search-modal-inner -->

</div><!-- .menu-modal -->

		</header><!-- #site-header -->

		
<div class="menu-modal cover-modal header-footer-group" data-modal-target-string=".menu-modal">

	<div class="menu-modal-inner modal-inner">

		<div class="menu-wrapper section-inner">

			<div class="menu-top">

				<button class="toggle close-nav-toggle fill-children-current-color" data-toggle-target=".menu-modal" data-toggle-body-class="showing-menu-modal" aria-expanded="false" data-set-focus=".menu-modal">
					<span class="toggle-text">Close Menu</span>
					<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><polygon fill="" fill-rule="evenodd" points="6.852 7.649 .399 1.195 1.445 .149 7.899 6.602 14.352 .149 15.399 1.195 8.945 7.649 15.399 14.102 14.352 15.149 7.899 8.695 1.445 15.149 .399 14.102" /></svg>				</button><!-- .nav-toggle -->

				
					<nav class="mobile-menu" aria-label="Mobile" role="navigation">

						<ul class="modal-menu reset-list-style">

						<li class="page_item page-item-2 page_item_has_children menu-item-has-children"><div class="ancestor-wrapper"><a href="https://leenarts.net/about/">About Me</a><button class="toggle sub-menu-toggle fill-children-current-color" data-toggle-target=".menu-modal .page-item-2 > ul" data-toggle-type="slidetoggle" data-toggle-duration="250" aria-expanded="false"><span class="screen-reader-text">Show sub menu</span><svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="20" height="12" viewBox="0 0 20 12"><polygon fill="" fill-rule="evenodd" points="1319.899 365.778 1327.678 358 1329.799 360.121 1319.899 370.021 1310 360.121 1312.121 358" transform="translate(-1310 -358)" /></svg></button></div><!-- .ancestor-wrapper -->
<ul class='children'>
	<li class="page_item page-item-200"><div class="ancestor-wrapper"><a href="https://leenarts.net/about/other-activities/">Other activities</a></div><!-- .ancestor-wrapper --></li>
	<li class="page_item page-item-8"><div class="ancestor-wrapper"><a href="https://leenarts.net/about/work-history/">Work history</a></div><!-- .ancestor-wrapper --></li>
	<li class="page_item page-item-3"><div class="ancestor-wrapper"><a href="https://leenarts.net/about/getintouch/">Contact</a></div><!-- .ancestor-wrapper --></li>
</ul>
</li>

						</ul>

					</nav>

					
			</div><!-- .menu-top -->

			<div class="menu-bottom">

				
			</div><!-- .menu-bottom -->

		</div><!-- .menu-wrapper -->

	</div><!-- .menu-modal-inner -->

</div><!-- .menu-modal -->

<main id="site-content" role="main">

	
<article class="post-1027 post type-post status-publish format-standard hentry category-random" id="post-1027">

	
<header class="entry-header has-text-align-center">

	<div class="entry-header-inner section-inner medium">

		
			<div class="entry-categories">
				<span class="screen-reader-text">Categories</span>
				<div class="entry-categories-inner">
					<a href="https://leenarts.net/category/random/" rel="category tag">Random thoughts</a>				</div><!-- .entry-categories-inner -->
			</div><!-- .entry-categories -->

			<h2 class="entry-title heading-size-1"><a href="https://leenarts.net/2021/09/11/keyboardio-atreus-review/">KeyboardIO Atreus review</a></h2>
		<div class="post-meta-wrapper post-meta-single post-meta-single-top">

			<ul class="post-meta">

									<li class="post-author meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post author</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewBox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
						<span class="meta-text">
							By <a href="https://leenarts.net/author/admin/">Jeroen</a>						</span>
					</li>
										<li class="post-date meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post date</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.15625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
						<span class="meta-text">
							<a href="https://leenarts.net/2021/09/11/keyboardio-atreus-review/">September 11, 2021 22:55</a>
						</span>
					</li>
										<li class="post-comment-link meta-wrapper">
						<span class="meta-icon">
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewBox="0 0 19 19"><path d="M9.43016863,13.2235931 C9.58624731,13.094699 9.7823475,13.0241935 9.98476849,13.0241935 L15.0564516,13.0241935 C15.8581553,13.0241935 16.5080645,12.3742843 16.5080645,11.5725806 L16.5080645,3.44354839 C16.5080645,2.64184472 15.8581553,1.99193548 15.0564516,1.99193548 L3.44354839,1.99193548 C2.64184472,1.99193548 1.99193548,2.64184472 1.99193548,3.44354839 L1.99193548,11.5725806 C1.99193548,12.3742843 2.64184472,13.0241935 3.44354839,13.0241935 L5.76612903,13.0241935 C6.24715123,13.0241935 6.63709677,13.4141391 6.63709677,13.8951613 L6.63709677,15.5301903 L9.43016863,13.2235931 Z M3.44354839,14.766129 C1.67980032,14.766129 0.25,13.3363287 0.25,11.5725806 L0.25,3.44354839 C0.25,1.67980032 1.67980032,0.25 3.44354839,0.25 L15.0564516,0.25 C16.8201997,0.25 18.25,1.67980032 18.25,3.44354839 L18.25,11.5725806 C18.25,13.3363287 16.8201997,14.766129 15.0564516,14.766129 L10.2979143,14.766129 L6.32072889,18.0506004 C5.75274472,18.5196577 4.89516129,18.1156602 4.89516129,17.3790323 L4.89516129,14.766129 L3.44354839,14.766129 Z" /></svg>						</span>
						<span class="meta-text">
							<a href="https://leenarts.net/2021/09/11/keyboardio-atreus-review/#comments">3 Comments<span class="screen-reader-text"> on KeyboardIO Atreus review</span></a>						</span>
					</li>
					
			</ul><!-- .post-meta -->

		</div><!-- .post-meta-wrapper -->

		
	</div><!-- .entry-header-inner -->

</header><!-- .entry-header -->

	<div class="post-inner thin ">

		<div class="entry-content">

			
<p>On august 11, 2021 I took delivery of a KeyboardIO Atreus keyboard.</p>



<figure class="wp-block-image size-large"><a href="https://leenarts.net/wp-content/uploads/2021/09/E3022D7C-FAD0-4D18-9BF3-A42DA2BC7289_1_105_c.jpeg"><img loading="lazy" width="1024" height="650" src="https://leenarts.net/wp-content/uploads/2021/09/E3022D7C-FAD0-4D18-9BF3-A42DA2BC7289_1_105_c-1024x650.jpeg" alt="" class="wp-image-1028" srcset="https://leenarts.net/wp-content/uploads/2021/09/E3022D7C-FAD0-4D18-9BF3-A42DA2BC7289_1_105_c-1024x650.jpeg 1024w, https://leenarts.net/wp-content/uploads/2021/09/E3022D7C-FAD0-4D18-9BF3-A42DA2BC7289_1_105_c-300x190.jpeg 300w, https://leenarts.net/wp-content/uploads/2021/09/E3022D7C-FAD0-4D18-9BF3-A42DA2BC7289_1_105_c-768x487.jpeg 768w, https://leenarts.net/wp-content/uploads/2021/09/E3022D7C-FAD0-4D18-9BF3-A42DA2BC7289_1_105_c.jpeg 1113w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption>My Atreus with palm rest and Qwerty keycaps.</figcaption></figure>



<p>I have been using the Atreus for a month now and I am really starting to get used to it. So this is my one month review.</p>



<p>I ordered the Atreus configured as follows:</p>



<ul><li>Qwerty keycaps</li><li>Maple palmrest</li><li>Kailh Box White switches</li><li>Travel case</li></ul>



<p>Currently I still run default layout as it comes in the box with one modification. I swapped the space and backspace keys. It turned out I am very much a left thumb spacer.</p>



<p>My initial impression were very mixed. Build quality and everything is very nice. The device looks clean, has some decent weight to it and it feels sturdy. Also the palm rest, I instantly was very happy I added it to my order.</p>



<p>But usage wise it does have a steep learning curve. What it most of all did was tell me what bad typing habits I learned over the years. And I really had to do some deliberate training to adjust to this keyboard. A nice side effect is that my typing technique on standard Qwerty layout has drastically improved as well.</p>



<p>I looked into learning an alternative typing layout called Colemak, but after some initial trials I felt I would be better of sticking with standard Qwerty to keep decent interoperability when this thing is not around.</p>



<p>Typing wise it looks and sounds like you expect from a mechanical keyboard. It is loud, especially with the clicky box white switches I have on it. I did experiment with a number of other switches. I tried Cherry browns and Kailh Speed Copper. But on the Atreus I was really missing the clicks with the browns and the speed switches were just too sensitive. Just laying down a finger would register a keypress and I did not like it at all. (On my IQunix L80 I absolutely love the Kailh Speed Copper switches, provided I put a sturdier switch under my spacebar. A Kailh Box White in my case.)</p>



<div class="wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular"><div class="tiled-gallery__gallery"><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:100.00000%"><figure class="tiled-gallery__item"><img alt="" data-height="602" data-id="1029" data-link="https://leenarts.net/?attachment_id=1029" data-url="https://leenarts.net/wp-content/uploads/2021/09/A8600E1A-A326-408A-991F-E4ABDFF807EA_1_105_c-1024x473.jpeg" data-width="1304" src="https://i0.wp.com/leenarts.net/wp-content/uploads/2021/09/A8600E1A-A326-408A-991F-E4ABDFF807EA_1_105_c-1024x473.jpeg?ssl=1" data-amp-layout="responsive"/></figure></div></div><div class="tiled-gallery__row"><div class="tiled-gallery__col" style="flex-basis:100.00000%"><figure class="tiled-gallery__item"><img alt="" data-height="706" data-id="1030" data-link="https://leenarts.net/?attachment_id=1030" data-url="https://leenarts.net/wp-content/uploads/2021/09/E74DE91D-F489-42F0-8018-ADB2089C088C_1_105_c-1024x650.jpeg" data-width="1112" src="https://i1.wp.com/leenarts.net/wp-content/uploads/2021/09/E74DE91D-F489-42F0-8018-ADB2089C088C_1_105_c-1024x650.jpeg?ssl=1" data-amp-layout="responsive"/></figure></div></div></div></div>



<p>So let&#8217;s dive in a bit more on my experience. As said the initial experience was quite bad. I needed the included reference card all the time and my typing speed really tanked. The first week I really felt limited by it. If I needed to get some work done, I would quickly switch to a regular keyboard.</p>



<p>But after deciding to dig into this thing I opted to go for deliberate practice each day. The second week I would do a couple rounds of practice on <a href="https://www.keybr.com/">keybr.com</a> each day. And that has proven to be the right choice. I am not back at my old typing speeds yet, but I am getting there. In the second week I managed to get through my first full day of working on it. That combined with the deliberate practice sessions has been working great for me thus far and I plan on keeping at it until I can really see a steady high speed on keybr with a low number of errors.</p>



<p>All in all I do not regret buying the Atreus. Would I recommend it to anyone. Absolutely not. Do I love this thing? Absolutely.</p>



<p>This is an input device you either need for ergonomic reasons or you just really like the small desk footprint and are willing to put in the effort to adjust to how it works. Because one thing to know with the Atreus is the layering system, eventhough it only has 44 buttons, all usual key presses are available by what is called switching layers. With one key press all keys on my device switch to a different function and I can type brackets on the left side and the right side becomes a sort of numeric pad. And there is a whole lot more you can do with this thing. Currently I am slowly creating a dedicated podcast editing layer strictly tailored to my usage of Hindenburg&#8217;s Journalist Pro software.</p>



<p>Some fun things to note about the Atreus. It is a split columnar layout. Just look at the images in this post and you can see what that is about. But what is not visible is the firmware, it is an Arduino based system, opensource and KeyboardIO also has a graphical user interface available allowing you to do most of the setting and tweaking of the functionality of every single switch on the Atreus.</p>



<p>If you have any questions or things you want me to share my experience on with this keyboard. Let me know, easiest is a DM on Twitter. @leenarts or @appforce1.</p>

		</div><!-- .entry-content -->

	</div><!-- .post-inner -->

	<div class="section-inner">
		
	</div><!-- .section-inner -->

	
</article><!-- .post -->
<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
<article class="post-987 post type-post status-publish format-standard hentry category-random" id="post-987">

	
<header class="entry-header has-text-align-center">

	<div class="entry-header-inner section-inner medium">

		
			<div class="entry-categories">
				<span class="screen-reader-text">Categories</span>
				<div class="entry-categories-inner">
					<a href="https://leenarts.net/category/random/" rel="category tag">Random thoughts</a>				</div><!-- .entry-categories-inner -->
			</div><!-- .entry-categories -->

			<h2 class="entry-title heading-size-1"><a href="https://leenarts.net/2021/03/29/published-ebook-lead-developer/">Published eBook: Lead Developer</a></h2>
		<div class="post-meta-wrapper post-meta-single post-meta-single-top">

			<ul class="post-meta">

									<li class="post-author meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post author</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewBox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
						<span class="meta-text">
							By <a href="https://leenarts.net/author/admin/">Jeroen</a>						</span>
					</li>
										<li class="post-date meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post date</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.15625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
						<span class="meta-text">
							<a href="https://leenarts.net/2021/03/29/published-ebook-lead-developer/">March 29, 2021 10:56</a>
						</span>
					</li>
					
			</ul><!-- .post-meta -->

		</div><!-- .post-meta-wrapper -->

		
	</div><!-- .entry-header-inner -->

</header><!-- .entry-header -->

	<div class="post-inner thin ">

		<div class="entry-content">

			
<p>On march 18 I self published my first book. Lead Developer. And I have been getting some questions on what my proces was.</p>



<p>You can find more info on my book here.</p>



<figure class="wp-block-image size-large"><a href="https://leanpub.com/leaddeveloper/"><img loading="lazy" width="1024" height="576" src="https://leenarts.net/wp-content/uploads/2021/03/book-cover-gumroad-1024x576.jpg" alt="" class="wp-image-988" srcset="https://leenarts.net/wp-content/uploads/2021/03/book-cover-gumroad-1024x576.jpg 1024w, https://leenarts.net/wp-content/uploads/2021/03/book-cover-gumroad-300x169.jpg 300w, https://leenarts.net/wp-content/uploads/2021/03/book-cover-gumroad-768x432.jpg 768w, https://leenarts.net/wp-content/uploads/2021/03/book-cover-gumroad-1200x675.jpg 1200w, https://leenarts.net/wp-content/uploads/2021/03/book-cover-gumroad.jpg 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption>Lead Developer: best practices and tips for lead software developers, by Jeroen Leenarts.</figcaption></figure>



<p>It is really simple. I used LeanPub and just started writing. The benefit of using their platform is that you can write in MarkDown and they take care of the typesetting and making sure you end up with an PDF, ePub and Mobi output.</p>



<p>I wrote the book, which at first launch was a little over 10.000 words in about 3 months time. Since I already had a good set of notes to begin with I knew I had enough content. The first thing I did was create a preliminary table of contents. And based on that I started writing. During the writing I discovered I wanted to group things into three categories. Team, Business and you. Since I wrote everything in Markdown it was very easy to adjust.</p>



<p>I also wanted some graphical content and a book cover. For that I asked a creative friend to draw up some avatars. I really like the results Linda Udding created. And we also made an agreement on what I will pay to her for her work. Since this is a first book, we both did not know how well it would work out. So we agreed on a profit cut until we reach a level of payment that is in line with market standard for the amount of work she did. Since I already had my book&#8217;s content divided into three parts by that time it was easy to convert that format into a creative brief for Linda. She was able to create the work in no time at all.</p>



<p>When I set out to write this book I planned on doing it just for the fun of it. If I help on person, great. If I sell no copies at all, that&#8217;s great as well. My main goals with writing the book are:</p>



<ul><li>Structure my own learnings on the topic of being a lead software developer to become a better one myself.</li><li>Learn about what it takes to write something resembling a book.</li><li>Have something meaningful on offer when someone asks how they can support my online activities. Buy my book sounds way better to me compared to &#8220;just give me some money&#8221;.</li><li>Be able to put &#8220;published book author&#8221; on my resume.</li><li>Learn about what it takes to market a product to some level of succes.</li></ul>



<p>Any income gained from this book is a happy coincidence. And, at the time of this writing I sold over 60 copies and I am looking into ways to market my book more. I hope to hit 100 soon. But who knows, it all depends on wether I can make online appearances, get my book linked more by others. Advice is still welcome at this stage, I have not found &#8220;the best way&#8221; to do this on a shoestring budget.</p>

		</div><!-- .entry-content -->

	</div><!-- .post-inner -->

	<div class="section-inner">
		
	</div><!-- .section-inner -->

	
</article><!-- .post -->
<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
<article class="post-973 post type-post status-publish format-standard has-post-thumbnail hentry category-random tag-core-data tag-donny-wals tag-workshop" id="post-973">

	
<header class="entry-header has-text-align-center">

	<div class="entry-header-inner section-inner medium">

		
			<div class="entry-categories">
				<span class="screen-reader-text">Categories</span>
				<div class="entry-categories-inner">
					<a href="https://leenarts.net/category/random/" rel="category tag">Random thoughts</a>				</div><!-- .entry-categories-inner -->
			</div><!-- .entry-categories -->

			<h2 class="entry-title heading-size-1"><a href="https://leenarts.net/2021/01/20/ios-core-data-workshop/">iOS Core Data Workshop</a></h2>
		<div class="post-meta-wrapper post-meta-single post-meta-single-top">

			<ul class="post-meta">

									<li class="post-author meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post author</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewBox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
						<span class="meta-text">
							By <a href="https://leenarts.net/author/admin/">Jeroen</a>						</span>
					</li>
										<li class="post-date meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post date</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.15625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
						<span class="meta-text">
							<a href="https://leenarts.net/2021/01/20/ios-core-data-workshop/">January 20, 2021 15:30</a>
						</span>
					</li>
					
			</ul><!-- .post-meta -->

		</div><!-- .post-meta-wrapper -->

		
	</div><!-- .entry-header-inner -->

</header><!-- .entry-header -->

	<figure class="featured-media">

		<div class="featured-media-inner section-inner medium">

			<img width="1200" height="600" src="https://leenarts.net/wp-content/uploads/2021/01/coredata-workshop-1200x600.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" loading="lazy" srcset="https://leenarts.net/wp-content/uploads/2021/01/coredata-workshop-1200x600.jpg 1200w, https://leenarts.net/wp-content/uploads/2021/01/coredata-workshop-300x150.jpg 300w, https://leenarts.net/wp-content/uploads/2021/01/coredata-workshop-1024x512.jpg 1024w, https://leenarts.net/wp-content/uploads/2021/01/coredata-workshop-768x384.jpg 768w, https://leenarts.net/wp-content/uploads/2021/01/coredata-workshop-1536x768.jpg 1536w, https://leenarts.net/wp-content/uploads/2021/01/coredata-workshop-1980x990.jpg 1980w, https://leenarts.net/wp-content/uploads/2021/01/coredata-workshop.jpg 2048w" sizes="(max-width: 1200px) 100vw, 1200px" />
		</div><!-- .featured-media-inner -->

	</figure><!-- .featured-media -->

	
	<div class="post-inner thin ">

		<div class="entry-content">

			
<p>With the help of <a href="https://www.donnywals.com/">Donny Wals</a> I am organizing a Core Data workshop on April 22 and April 29. We&#8217;ve chosen times that are convenient for multiple timezones around the world.</p>



<p>More info here: <a href="https://appforce1.net/coredata/">https://appforce1.net/coredata/</a></p>



<p class="has-text-align-center"><a href="https://appforce1.paydro.com/core-data-training-by-donny-wals" target="_blank" rel="noreferrer noopener">Order your ticket</a></p>



<p>We&#8217;ll build a simple app that features everything you might need in a moderately complex application. We&#8217;ll start by adding Core Data to an app and setting up a very simple form to add data to a store. After that, we&#8217;ll set up a list in SwiftUI to display data. Next, we&#8217;ll add an edit screen. The next step will be to build a filter screen.</p>



<p>Once the filter screen is added, we&#8217;ll focus a bit on architecture. Instead of using SwiftUI&#8217;s built-in features, we&#8217;re going to build a view model that holds a fetched results controller, and we&#8217;ll use this to drive a SwiftUI view by leveraging Combine.</p>



<p>The last step will be to write an importer that uses a background managed object context to import a bunch of sample data for our app. We&#8217;ll use a set of JSON data so it closely mimics a scenario where you load data from the web.</p>



<p>Throughout the workshop we&#8217;ll not only use SwiftUI, but also bits and pieces of Combine. Don&#8217;t worry if you&#8217;re not familiar with Combine yet. You&#8217;ll learn some of Combine&#8217;s core principles as we go to make sure you know and understand just enough to leverage it in the workshop.</p>



<p>Your trainer will be&nbsp;<a href="https://www.donnywals.com/">Donny Wals</a>, author of&nbsp;<a href="https://gumroad.com/a/528479347/ksYtPy">Practical Core Data</a>.</p>



<ul><li>Duration: 4 hours</li><li>Capacity: 5–15 people</li><li>Location: Online</li><li>Programming Language: Swift, latest Xcode</li><li>Choose your date and time when buying your ticket:<ul><li>April 22, 2021 / 09:00 AM &#8211; 01:00 PM Pacific Time</li><li>April 29, 2021 / 13:00 &#8211; 17:00 Central European Summer Time</li></ul></li></ul>



<h2>About Donny Wals</h2>



<p>Donny has been practical experience with Core Data, Combine and teaching. Through his book Doony was able to share his knowledge to a wider audience. Donny is an expert on Core Data. He has written one of the best received recent books on the topic of&nbsp;<a href="https://gumroad.com/a/528479347/ksYtPy">Core Data</a>. Donny has also written an amazing book about the Combine framework called&nbsp;<a href="https://gumroad.com/a/528479347/XVbKP">Practical Combine</a>.</p>

		</div><!-- .entry-content -->

	</div><!-- .post-inner -->

	<div class="section-inner">
		
		<div class="post-meta-wrapper post-meta-single post-meta-single-bottom">

			<ul class="post-meta">

									<li class="post-tags meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Tags</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18"><path fill="" d="M15.4496399,8.42490555 L8.66109799,1.63636364 L1.63636364,1.63636364 L1.63636364,8.66081885 L8.42522727,15.44178 C8.57869221,15.5954158 8.78693789,15.6817418 9.00409091,15.6817418 C9.22124393,15.6817418 9.42948961,15.5954158 9.58327627,15.4414581 L15.4486339,9.57610048 C15.7651495,9.25692435 15.7649133,8.74206554 15.4496399,8.42490555 Z M16.6084423,10.7304545 L10.7406818,16.59822 C10.280287,17.0591273 9.65554997,17.3181054 9.00409091,17.3181054 C8.35263185,17.3181054 7.72789481,17.0591273 7.26815877,16.5988788 L0.239976954,9.57887876 C0.0863319284,9.4254126 0,9.21716044 0,9 L0,0.818181818 C0,0.366312477 0.366312477,0 0.818181818,0 L9,0 C9.21699531,0 9.42510306,0.0862010512 9.57854191,0.239639906 L16.6084423,7.26954545 C17.5601275,8.22691012 17.5601275,9.77308988 16.6084423,10.7304545 Z M5,6 C4.44771525,6 4,5.55228475 4,5 C4,4.44771525 4.44771525,4 5,4 C5.55228475,4 6,4.44771525 6,5 C6,5.55228475 5.55228475,6 5,6 Z" /></svg>						</span>
						<span class="meta-text">
							<a href="https://leenarts.net/tag/core-data/" rel="tag">core data</a>, <a href="https://leenarts.net/tag/donny-wals/" rel="tag">donny wals</a>, <a href="https://leenarts.net/tag/workshop/" rel="tag">workshop</a>						</span>
					</li>
					
			</ul><!-- .post-meta -->

		</div><!-- .post-meta-wrapper -->

		
	</div><!-- .section-inner -->

	
</article><!-- .post -->
<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
<article class="post-953 post type-post status-publish format-standard has-post-thumbnail hentry category-podcast" id="post-953">

	
<header class="entry-header has-text-align-center">

	<div class="entry-header-inner section-inner medium">

		
			<div class="entry-categories">
				<span class="screen-reader-text">Categories</span>
				<div class="entry-categories-inner">
					<a href="https://leenarts.net/category/podcast/" rel="category tag">Podcast</a>				</div><!-- .entry-categories-inner -->
			</div><!-- .entry-categories -->

			<h2 class="entry-title heading-size-1"><a href="https://leenarts.net/2020/12/01/appforce1-episode-7/">AppForce1: Episode 7</a></h2>
		<div class="post-meta-wrapper post-meta-single post-meta-single-top">

			<ul class="post-meta">

									<li class="post-author meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post author</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewBox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
						<span class="meta-text">
							By <a href="https://leenarts.net/author/admin/">Jeroen</a>						</span>
					</li>
										<li class="post-date meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post date</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.15625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
						<span class="meta-text">
							<a href="https://leenarts.net/2020/12/01/appforce1-episode-7/">December 1, 2020 13:21</a>
						</span>
					</li>
					
			</ul><!-- .post-meta -->

		</div><!-- .post-meta-wrapper -->

		
	</div><!-- .entry-header-inner -->

</header><!-- .entry-header -->

	<figure class="featured-media">

		<div class="featured-media-inner section-inner medium">

			<img width="1200" height="1200" src="https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-1200x1200.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="AppForce1 Podcast" loading="lazy" srcset="https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-1200x1200.jpg 1200w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-300x300.jpg 300w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-1024x1024.jpg 1024w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-150x150.jpg 150w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-768x768.jpg 768w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500.jpg 1500w" sizes="(max-width: 1200px) 100vw, 1200px" />
		</div><!-- .featured-media-inner -->

	</figure><!-- .featured-media -->

	
	<div class="post-inner thin ">

		<div class="entry-content">

			<div id="buzzsprout-player-6623851"></div>
				 <script src="https://www.buzzsprout.com/1414396/6623851.js?container_id=buzzsprout-player-6623851&amp;player=small" type="text/javascript" charset="utf-8"></script>


<p>Book, lots of books this week. Daniel Steinberg interview live on thursday. Some great articles. And I think I am getting less nervous now. 🙂</p>



<p>00:00 Intro</p>



<p>00:41 <a href="https://twitter.com/AppForce1">Twitter me: @AppForce1</a></p>



<p>00:48 <a href="https://www.speakpipe.com/AppForce1">SpeakPipe.com/AppForce1</a></p>



<p>00:53 <a href="https://www.packtpub.com/product/swiftui-projects/9781839214660">Go go Craig Clayton: SwiftUI Projects</a></p>



<p>01:06 <a href="https://appforce1.net/leaddeveloper/">My book: Being a Lead Software Developer</a></p>



<p>03:16 <a href="https://gumroad.com/l/leaddeveloper">My Book: Pre order on Gumroad</a></p>



<p>03:30 <a href="https://www.writerontheside.com/">Hassan Osman: Writer on the side</a></p>



<p>03:45 <a href="https://www.backblaze.com/cloud-backup.html#af9t3t">Sponsor: Backblaze</a></p>



<p>04:23 The news</p>



<p>04:27 <a href="https://developer.apple.com/news/?id=em8fm29e">Apple: App privacy questions</a></p>



<p>05:11 <a href="https://ryanashcraft.com/ios-apps-on-m1-macs/">What It Took to Get FoodNoms Ready</a></p>



<p>05:48 <a href="https://www.objc.io/blog/2020/11/23/grid-layout/">SwiftUI’s Grid Views</a></p>



<p>06:11 <a href="https://theswiftdev.com/event-driven-generic-hooks-for-swift/">Event-driven generic hooks for Swift</a></p>



<p>07:20 <a href="https://kean.blog/post/formatted-strings">Formatted Localizable Strings</a></p>



<p>07:45 <a href="https://twitter.com/DonnyWals/status/1333316115989221376">Donny&#8217; monday morning tweet</a>)</p>



<p>08:56 <a href="https://connectkit.app/">ConnectKit by Josh Holtz</a></p>



<p>09:33 <a href="https://www.offerzen.com/blog/tech-leadership-focus-antoine-wetransfer">Coaching for free: email</a></p>



<p>10:04 <a href="https://www.meetup.com/CocoaHeadsNL/events/274466071/">CocoaHeadsNL Dec. Meetup</a></p>



<p>10:19 Outro</p>



<p>10:26 <a href="https://twitter.com/AppForce1">Twitter: AppForce1</a></p>



<p>10:31 <a href="https://www.speakpipe.com/AppForce1">SpeakPipe.com/AppForce1</a></p>



<p>10:48 <a href="https://appforce1.net">My website appforce1.net</a></p>

		</div><!-- .entry-content -->

	</div><!-- .post-inner -->

	<div class="section-inner">
		
	</div><!-- .section-inner -->

	
</article><!-- .post -->
<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
<article class="post-950 post type-post status-publish format-standard has-post-thumbnail hentry category-podcast" id="post-950">

	
<header class="entry-header has-text-align-center">

	<div class="entry-header-inner section-inner medium">

		
			<div class="entry-categories">
				<span class="screen-reader-text">Categories</span>
				<div class="entry-categories-inner">
					<a href="https://leenarts.net/category/podcast/" rel="category tag">Podcast</a>				</div><!-- .entry-categories-inner -->
			</div><!-- .entry-categories -->

			<h2 class="entry-title heading-size-1"><a href="https://leenarts.net/2020/11/26/appforce1-special-5/">AppForce1: Special 5</a></h2>
		<div class="post-meta-wrapper post-meta-single post-meta-single-top">

			<ul class="post-meta">

									<li class="post-author meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post author</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewBox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
						<span class="meta-text">
							By <a href="https://leenarts.net/author/admin/">Jeroen</a>						</span>
					</li>
										<li class="post-date meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post date</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.15625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
						<span class="meta-text">
							<a href="https://leenarts.net/2020/11/26/appforce1-special-5/">November 26, 2020 23:29</a>
						</span>
					</li>
					
			</ul><!-- .post-meta -->

		</div><!-- .post-meta-wrapper -->

		
	</div><!-- .entry-header-inner -->

</header><!-- .entry-header -->

	<figure class="featured-media">

		<div class="featured-media-inner section-inner medium">

			<img width="1200" height="1200" src="https://leenarts.net/wp-content/uploads/2020/11/pedro-pinera-art-1200x1200.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" loading="lazy" srcset="https://leenarts.net/wp-content/uploads/2020/11/pedro-pinera-art-1200x1200.jpg 1200w, https://leenarts.net/wp-content/uploads/2020/11/pedro-pinera-art-300x300.jpg 300w, https://leenarts.net/wp-content/uploads/2020/11/pedro-pinera-art-1024x1024.jpg 1024w, https://leenarts.net/wp-content/uploads/2020/11/pedro-pinera-art-150x150.jpg 150w, https://leenarts.net/wp-content/uploads/2020/11/pedro-pinera-art-768x768.jpg 768w, https://leenarts.net/wp-content/uploads/2020/11/pedro-pinera-art.jpg 1400w" sizes="(max-width: 1200px) 100vw, 1200px" />
		</div><!-- .featured-media-inner -->

	</figure><!-- .featured-media -->

	
	<div class="post-inner thin ">

		<div class="entry-content">

			<div id="buzzsprout-player-6528697"></div>
				 <script src="https://www.buzzsprout.com/1414396/6528697.js?container_id=buzzsprout-player-6528697&amp;player=small" type="text/javascript" charset="utf-8"></script>


<p>Pedro Piñera. A software developer working mostly on development tools at Shopify in Berlin, Germany. He spends his days improving the development tooling for his peers at Shopify. In his spare time, he works on tuist.io, a tool to make maintaining Xcode projects everyone&#8217;s task by describing them using a plain language.<br><br><a href="https://appforce1.net/" rel="noreferrer noopener" target="_blank">Subscribe to my newsletter on AppForce.net</a><br><br>00:00 Intro</p>



<p>00:39 Welcome</p>



<p>01:32 Origins</p>



<p>04:39 Getting started with iOS</p>



<p>06:07&nbsp;<a href="https://8fit.com/" rel="noreferrer noopener" target="_blank">8fit</a></p>



<p>07:17&nbsp;<a href="https://soundcloud.com/" rel="noreferrer noopener" target="_blank">SoundCloud</a></p>



<p>09:18&nbsp;<a href="https://tuist.io/" rel="noreferrer noopener" target="_blank">Tuist.io</a></p>



<p>11:13 Shopify</p>



<p>12:31 Comparing SoundCloud and Shopify</p>



<p>14:08&nbsp;<a href="http://tuist.io/" rel="noreferrer noopener" target="_blank">Tuist.io</a>&nbsp;at Shopify?</p>



<p>15:15 Weekly time spent on&#8230;</p>



<p>17:11 More on Tuist.</p>



<p>22:34 Future Xcode changes and Tuist?</p>



<p>26:11 So Pedro, who are you?</p>



<p>29:09 Podcast recommendations</p>



<p>29:17&nbsp;<a href="https://changelog.com/podcast" rel="noreferrer noopener" target="_blank">Podcast: The Changelog</a></p>



<p>30:03 So about Berlin weather&#8230;</p>



<p>31:42 Books</p>



<p>32:17&nbsp;<a href="https://refactoringui.com/book/" rel="noreferrer noopener" target="_blank">Book: Refactoring UI</a></p>



<p>32:48&nbsp;<a href="https://www.objc.io/books/thinking-in-swiftui/" rel="noreferrer noopener" target="_blank">Book: Thinking in SwiftUI</a></p>



<p>33:32 Working with and managing people</p>



<p>37:58 Make things simple</p>



<p>39:02 Outro</p>

		</div><!-- .entry-content -->

	</div><!-- .post-inner -->

	<div class="section-inner">
		
	</div><!-- .section-inner -->

	
</article><!-- .post -->
<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
<article class="post-948 post type-post status-publish format-standard has-post-thumbnail hentry category-podcast" id="post-948">

	
<header class="entry-header has-text-align-center">

	<div class="entry-header-inner section-inner medium">

		
			<div class="entry-categories">
				<span class="screen-reader-text">Categories</span>
				<div class="entry-categories-inner">
					<a href="https://leenarts.net/category/podcast/" rel="category tag">Podcast</a>				</div><!-- .entry-categories-inner -->
			</div><!-- .entry-categories -->

			<h2 class="entry-title heading-size-1"><a href="https://leenarts.net/2020/11/23/appforce1-episode-6/">AppForce1: Episode 6</a></h2>
		<div class="post-meta-wrapper post-meta-single post-meta-single-top">

			<ul class="post-meta">

									<li class="post-author meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post author</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewBox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
						<span class="meta-text">
							By <a href="https://leenarts.net/author/admin/">Jeroen</a>						</span>
					</li>
										<li class="post-date meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post date</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.15625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
						<span class="meta-text">
							<a href="https://leenarts.net/2020/11/23/appforce1-episode-6/">November 23, 2020 23:26</a>
						</span>
					</li>
					
			</ul><!-- .post-meta -->

		</div><!-- .post-meta-wrapper -->

		
	</div><!-- .entry-header-inner -->

</header><!-- .entry-header -->

	<figure class="featured-media">

		<div class="featured-media-inner section-inner medium">

			<img width="1200" height="1200" src="https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-1200x1200.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="AppForce1 Podcast" loading="lazy" srcset="https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-1200x1200.jpg 1200w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-300x300.jpg 300w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-1024x1024.jpg 1024w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-150x150.jpg 150w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-768x768.jpg 768w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500.jpg 1500w" sizes="(max-width: 1200px) 100vw, 1200px" />
		</div><!-- .featured-media-inner -->

	</figure><!-- .featured-media -->

	
	<div class="post-inner thin ">

		<div class="entry-content">

			<p><div id="buzzsprout-player-6519112"></div>
				 <script src="https://www.buzzsprout.com/1414396/6519112.js?container_id=buzzsprout-player-6519112&amp;player=small" type="text/javascript" charset="utf-8"></script></p>
<p>Lots of stuff going on right now, planning a bunch of interviews. Doing recordings, decided to take my newsletter a bit more serious. And my recommendation for this week &#8220;Shut up and listen&#8221; if, for example, you want to be a better team player.</p>
<p>00:00 Intro</p>
<p>00:18 AppForce1 newsletter</p>
<p>01:02 <a href="https://gumroad.com/norikitech" target="_blank" rel="noopener noreferrer">Book: Junior to Senior by Yuri Karabatov</a></p>
<p>01:29 <a href="https://twitter.com/appforce1" target="_blank" rel="noopener noreferrer">Twitter: AppForce1</a></p>
<p>01:38 <a href="https://www.speakpipe.com/AppForce1" target="_blank" rel="noopener noreferrer">SpeakPipe.com/appforce1</a></p>
<p>01:44 <a href="https://www.backblaze.com/cloud-backup.html#af9t3t" target="_blank" rel="noopener noreferrer">Sponsor: BackBlaze</a></p>
<p>02:21 News</p>
<p>02:37 <a href="https://developer.apple.com/news/?id=i7jzeefs" target="_blank" rel="noopener noreferrer">Apple Small Business Program</a></p>
<p>03:39 <a href="https://developer.apple.com/news/?id=g20wyc9c" target="_blank" rel="noopener noreferrer">Apple: Subscription offer codes</a></p>
<p>04:08 <a href="https://pspdfkit.com/blog/2020/convert-pdf-to-image-in-swift/" target="_blank" rel="noopener noreferrer">PSPDFKit: PDF to an Image</a></p>
<p>05:26 <a href="https://sarunw.com/posts/scaling-custom-fonts-automatically-with-dynamic-type/" target="_blank" rel="noopener noreferrer">Scaling custom fonts with Dynamic Type</a></p>
<p>06:22 <a href="https://swift.org/blog/swiftnio-ssh/" target="_blank" rel="noopener noreferrer">SwiftNIO SSH</a></p>
<p>07:04 <a href="https://nemecek.be/blog/56/basic-anatomy-of-collection-view-compositional-layout" target="_blank" rel="noopener noreferrer">Anatomy of collection view compositional layout</a></p>
<p>08:20 <a href="https://sixcolors.com/post/2020/11/quick-tip-enable-touch-id-for-sudo/" target="_blank" rel="noopener noreferrer">Touch ID for SUDO</a></p>
<p>08:47 <a href="https://share.transistor.fm/s/dc84aaa9" target="_blank" rel="noopener noreferrer">Empower Apps: Antoine part 2</a></p>
<p>09:20 <a href="https://twitter.com/DonnyWals/status/1330782607899045890" target="_blank" rel="noopener noreferrer">Donny&#8217; Monday morning</a></p>
<p>10:43 No conference tip</p>
<p>11:05 Coaching for free: Shut up and listen!</p>
<p>13:13 Outro</p>
<p>Colors One <a href="https://complexionsoftware.com/" target="_blank" rel="noopener noreferrer">complexionsoftware.com</a></p>
<p><a href="https://apps.apple.com/nl/app/signal-path/id1210488485#?platform=iphone" target="_blank" rel="noopener noreferrer">Signal path in de App Store</a></p>

		</div><!-- .entry-content -->

	</div><!-- .post-inner -->

	<div class="section-inner">
		
	</div><!-- .section-inner -->

	
</article><!-- .post -->
<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
<article class="post-945 post type-post status-publish format-standard has-post-thumbnail hentry category-podcast" id="post-945">

	
<header class="entry-header has-text-align-center">

	<div class="entry-header-inner section-inner medium">

		
			<div class="entry-categories">
				<span class="screen-reader-text">Categories</span>
				<div class="entry-categories-inner">
					<a href="https://leenarts.net/category/podcast/" rel="category tag">Podcast</a>				</div><!-- .entry-categories-inner -->
			</div><!-- .entry-categories -->

			<h2 class="entry-title heading-size-1"><a href="https://leenarts.net/2020/11/19/appforce1-special-4/">AppForce1: Special 4</a></h2>
		<div class="post-meta-wrapper post-meta-single post-meta-single-top">

			<ul class="post-meta">

									<li class="post-author meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post author</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewBox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
						<span class="meta-text">
							By <a href="https://leenarts.net/author/admin/">Jeroen</a>						</span>
					</li>
										<li class="post-date meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post date</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.15625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
						<span class="meta-text">
							<a href="https://leenarts.net/2020/11/19/appforce1-special-4/">November 19, 2020 23:24</a>
						</span>
					</li>
					
			</ul><!-- .post-meta -->

		</div><!-- .post-meta-wrapper -->

		
	</div><!-- .entry-header-inner -->

</header><!-- .entry-header -->

	<figure class="featured-media">

		<div class="featured-media-inner section-inner medium">

			<img width="1200" height="1200" src="https://leenarts.net/wp-content/uploads/2020/11/ben-art-1200x1200.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" loading="lazy" srcset="https://leenarts.net/wp-content/uploads/2020/11/ben-art-1200x1200.jpg 1200w, https://leenarts.net/wp-content/uploads/2020/11/ben-art-300x300.jpg 300w, https://leenarts.net/wp-content/uploads/2020/11/ben-art-1024x1024.jpg 1024w, https://leenarts.net/wp-content/uploads/2020/11/ben-art-150x150.jpg 150w, https://leenarts.net/wp-content/uploads/2020/11/ben-art-768x768.jpg 768w, https://leenarts.net/wp-content/uploads/2020/11/ben-art.jpg 1400w" sizes="(max-width: 1200px) 100vw, 1200px" />
		</div><!-- .featured-media-inner -->

	</figure><!-- .featured-media -->

	
	<div class="post-inner thin ">

		<div class="entry-content">

			<p><div id="buzzsprout-player-6357214"></div>
				 <script src="https://www.buzzsprout.com/1414396/6357214.js?container_id=buzzsprout-player-6357214&amp;player=small" type="text/javascript" charset="utf-8"></script></p>
<p>Ben Scheirman. An experienced software developer from Houston, TX. He spends most of his time these days writing Swift and Ruby and recording screencasts. You might know him from NSScreencast.com</p>
<p>00:00 Intro</p>
<p>00:50 <a href="https://nsscreencast.com/?utm_source=appforce1&amp;utm_medium=podcast&amp;utm_campaign=interview-ben-scheirman" target="_blank" rel="noopener noreferrer">NSScreencast.com</a></p>
<p>03:44 Origins and car audio hacking</p>
<p>05:15 <a href="https://en.wikipedia.org/wiki/Adobe_ColdFusion" target="_blank" rel="noopener noreferrer">ColdFusion</a></p>
<p>05:40 ASP before the .NET boom</p>
<p>06:24 Education</p>
<p>06:52 <a href="https://agiledeveloper.com/aboutus.html" target="_blank" rel="noopener noreferrer">My professor, my mentor</a></p>
<p>07:37 Making the switch to iOS</p>
<p>12:21 The local usergroup, a place to learn</p>
<p>13:34 Changing career paths from .NET to iOS</p>
<p>22:45 <a href="https://en.wikipedia.org/wiki/Alex_Honnold" target="_blank" rel="noopener noreferrer">Alex Honnold and Combine learning curve</a></p>
<p>25:24 <a href="https://combineswift.com/?utm_source=appforce1&amp;utm_medium=podcast&amp;utm_campaign=interview-ben-scheirman" target="_blank" rel="noopener noreferrer">Combine Swift</a></p>
<p>31:14 So Ben, who are YOU.</p>
<p>33:25 Time spent during the week</p>
<p>35:15 I forgot to ask if she is Ben&#8217;s better half&#8230;</p>
<p>36:23 How much time to create one video</p>
<p>39:46 Tips and advice</p>
<p>40:13 <a href="https://www.objc.io/?utm_source=appforce1&amp;utm_medium=podcast&amp;utm_campaign=interview-ben-scheirman" target="_blank" rel="noopener noreferrer">objc.io</a></p>
<p>40:38 <a href="https://www.hackingwithswift.com/?utm_source=appforce1&amp;utm_medium=podcast&amp;utm_campaign=interview-ben-scheirman" target="_blank" rel="noopener noreferrer">Hacking with Swift</a></p>
<p>41:38 <a href="https://www.calnewport.com/books/deep-work/" target="_blank" rel="noopener noreferrer">Book: Deep Work</a></p>
<p>42:43 <a href="https://www.calnewport.com/books/so-good/" target="_blank" rel="noopener noreferrer">So Good, they can&#8217;t ignore you</a></p>
<p>43:05 Recap</p>
<p>43:49 <a href="https://agiledeveloper.com/aboutus.html" target="_blank" rel="noopener noreferrer">Venkat Subramaniam</a></p>
<p>45:10 My wife</p>
<p>45:35 Outro</p>
<p>46:14 <a href="https://www.speakpipe.com/AppForce1" target="_blank" rel="noopener noreferrer">Feedback? Leave me a voicemail&#8230;</a></p>

		</div><!-- .entry-content -->

	</div><!-- .post-inner -->

	<div class="section-inner">
		
	</div><!-- .section-inner -->

	
</article><!-- .post -->
<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
<article class="post-943 post type-post status-publish format-standard has-post-thumbnail hentry category-podcast" id="post-943">

	
<header class="entry-header has-text-align-center">

	<div class="entry-header-inner section-inner medium">

		
			<div class="entry-categories">
				<span class="screen-reader-text">Categories</span>
				<div class="entry-categories-inner">
					<a href="https://leenarts.net/category/podcast/" rel="category tag">Podcast</a>				</div><!-- .entry-categories-inner -->
			</div><!-- .entry-categories -->

			<h2 class="entry-title heading-size-1"><a href="https://leenarts.net/2020/11/17/appforce1-episode-5/">AppForce1: Episode 5</a></h2>
		<div class="post-meta-wrapper post-meta-single post-meta-single-top">

			<ul class="post-meta">

									<li class="post-author meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post author</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewBox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
						<span class="meta-text">
							By <a href="https://leenarts.net/author/admin/">Jeroen</a>						</span>
					</li>
										<li class="post-date meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post date</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.15625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
						<span class="meta-text">
							<a href="https://leenarts.net/2020/11/17/appforce1-episode-5/">November 17, 2020 23:22</a>
						</span>
					</li>
					
			</ul><!-- .post-meta -->

		</div><!-- .post-meta-wrapper -->

		
	</div><!-- .entry-header-inner -->

</header><!-- .entry-header -->

	<figure class="featured-media">

		<div class="featured-media-inner section-inner medium">

			<img width="1200" height="1200" src="https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-1200x1200.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="AppForce1 Podcast" loading="lazy" srcset="https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-1200x1200.jpg 1200w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-300x300.jpg 300w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-1024x1024.jpg 1024w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-150x150.jpg 150w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-768x768.jpg 768w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500.jpg 1500w" sizes="(max-width: 1200px) 100vw, 1200px" />
		</div><!-- .featured-media-inner -->

	</figure><!-- .featured-media -->

	
	<div class="post-inner thin ">

		<div class="entry-content">

			<p><div id="buzzsprout-player-6407341"></div>
				 <script src="https://www.buzzsprout.com/1414396/6407341.js?container_id=buzzsprout-player-6407341&amp;player=small" type="text/javascript" charset="utf-8"></script></p>
<p>Welcome to my 5th episode.Big Sur launched and people are spending more and more time on SwiftUI and Combine. I also have my first listener question.Please rate me on Apple Podcasts.</p>
<p>Sponsor me on pod.fan/appforce1<br />
Send me feedback on SpeakPipeOr contact me through twitter.</p>
<p>00:00 Intro</p>
<p>00:21 <a href="https://twitter.com/AppForce1/?utm_source=appforce1&amp;utm_medium=podcast&amp;utm_campaign=episode-5" target="_blank" rel="noopener noreferrer">Twitter: AppForce1</a></p>
<p>00:27 <a href="https://www.speakpipe.com/AppForce1?utm_source=appforce1&amp;utm_medium=podcast&amp;utm_campaign=episode-5" target="_blank" rel="noopener noreferrer">SpeakPipe</a></p>
<p>00:32 Headlines</p>
<p>01:23 <a href="https://www.buzzsprout.com/?referrer_id=1381912" target="_blank" rel="noopener noreferrer">Sponsor: Backblaze</a></p>
<p>02:01 <a href="https://lapcatsoftware.com/articles/ocsp.html?utm_source=appforce1&amp;utm_medium=podcast&amp;utm_campaign=episode-5" target="_blank" rel="noopener noreferrer">Big Sur launched: OCSP failed</a></p>
<p>02:36 <a href="https://sixcolors.com/link/2020/11/in-wake-of-server-outage-new-apple-support-doc-details-gatekeeper/?utm_source=appforce1&amp;utm_medium=podcast&amp;utm_campaign=episode-5" target="_blank" rel="noopener noreferrer">OCSP Apple&#8217;s response</a></p>
<p>03:06 <a href="https://www.hackingwithswift.com/about?utm_source=appforce1&amp;utm_medium=podcast&amp;utm_campaign=episode-5" target="_blank" rel="noopener noreferrer">Paul Hudson about page</a></p>
<p>03:41 <a href="https://soffes.blog/debugging-json-data-in-lldb?utm_source=appforce1&amp;utm_medium=podcast&amp;utm_campaign=episode-5" target="_blank" rel="noopener noreferrer">LLDB JSON dumping</a></p>
<p>04:08 <a href="https://matteomanferdini.com/mvvm-pattern-ios-swift/?utm_source=appforce1&amp;utm_medium=podcast&amp;utm_campaign=episode-5" target="_blank" rel="noopener noreferrer">MVVM and SwiftUI</a></p>
<p>04:45 <a href="https://sarunw.com/posts/multi-cursor-editing-in-xcode/?utm_source=appforce1&amp;utm_medium=podcast&amp;utm_campaign=episode-5" target="_blank" rel="noopener noreferrer">Multi cursor editing</a></p>
<p>05:05 <a href="https://pspdfkit.com/blog/2020/downloading-large-files-with-urlsession/?utm_source=appforce1&amp;utm_medium=podcast&amp;utm_campaign=episode-5" target="_blank" rel="noopener noreferrer">URLCache</a></p>
<p>05:26 <a href="https://twitter.com/DonnyWals/status/1328254437245267968?utm_source=appforce1&amp;utm_medium=podcast&amp;utm_campaign=episode-5" target="_blank" rel="noopener noreferrer">Monday morning tweet by Donny</a></p>
<p>07:34 <a href="https://iosconf.sg/?utm_source=appforce1&amp;utm_medium=podcast&amp;utm_campaign=episode-5" target="_blank" rel="noopener noreferrer">iOS Conf SG</a></p>
<p>08:04 <a href="https://www.speakpipe.com/AppForce1?utm_source=appforce1&amp;utm_medium=podcast&amp;utm_campaign=episode-5" target="_blank" rel="noopener noreferrer">Voicemail</a></p>
<p>10:21 Outro</p>

		</div><!-- .entry-content -->

	</div><!-- .post-inner -->

	<div class="section-inner">
		
	</div><!-- .section-inner -->

	
</article><!-- .post -->
<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
<article class="post-939 post type-post status-publish format-standard has-post-thumbnail hentry category-podcast" id="post-939">

	
<header class="entry-header has-text-align-center">

	<div class="entry-header-inner section-inner medium">

		
			<div class="entry-categories">
				<span class="screen-reader-text">Categories</span>
				<div class="entry-categories-inner">
					<a href="https://leenarts.net/category/podcast/" rel="category tag">Podcast</a>				</div><!-- .entry-categories-inner -->
			</div><!-- .entry-categories -->

			<h2 class="entry-title heading-size-1"><a href="https://leenarts.net/2020/11/12/appforce1-special-3/">AppForce1: Special 3</a></h2>
		<div class="post-meta-wrapper post-meta-single post-meta-single-top">

			<ul class="post-meta">

									<li class="post-author meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post author</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewBox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
						<span class="meta-text">
							By <a href="https://leenarts.net/author/admin/">Jeroen</a>						</span>
					</li>
										<li class="post-date meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post date</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.15625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
						<span class="meta-text">
							<a href="https://leenarts.net/2020/11/12/appforce1-special-3/">November 12, 2020 23:19</a>
						</span>
					</li>
					
			</ul><!-- .post-meta -->

		</div><!-- .post-meta-wrapper -->

		
	</div><!-- .entry-header-inner -->

</header><!-- .entry-header -->

	<figure class="featured-media">

		<div class="featured-media-inner section-inner medium">

			<img width="1200" height="1200" src="https://leenarts.net/wp-content/uploads/2020/11/pedro-art-1200x1200.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" loading="lazy" srcset="https://leenarts.net/wp-content/uploads/2020/11/pedro-art-1200x1200.jpg 1200w, https://leenarts.net/wp-content/uploads/2020/11/pedro-art-300x300.jpg 300w, https://leenarts.net/wp-content/uploads/2020/11/pedro-art-1024x1024.jpg 1024w, https://leenarts.net/wp-content/uploads/2020/11/pedro-art-150x150.jpg 150w, https://leenarts.net/wp-content/uploads/2020/11/pedro-art-768x768.jpg 768w, https://leenarts.net/wp-content/uploads/2020/11/pedro-art.jpg 1400w" sizes="(max-width: 1200px) 100vw, 1200px" />
		</div><!-- .featured-media-inner -->

	</figure><!-- .featured-media -->

	
	<div class="post-inner thin ">

		<div class="entry-content">

			<div id="buzzsprout-player-6290395"></div>
				 <script src="https://www.buzzsprout.com/1414396/6290395.js?container_id=buzzsprout-player-6290395&amp;player=small" type="text/javascript" charset="utf-8"></script>


<p>Pedro is a Portuguese iOS Engineer since February 2017. He studied at Instituto Superior de Engenharia do Porto.</p>



<p>He is an avid OSS enthusiast and contributor. Helps by sharing, learn by what’s shared.</p>



<p>He is a member of SwiftAveiro’s organization, where around 250 iOS Engineers have gathered to learn in the past three years, and CocoaHeads Porto, the first CocoaHeads meetup in Portugal, where people share knowledge by doing speeches and workshops.</p>



<p>00:00 Pre-show</p>



<p>00:29 Intro</p>



<p>01:15 The University</p>



<p>01:48&nbsp;<a href="https://todoist.com/" rel="noreferrer noopener" target="_blank">The Doist, Todoist and Twist thing&#8230;</a></p>



<p>02:47 First some history</p>



<p>05:57&nbsp;<a href="https://todoist.com/" rel="noreferrer noopener" target="_blank">Day to day at A company</a></p>



<p>11:44&nbsp;<a href="https://www.swiftaveiro.xyz/" rel="noreferrer noopener" target="_blank">Swift Aveiro</a></p>



<p>14:43&nbsp;<a href="https://twitter.com/cocoaheadsporto" rel="noreferrer noopener" target="_blank">CocoaHeads Porto</a></p>



<p>16:01&nbsp;<a href="https://cocoahub.app/" rel="noreferrer noopener" target="_blank">CocoaHub</a></p>



<p>21:32 Time management</p>



<p>28:52 Getting started as developer</p>

		</div><!-- .entry-content -->

	</div><!-- .post-inner -->

	<div class="section-inner">
		
	</div><!-- .section-inner -->

	
</article><!-- .post -->
<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />
<article class="post-932 post type-post status-publish format-standard has-post-thumbnail hentry category-podcast" id="post-932">

	
<header class="entry-header has-text-align-center">

	<div class="entry-header-inner section-inner medium">

		
			<div class="entry-categories">
				<span class="screen-reader-text">Categories</span>
				<div class="entry-categories-inner">
					<a href="https://leenarts.net/category/podcast/" rel="category tag">Podcast</a>				</div><!-- .entry-categories-inner -->
			</div><!-- .entry-categories -->

			<h2 class="entry-title heading-size-1"><a href="https://leenarts.net/2020/11/09/appforce1-episode-4/">AppForce1: Episode 4</a></h2>
		<div class="post-meta-wrapper post-meta-single post-meta-single-top">

			<ul class="post-meta">

									<li class="post-author meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post author</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="20" viewBox="0 0 18 20"><path fill="" d="M18,19 C18,19.5522847 17.5522847,20 17,20 C16.4477153,20 16,19.5522847 16,19 L16,17 C16,15.3431458 14.6568542,14 13,14 L5,14 C3.34314575,14 2,15.3431458 2,17 L2,19 C2,19.5522847 1.55228475,20 1,20 C0.44771525,20 0,19.5522847 0,19 L0,17 C0,14.2385763 2.23857625,12 5,12 L13,12 C15.7614237,12 18,14.2385763 18,17 L18,19 Z M9,10 C6.23857625,10 4,7.76142375 4,5 C4,2.23857625 6.23857625,0 9,0 C11.7614237,0 14,2.23857625 14,5 C14,7.76142375 11.7614237,10 9,10 Z M9,8 C10.6568542,8 12,6.65685425 12,5 C12,3.34314575 10.6568542,2 9,2 C7.34314575,2 6,3.34314575 6,5 C6,6.65685425 7.34314575,8 9,8 Z" /></svg>						</span>
						<span class="meta-text">
							By <a href="https://leenarts.net/author/admin/">Jeroen</a>						</span>
					</li>
										<li class="post-date meta-wrapper">
						<span class="meta-icon">
							<span class="screen-reader-text">Post date</span>
							<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" width="18" height="19" viewBox="0 0 18 19"><path fill="" d="M4.60069444,4.09375 L3.25,4.09375 C2.47334957,4.09375 1.84375,4.72334957 1.84375,5.5 L1.84375,7.26736111 L16.15625,7.26736111 L16.15625,5.5 C16.15625,4.72334957 15.5266504,4.09375 14.75,4.09375 L13.3993056,4.09375 L13.3993056,4.55555556 C13.3993056,5.02154581 13.0215458,5.39930556 12.5555556,5.39930556 C12.0895653,5.39930556 11.7118056,5.02154581 11.7118056,4.55555556 L11.7118056,4.09375 L6.28819444,4.09375 L6.28819444,4.55555556 C6.28819444,5.02154581 5.9104347,5.39930556 5.44444444,5.39930556 C4.97845419,5.39930556 4.60069444,5.02154581 4.60069444,4.55555556 L4.60069444,4.09375 Z M6.28819444,2.40625 L11.7118056,2.40625 L11.7118056,1 C11.7118056,0.534009742 12.0895653,0.15625 12.5555556,0.15625 C13.0215458,0.15625 13.3993056,0.534009742 13.3993056,1 L13.3993056,2.40625 L14.75,2.40625 C16.4586309,2.40625 17.84375,3.79136906 17.84375,5.5 L17.84375,15.875 C17.84375,17.5836309 16.4586309,18.96875 14.75,18.96875 L3.25,18.96875 C1.54136906,18.96875 0.15625,17.5836309 0.15625,15.875 L0.15625,5.5 C0.15625,3.79136906 1.54136906,2.40625 3.25,2.40625 L4.60069444,2.40625 L4.60069444,1 C4.60069444,0.534009742 4.97845419,0.15625 5.44444444,0.15625 C5.9104347,0.15625 6.28819444,0.534009742 6.28819444,1 L6.28819444,2.40625 Z M1.84375,8.95486111 L1.84375,15.875 C1.84375,16.6516504 2.47334957,17.28125 3.25,17.28125 L14.75,17.28125 C15.5266504,17.28125 16.15625,16.6516504 16.15625,15.875 L16.15625,8.95486111 L1.84375,8.95486111 Z" /></svg>						</span>
						<span class="meta-text">
							<a href="https://leenarts.net/2020/11/09/appforce1-episode-4/">November 9, 2020 23:17</a>
						</span>
					</li>
					
			</ul><!-- .post-meta -->

		</div><!-- .post-meta-wrapper -->

		
	</div><!-- .entry-header-inner -->

</header><!-- .entry-header -->

	<figure class="featured-media">

		<div class="featured-media-inner section-inner medium">

			<img width="1200" height="1200" src="https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-1200x1200.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="AppForce1 Podcast" loading="lazy" srcset="https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-1200x1200.jpg 1200w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-300x300.jpg 300w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-1024x1024.jpg 1024w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-150x150.jpg 150w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500-768x768.jpg 768w, https://leenarts.net/wp-content/uploads/2020/10/Jeroen-appforce1-1500.jpg 1500w" sizes="(max-width: 1200px) 100vw, 1200px" />
		</div><!-- .featured-media-inner -->

	</figure><!-- .featured-media -->

	
	<div class="post-inner thin ">

		<div class="entry-content">

			<p><div id="buzzsprout-player-6295996"></div>
				 <script src="https://www.buzzsprout.com/1414396/6295996.js?container_id=buzzsprout-player-6295996&amp;player=small" type="text/javascript" charset="utf-8"></script></p>
<p><!--block-->Welcome to my 4th episode.We are in a bit of a quite time due to today&#8217;s Apple event &#8220;Back to the Mac&#8221;. Still there are some very interesting articles, NSSPain, I want to pitch you on a new podcast section I am working on and I do my first sponsor read.</p>
<p>Please rate me on Apple Podcasts.<br />
Sponsor me on <a href="https://pod.fan/appforce1">pod.fan/appforce1</a><br />
Send me feedback on SpeakPipeOr contact me through twitter on <a href="https://twitter.com/AppForce1">@appforce1</a>.</p>
<p>00:00 Intro</p>
<p><!--block-->00:46 <a href="https://www.speakpipe.com/AppForce1">Feedback trough SpeakPipe</a></p>
<p><!--block-->00:51 <a href="https://www.apple.com/apple-events/">Apple Event: One More Thing</a></p>
<p><!--block-->01:03 <a href="https://www.swiftbysundell.com/articles/swiftui-and-uikit-interoperability-part-1/">SwiftUI and UIKit interoperability</a></p>
<p><!--block-->01:15 <a href="https://swiftsenpai.com/development/list-interactive-custom-header/">UICollectionView List with Interactive Custom Header</a></p>
<p><!--block-->01:32 <a href="https://github.com/ProxymanApp/atlantis">ProxymanApp Atlantis</a></p>
<p><!--block-->01:50 <a href="https://developer.apple.com/news/?id=vlj9jty9">App privacy questions</a></p>
<p><!--block-->02:01 <a href="https://appdecentral.com/2020/11/03/developing-a-distributed-data-app-with-swiftui-and-crdts/">Developing a Distributed Data App with SwiftUI and CRDTs</a></p>
<p><!--block-->02:23 <a href="https://www.donnywals.com/building-a-concurrency-proof-token-refresh-flow-in-combine/">Building a concurrency-proof token refresh flow in Combine</a></p>
<p><!--block-->02:49 <a href="https://twitter.com/donnywals/status/1325711267538014208?s=21">Donny&#8217; monday morning</a>)</p>
<p><!--block-->03:46 <a href="https://remote.nsspain.com/">Conference: NSSpain</a></p>
<p><!--block-->04:08 Coaching for free</p>
<p><!--block-->04:58 <a href="https://gumroad.com/a/528479347">Sponsor: Practical Combine</a></p>
<p><!--block-->05:56 Subscribe to my podcast</p>
<p><!--block-->06:06 <a href="https://www.speakpipe.com/AppForce1">Feedback?</a></p>
<p><!--block--></p>

		</div><!-- .entry-content -->

	</div><!-- .post-inner -->

	<div class="section-inner">
		
	</div><!-- .section-inner -->

	
</article><!-- .post -->

	
	<div class="pagination-wrapper section-inner">

		<hr class="styled-separator pagination-separator is-style-wide" aria-hidden="true" />

		
	<nav class="navigation pagination" role="navigation" aria-label="Posts">
		<h2 class="screen-reader-text">Posts navigation</h2>
		<div class="nav-links"><span class="prev page-numbers placeholder" aria-hidden="true"><span aria-hidden="true">&larr;</span> <span class="nav-prev-text">Newer <span class="nav-short">Posts</span></span></span><span aria-current="page" class="page-numbers current">1</span>
<a class="page-numbers" href="https://leenarts.net/page/2/">2</a>
<a class="page-numbers" href="https://leenarts.net/page/3/">3</a>
<a class="next page-numbers" href="https://leenarts.net/page/2/"><span class="nav-next-text">Older <span class="nav-short">Posts</span></span> <span aria-hidden="true">&rarr;</span></a></div>
	</nav>
	</div><!-- .pagination-wrapper -->

	
</main><!-- #site-content -->


	<div class="footer-nav-widgets-wrapper header-footer-group">

		<div class="footer-inner section-inner">

			
			
				<aside class="footer-widgets-outer-wrapper" role="complementary">

					<div class="footer-widgets-wrapper">

						
							<div class="footer-widgets column-one grid-item">
								
		<div class="widget widget_recent_entries"><div class="widget-content">
		<h2 class="widget-title subheading heading-size-3">Recent Posts</h2><nav role="navigation" aria-label="Recent Posts">
		<ul>
											<li>
					<a href="https://leenarts.net/2021/09/11/keyboardio-atreus-review/">KeyboardIO Atreus review</a>
									</li>
											<li>
					<a href="https://leenarts.net/2021/03/29/published-ebook-lead-developer/">Published eBook: Lead Developer</a>
									</li>
											<li>
					<a href="https://leenarts.net/2021/01/20/ios-core-data-workshop/">iOS Core Data Workshop</a>
									</li>
											<li>
					<a href="https://leenarts.net/2020/12/01/appforce1-episode-7/">AppForce1: Episode 7</a>
									</li>
											<li>
					<a href="https://leenarts.net/2020/11/26/appforce1-special-5/">AppForce1: Special 5</a>
									</li>
											<li>
					<a href="https://leenarts.net/2020/11/23/appforce1-episode-6/">AppForce1: Episode 6</a>
									</li>
											<li>
					<a href="https://leenarts.net/2020/11/19/appforce1-special-4/">AppForce1: Special 4</a>
									</li>
											<li>
					<a href="https://leenarts.net/2020/11/17/appforce1-episode-5/">AppForce1: Episode 5</a>
									</li>
											<li>
					<a href="https://leenarts.net/2020/11/12/appforce1-special-3/">AppForce1: Special 3</a>
									</li>
											<li>
					<a href="https://leenarts.net/2020/11/09/appforce1-episode-4/">AppForce1: Episode 4</a>
									</li>
											<li>
					<a href="https://leenarts.net/2020/11/06/appforce1-special-2/">AppForce1: Special 2</a>
									</li>
											<li>
					<a href="https://leenarts.net/2020/11/03/appforce1-episode-3/">AppForce1: Episode 3</a>
									</li>
											<li>
					<a href="https://leenarts.net/2020/10/29/appforce1-special-1/">AppForce1: Special 1</a>
									</li>
											<li>
					<a href="https://leenarts.net/2020/10/27/appforce1-episode-2/">AppForce1: Episode 2</a>
									</li>
											<li>
					<a href="https://leenarts.net/2020/10/21/podcasting-gear/">Podcasting gear</a>
									</li>
					</ul>

		</nav></div></div>							</div>

						
						
					</div><!-- .footer-widgets-wrapper -->

				</aside><!-- .footer-widgets-outer-wrapper -->

			
		</div><!-- .footer-inner -->

	</div><!-- .footer-nav-widgets-wrapper -->


			<footer id="site-footer" role="contentinfo" class="header-footer-group">

				<div class="section-inner">

					<div class="footer-credits">

						<p class="footer-copyright">&copy;
							2026							<a href="https://leenarts.net/">Jeroen Leenarts</a>
						</p><!-- .footer-copyright -->

						<p class="powered-by-wordpress">
							<a href="https://wordpress.org/">
								Powered by WordPress							</a>
						</p><!-- .powered-by-wordpress -->

					</div><!-- .footer-credits -->

					<a class="to-the-top" href="#site-header">
						<span class="to-the-top-long">
							To the top <span class="arrow" aria-hidden="true">&uarr;</span>						</span><!-- .to-the-top-long -->
						<span class="to-the-top-short">
							Up <span class="arrow" aria-hidden="true">&uarr;</span>						</span><!-- .to-the-top-short -->
					</a><!-- .to-the-top -->

				</div><!-- .section-inner -->

			</footer><!-- #site-footer -->

		<script src='https://leenarts.net/wp-includes/js/wp-embed.min.js?ver=5.8.13' id='wp-embed-js'></script>
	<script>
	/(trident|msie)/i.test(navigator.userAgent)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var t,e=location.hash.substring(1);/^[A-z0-9_-]+$/.test(e)&&(t=document.getElementById(e))&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())},!1);
	</script>
	
	</body>
</html>

<!-- Dynamic page generated in 0.693 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2026-06-09 10:01:18 -->

<!-- super cache -->