<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>optional.is/required</title>
	<atom:link href="https://optional.is/required/feed/" rel="self" type="application/rss+xml" />
	<link>https://optional.is/required</link>
	<description>optional is required</description>
	<lastBuildDate>Fri, 18 Sep 2026 10:16:23 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.1</generator>
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/>
<atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>
<atom:link rel="hub" href="https://websubhub.com/hub"/>
<atom:link rel="self" href="https://optional.is/required/feed/"/>
	<item>
		<title>Week #813 &#038; #814</title>
		<link>https://optional.is/required/2026/09/18/week-813-814/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 18 Sep 2026 12:21:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Weeknotes]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[LEDs]]></category>
		<category><![CDATA[nintendo]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10388</guid>

					<description><![CDATA[A Double weeknote: Some wins and losses, but after 14 days we're net positive.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Week #813</h2>



<p class="wp-block-paragraph">Monday was a public holiday in the US. That gives us a day to catch-up on internal tasks and personal projects.</p>



<p class="wp-block-paragraph">We&#8217;ve been deep in C++ for the ESP32 microprocessor to control the LED lights. After constantly hitting walls, back tracking and trying another approach, we&#8217;re finally in a good spot. Every light combination we need is programmed into the system and the firmware is firing on all cylinders!</p>



<p class="wp-block-paragraph">Wednesday we had both a Nintendo event. Which we are keeping closer eyes on and the bug annual Apple event. This year we got the expected barage of new iPhones and Watches. This year we got the new iPhone DUO. Time will tell how that all shakes our and how it impacts developers. For years people designed for a specific height and width and argued about “above the fold” and with every new device we get a new size ratio.</p>



<p class="wp-block-paragraph">To us, there were a few items in the presentation that felt strange or awkward. A while ago we wrote about the <a href="https://optional.is/required/2025/06/20/blind-men-and-the-elephant/">Blind Men and the Elephant</a>. I fully believe we say some things in their presentation which are meant not for today, but for some future hardware.</p>



<p class="wp-block-paragraph">On Thursday, we published a bit more about <a href="https://optional.is/required/2026/09/10/backups-3-1-pg_dump/">our backup scheme</a>, specifically how we&#8217;re handling some backups of database backups. We identified a potential issue and plugged the hole to prevent accidents.</p>



<p class="wp-block-paragraph">With the publication of the iOS/macOS/Xcode 27 Release Candidates, we updated everything and got a chance to experiment with some Gaussian Splats. These are now first-class file types and we have libraries to natively load and view the output.</p>



<p class="wp-block-paragraph">There is the concept of Quiet or Ghost Quitting, where someone no longer responds or shows-up. We&#8217;re a bit on the opposite end and have a Ghost Firing. We&#8217;re on a project, but can&#8217;t get any meetings booked and the weekly sync has been cancelled. We&#8217;re here and ready, but the customer seems to have second thoughts, but doesn&#8217;t want to pull the plug (yet). We&#8217;ll see what the next weeks hold.</p>



<h2 class="wp-block-heading">Week #814</h2>



<p class="wp-block-paragraph">This week we started off with a remote visit for the LED project. We uploaded our new software to the microcontroller and it worked flawlessly! Of course the model makers had changed the LED count, so we had to change the software. Somewhere along the way the ESP32 died. We had a backup and flashed that one and did a quick test and it worked, but now we need to unsolder a bunch of connects on the old board to the new one and split the LED strip into two universes. On Thursday, we went back and confirmed all the updates with the architect. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f37e.png" alt="🍾" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">We continue with updates to an old survey. We&#8217;re trying our best to extract ourselves from this project. We&#8217;re no longer dealing with any other projects around health data and our school surveys are getting more focused. We told the customer this a few years ago, but the transition is a slow one. We are JUST ABOUT at the finish line. We&#8217;ve updated the code libraries and login method, now we&#8217;re making the last of the question and text tweaks. Then we really want to hand this over to their new tech team.</p>



<p class="wp-block-paragraph">On Tuesday, we had a meeting for another project. We met with the architects and design teams to go over the software, workflow and other image rendering requirements. Off the back of that we had to make a few tweaks to our software to fix some bugs and new ideas that came up in the meeting.</p>



<p class="wp-block-paragraph">We also managed to have an online meeting with an old friend in Lisbon to hear what he&#8217;s up to.</p>



<p class="wp-block-paragraph">Overall, these last two weeks we touched eight or nine different projects over ten (realistically nine) work days.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Backups 3.1 pg_dump</title>
		<link>https://optional.is/required/2026/09/10/backups-3-1-pg_dump/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Thu, 10 Sep 2026 13:31:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Meta]]></category>
		<category><![CDATA[backups]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[postgres]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10361</guid>

					<description><![CDATA[As we continue our series about how we are backing things up, we constantly strive to improve as we find holes.

We found a potential disaster we're now mitigating.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">This is a small update in our series about our backup setup and schedule. You can read the previous three here:</p>



<ul class="wp-block-list">
<li><a href="https://optional.is/required/2022/05/31/backups/">Backups</a></li>



<li><a href="https://optional.is/required/2024/03/19/backup-2-0-das-edition/">Backups 2.0 DAS Edition</a></li>



<li><a href="https://optional.is/required/2026/02/26/backups-3-0-remote/">Backups 3.0 Remote</a></li>
</ul>



<p class="wp-block-paragraph">Most recently we did some database maintenance on Heroku. This is pretty straightforward as Heroku handles a lot of the heavy work for you. Periodically, we need to upgrade the database version or migrate to a larger database as needed.</p>



<p class="wp-block-paragraph">As part of their database package, you can set up both manual and automatic backups. These are saved to an S3 bucket associated with your database instance. Every time we need to make a change, we make a manual backing-up. There is also an automatic, nightly back-up when the server is quiet.</p>



<p class="wp-block-paragraph">During one maintenance phase, we were working to upgrade the database, but accidentally pressed the delete button. Luckily Heroku has a nice double confirmation so you can&#8217;t delete something that you&#8217;re not supposed to by accident. This got us worried, because had we actually deleted that database, all of the corresponding backups would have also disappeared. This is a very bad single point of failure. Having both the database and the backups so easily destroyable was something we needed to guard against. </p>



<p class="wp-block-paragraph">This also doesn&#8217;t need to be malicious. Accidentally deleting a database is possible, so is forgetting to pay the credit card bill or update it when it expires. Heroku might quietly terminate all of our services and along with that we would lose all of our backups!</p>



<p class="wp-block-paragraph">We set out to at least get a copy of those databases somewhere not inside Heroku&#8217;s control. Luckily the Heroku command line gives us a few tools to do this. We can get the most recent Postgres S3 backup URL and we can get the Postgres URL directly.</p>



<p class="wp-block-paragraph">Our goal was to build a script which could save the database offsite in case something catastrophic happens. Rather than use the existing S3 backup URL we decided to fetch the Postgres database dump directly. (To make use of the Heroku CLI tools, you need to be logged in and that wasn&#8217;t going to be possible, so we saved the direct Postgres URL instead. This does periodically change, so we need to be aware of the fragility.)</p>



<p class="wp-block-paragraph">For now, we setup a few different CSV files with the service names and the Postgres URLs. A bash script was created to run <code>pg_dump</code> looping through the corresponding csv file. Each row creates a database dump with the service name. We can direct that output to our DAS system. Once it is put onto a drive, that flows into our existing system of an additional nightly local copy and remote copy.</p>



<p class="wp-block-paragraph">Using the same script, we can pass-in different target folders so we can separate the dumps by company, project or service. This also allows us to create a series of cron tasks that run at different intervals. For instance, some surveys only run for 1 month, so there is no need to be backing these up nightly the other 11 months of the year! The same is true of our reports server, we publish reports usually at the start of the month for the previous month&#8217;s results. Having that pull a remote backup once a month in the middle of the month is probably the most sensible. Especially since the DB size is pushing 3 GB.</p>



<p class="wp-block-paragraph">Also, since these commands are all listed in the <code>crontab</code>, we can manually run the same command if we can&#8217;t wait for the next backup cycle to occur.</p>



<p class="wp-block-paragraph">For some customers and internal projects we use our own 3-2-1 backups system. For others who are concerned about GDPR and sensitive data, we can save the database dumps to their network drives and let them handle the data.</p>



<p class="wp-block-paragraph">It is a flexible system, which does require us to save the login strings, which periodically change. We&#8217;ll see how much of an issue this becomes as we implement the system.</p>



<p class="wp-block-paragraph">We are constantly finding loop-holes, like these Heroku backups, but close them each time. We continue to iterate and improve on our backup setup and with each step, improve our piece of mind.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Week #811 &#038; #812</title>
		<link>https://optional.is/required/2026/09/04/week-811-812/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 04 Sep 2026 13:31:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Weeknotes]]></category>
		<category><![CDATA[credit cards]]></category>
		<category><![CDATA[depth map]]></category>
		<category><![CDATA[fraud]]></category>
		<category><![CDATA[LEDs]]></category>
		<category><![CDATA[magic eye]]></category>
		<category><![CDATA[names]]></category>
		<category><![CDATA[petals]]></category>
		<category><![CDATA[public house]]></category>
		<category><![CDATA[pubs]]></category>
		<category><![CDATA[stereogram]]></category>
		<category><![CDATA[UK]]></category>
		<category><![CDATA[webrtc]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10323</guid>

					<description><![CDATA[Another double weeknote where we're pulled in 3-4 different directions.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Week #811</h2>



<p class="wp-block-paragraph">This week summer seemed to have abruptly ended and fall/winter has arrived. We&#8217;ve moved back into work mode and started to run.</p>



<p class="wp-block-paragraph">This week we continued to debug some of the WebRTC issue reported. The client was complaining things were moving slowly, so we offered to have more frequent, shorter check-in meetings. Everyone agreed, and then it hasn&#8217;t happened for 2-3 weeks. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f937-1f3fb-200d-2642-fe0f.png" alt="🤷🏻‍♂️" class="wp-smiley" style="height: 1em; max-height: 1em;" /> When we get bug reports, we try to fix them quickly and ask for a meeting so we can iterate, but no reply.</p>



<p class="wp-block-paragraph">On the LED front, we&#8217;re continuing to debug, iterate and fix minor issues with both the microcontroller software, but also the iPad app that sends the commands for which LEDs to light-up. We&#8217;re very close and the deadline is looming. Some of the team in NYC goes over to the model maker&#8217;s office and we have marathon video calls to work through and debug any issues in real time. As they continue to wire and re-wire, we seem to take a few steps backwards. Hopefully by next week, we wrap-up everything.</p>



<p class="wp-block-paragraph">On Thursday, we published our article about <a href="https://optional.is/required/2026/08/27/uk-public-house-names/">UK Public House names</a>. This was a side-quest that was spurred on by a throw-a-way comment on a podcast we were listening too.</p>



<p class="wp-block-paragraph">(You can tell we&#8217;re avoiding real work) We also sat down and re-created a test stereogram (those magic eye posters from the 90s). The images in those posters were always dolphins, cubes, landscapes, etc. We wondered how to construct our own and if it was easier 30 years later? It turns out, it is pretty easy, but the subject matter and composition are key.</p>



<p class="wp-block-paragraph">There are plenty of websites to help you make stereograms. Usually you just need a depth map of the image. It then uses a noise pattern and that depth map to make some offsets in the final output. Previously, to make those depth maps you needed to make some 3D objects in software and then position a camera. It wasn&#8217;t trivial and you needed to recreate everything you wanted in your picture. Fast-forward to the 2020s and you have smart phones with LIDAR that produce depth maps with your portrait photos! It is pretty easy to extract those black and white depth maps, so we did.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1000" height="333" src="https://optional.is/required/wp-content/uploads/2026/08/stereogram.jpg" alt="" class="wp-image-10327" srcset="https://optional.is/required/wp-content/uploads/2026/08/stereogram.jpg 1000w, https://optional.is/required/wp-content/uploads/2026/08/stereogram-300x100.jpg 300w, https://optional.is/required/wp-content/uploads/2026/08/stereogram-768x256.jpg 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>



<p class="wp-block-paragraph">Friday we continued to do some digital house-cleaning. We also had a meeting about the WebRTC project and we continue to find small bugs, but have shifted gears a bit back to using Apple Continuity Camera rather than our own home grown WebRTC version (for now).</p>



<p class="wp-block-paragraph">On the PETALS project, we added Lemon Squeezy as our checkout/payment system to take subscriptions. There is a free trial when you sign-up so your credit card only gets billed after 7 days. Low-and-behold, that&#8217;s a boon to credit card fraudsters. We&#8217;ve got endless fake sign-ups over the weekend. They obviously have a list of stolen card numbers and need to test to see if they are still active or not. If they do that on a large retailer like Amazon and the card is already blocked or marked as fraud that&#8217;s problematic. So they first find a service that has a free trial &#8211; like PETALS and run the card to see if it is valid. If it is, it hasn&#8217;t been charged and thrown-up any flags (yet), so they know they can use that valid, working card at other retailers immediately. We&#8217;ve been playing whack-a-mole with them all weekend, but the way lemon squeezy was originally setup by us, that makes it very difficult along with invalidating all these fake purchases to now ruin our charge-back reputation. Good times.</p>



<h2 class="wp-block-heading">Week #812</h2>



<p class="wp-block-paragraph">This week we properly started a bunch of new surveys and are gearing up for more in October and November. As part of that process we continue to improve our backups. We found some weak spots and fixed it with redundancy L-O-C-K-S-S (Lot of Copies Keeps Stuff Safe). We have a draft article outline all this in more detail.</p>



<p class="wp-block-paragraph">We continue debugging some of the WebRTC code and also the LED code. Things are in a good place, but (as always) it is hard for us to debug in real-world situations. The WebRTC echo is partly due to geography and network latency, VPNs can help, but real testing is always best. On Tuesday, we were told by the client to stop working on it. They are getting cold feet, so we feel this project has run its course. Our normal Friday meeting was even canceled.</p>



<p class="wp-block-paragraph">The LEDs are a similar story, we have a roll of 300 LEDs to help us test, but the final product has 15x so we test in parts where we can and then try to integrate everything and work with the New York team to test.</p>



<p class="wp-block-paragraph">For the old Spellstruck project, we were originally call upon to help with the analytics, but idle hands are the devils work. While we waited for everything to get instrumented, we helped with the push notifications. That meant dealing with certificates, AWS lambda functions and simple queues. Which now is partly our responsibility to update the certs annually and keep the code versions up-to-date. This week we had to migrate the Heroku Postgres database from version 15 to 18. We ran the tests, add the follower, let it all sync for a day, then put things into maintenance mode and did the swap. It&#8217;s not difficult, but can be stressful if something goes wrong.</p>



<p class="wp-block-paragraph">Using cloud services is great, but they periodically end support for software versions you are using, so you need to go back to things that work just fine, upgrade them and potentially introduce errors.</p>



<p class="wp-block-paragraph">For yet another project, we are getting into the HubSpot API. We have various forms to collect information at the top of a sales funnel. To start with, we just want to capture that data and organize it into various models in HubSpot. Once the data is correctly flowing in, we can start to do some smart stuff with it.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>UK Public House Names</title>
		<link>https://optional.is/required/2026/08/27/uk-public-house-names/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Thu, 27 Aug 2026 13:31:00 +0000</pubDate>
				<category><![CDATA[Experiments]]></category>
		<category><![CDATA[Paper]]></category>
		<category><![CDATA[animals]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[names]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[plants]]></category>
		<category><![CDATA[pubs]]></category>
		<category><![CDATA[UK]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10306</guid>

					<description><![CDATA[A strange thought came into our heads, which eventually we found the data and made an artifact.

If you like niche lists, we got you covered.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">We were listening to a podcast about <a href="https://www.bbc.co.uk/programmes/m002z5nz">Anne Bonny and Mary Read: real-life pirates of the Caribbean</a>. Mary Read and her husband opened a pub called <em>The Three Horseshoes</em> and the presenters commented about how it was a nice name. That set us off on a quest.</p>



<p class="wp-block-paragraph">We&#8217;ve heard the trope that all the pubs in the UK have either an animal, plant or body part in their name: <em>The Red Lion, The Pear Tree, The Athletic Arms</em>. <em>The Three Horseshoes</em> fit the template. But how true was it?</p>



<h2 class="wp-block-heading">Step 1: Find the Data</h2>



<p class="wp-block-paragraph">We needed to find a decent list of UK pubs and it turns out that you can download a CSV of 50,000 registered public houses. This is a list from 02024, so your favorite place may or may not have made the cut. Also, what a company trades as and what&#8217;s on the door are not guaranteed to be the same either.</p>



<p class="wp-block-paragraph">Using: <a href="https://www.getthedata.com/open-pubs">https://www.getthedata.com/open-pubs</a> we downloaded the list of pub names. The CSV contains a list of names, addresses, post codes, cities, and additional columns. All we were concerned with was a list of distinct names and their frequency.</p>



<p class="wp-block-paragraph">That was pretty easy to do, but we quickly spotted some problems. Was <em>The Fox and Hound</em> the same as <em>The Fox &amp; Hound</em> or even <em>Fox and Hound</em>?</p>



<h2 class="wp-block-heading">Step 2: Data Cleansing</h2>



<p class="wp-block-paragraph">Now that we had the list, we needed to normalize it and collapse similar names. Ignoring the capitalization <em>Fox and Hound</em> versus <em>Fox and hound</em> we quickly did some find and replacing on punctuation, spelling and removed (at the &#8230;) and (Bar Only), Ltd. and a few other common strings. Since we knew this was going to be an alphabetically sorted list, we also moved any &#8220;The XYZ&#8230;&#8221; to &#8220;XYZ&#8230;, The&#8221;. The final output is much easier to search and browse manually.</p>



<p class="wp-block-paragraph">This collapsed the list from around 50,000 pubs to around 27,500 distinct names and their corresponding frequency.</p>



<p class="wp-block-paragraph">But that&#8217;s all the pub names in the UK, we are only interested in those with animal, plant or body parts. We made a big list of words and went through each of the 27,500 and tested to see if they contained anything in our list. That got us down to about 10,000 rows or 1 in 5 pubs in the UK contain the trope. When we counted those names by frequency we had 3,000 rows of distinct pub names and their frequency count.</p>



<h2 class="wp-block-heading">Step 3: Curation</h2>



<p class="wp-block-paragraph">Now that we had only 3,000 rows to review, it made things easier to go over manually and curate. Our goal wasn&#8217;t a comprehensive list or any exact numbers. At this point we just wanted a list of real pub names you might find when you needed to make-up a quick name for a pub in the UK. <em>The Quill and Porcupine,</em> <em>The Dragon&#8217;s Arms</em>, <em>The Bear and Boar</em>.</p>



<p class="wp-block-paragraph">Sorting the list alphabetically and browsing through we found some false positives: <em>John Bull Inn</em>, that&#8217;s a surname not directly an animal reference. So we remove those. We also found lots of <em>White Stag at the X</em>YZ usually the city name. We further collapsed those into just <em>White Stag</em>, similar for some chains: <em>Slug and Lettuce / X / Y / Z</em> was very common where they seemed to be paired with other restaurants, again we just collapsed those down to <em>Slug and Lettuce</em>.</p>



<p class="wp-block-paragraph">After reviewing that list a few times, we were happy with what we managed to curate. The next step was to put it into some chapters and columns with some nice headers and engraving images to make a nice book from this work and research.</p>



<h2 class="wp-block-heading">Step 4: Stats</h2>



<p class="wp-block-paragraph">When we sorted by frequency we got the top 50 common UK pub names with an animal, plant or body part in the name.</p>



<ol class="wp-block-list">
<li>Red Lion, The</li>



<li>Royal Oak, The</li>



<li>White Hart, The</li>



<li>Swan, The</li>



<li>White Horse, The</li>



<li>Rose and Crown</li>



<li>Wheatsheaf, The</li>



<li>Black Horse, The</li>



<li>Greyhound, The</li>



<li>White Lion, The</li>



<li>Coach &amp; Horses</li>



<li>Three Horseshoes, The</li>



<li>Fox and Hounds</li>



<li>George &amp; Dragon</li>



<li>Black Bull, The</li>



<li>Bull, The</li>



<li>Bulls Head, The</li>



<li>White Swan, The</li>



<li>Fox Inn, The</li>



<li>Golden Lion, The</li>



<li>Nags Head</li>



<li>Lamb Inn, The</li>



<li>Horseshoe, The</li>



<li>Black Swan, The</li>



<li>Cock Inn, The</li>



<li>Bay Horse, The</li>



<li>Beehive, The</li>



<li>Eagle, The</li>



<li>Horse &amp; Jockey</li>



<li>Barley Mow, The</li>



<li>Grapes, The</li>



<li>Griffin, The</li>



<li>Horse and Groom</li>



<li>Dolphin, The</li>



<li>Green Dragon, The</li>



<li>Vine, The</li>



<li>Black Lion, The</li>



<li>Woolpack, The</li>



<li>Shoulder of Mutton</li>



<li>Slug &amp; Lettuce</li>



<li>Stag, The</li>



<li>Lion, The</li>



<li>Talbot, The</li>



<li>Bear, The</li>



<li>Bird in Hand</li>



<li>Pheasant Inn, The</li>



<li>Cherry Tree, The</li>



<li>Peacock, The</li>



<li>Falcon, The</li>



<li>Phoenix, The</li>
</ol>



<p class="wp-block-paragraph">First place was <em>The Red Lion</em> with ~450 pubs using that name. In second was <em>The Royal Oak</em> with ~350. Third was <em>The White Hart</em> with ~230 and continuing to drop to a long tale of names.</p>



<p class="wp-block-paragraph">In 12th place <em>The Three Horseshoes</em>! It turns out to be a pretty common name for a UK pub.</p>



<p class="wp-block-paragraph">If we break it down by what terms the pubs fell into (and they could be in multiple) we can see that Animals are by far the most popular in names.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Category</th><th>Distinct names</th><th>Pubs</th><th>Share</th><th>Leaders</th></tr></thead><tbody><tr><td>Animal</td><td>1,894</td><td>6,401</td><td>12.8%</td><td>lion 808, horse 728, swan 446, fox 321, bull 290</td></tr><tr><td>Plant</td><td>906</td><td>2,294</td><td>4.6%</td><td>oak 495, tree 307, rose 287, wheatsheaf 170</td></tr><tr><td>Body part</td><td>321</td><td>1,138</td><td>2.3%</td><td>head 815, hand 75, feathers 53, shoulder 41</td></tr><tr><td><em>Mythical beasts</em></td><td><em>81</em></td><td><em>347</em></td><td><em>0.7%</em></td><td><em>dragon 177, griffin 58, phoenix 55, unicorn 43</em></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Since public houses in the UK date back centuries, their names are often hold-overs from another era. Many of their early patrons were illiterate, so using commonly recognizable symbols were more important than how the pub name was spelt.</p>



<h2 class="wp-block-heading">Step 5: Publication</h2>



<p class="wp-block-paragraph">Now that we have the curated short list of names, some interesting stats we decided to do something more than just this article. We created several printable publications for anyone to use as an interesting reference.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/08/A4-spread.png" alt="Screenshot of the dictionary page layout"/></div>



<p class="wp-block-paragraph">First we copy and pasted the full comma separated text from the most frequent name to the least into a document. It was noisy, cluttered and un-organized. It made no sense to look-up words or find anything. We sorted the words alphabetically, broke them into logical chapters based on their first letter (where we also moved &#8220;The&#8221; to the end of the names), and put one name per line and made each page two columns.</p>



<p class="wp-block-paragraph">This was much easier to read, but it still felt very utilitarian &#8211; like an ancient pub phone directory. To solve this, we added some illustrations to try and match some of the animals and plants references. This broke-up the text and filled in some blank space. Luckily, there is no shortage of public domain engravings! After an afternoon of figuring out some layout we found plenty of images to fill the gaps.</p>



<p class="wp-block-paragraph">We made a few different A5 PDFs that you can download and print at home.</p>



<ul class="wp-block-list">
<li><a href="https://optional.is/required/wp-content/uploads/2026/08/pub_names_A5_booklet.pdf">pub_names_A5_booklet.pdf</a> A5 (9.5 MB)</li>



<li><a href="https://optional.is/required/wp-content/uploads/2026/08/pub_names_A4_spreads.pdf">pub_names_A5_booklet_spread.pdf</a> A4 (10.6 MB)</li>
</ul>



<p class="wp-block-paragraph">You can also purchase a 42 page book on Amazon&#8217;s using their print on demand service.</p>



<ul class="wp-block-list">
<li><a href="https://www.amazon.com/dp/B0HGCB856W">Dictionary of Pub Names Amazon US ($8)</a></li>



<li><a href="https://www.amazon.co.uk/dp/B0HGCB856W">Dictionary of Pub Names Amazon UK (£6)</a></li>



<li><a href="https://www.amazon.ie/dp/B0HGCB856W">Dictionary of Pub Names Amazon IE (€7)</a></li>
</ul>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">It&#8217;s funny how some small, one off-comment in a podcast can lead down a path of data scraping to publishing a small book.</p>



<p class="wp-block-paragraph">We hope you enjoy a look into our process, inspiration, thought process and publication.</p>



<p class="wp-block-paragraph"><em>Cheers, Iechyd da, Slàinte Mhath!</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Week #809 &#038; #810</title>
		<link>https://optional.is/required/2026/08/21/week-809-810/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 21 Aug 2026 14:41:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Weeknotes]]></category>
		<category><![CDATA[badges]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[solar eclipse]]></category>
		<category><![CDATA[virtual boy]]></category>
		<category><![CDATA[VR]]></category>
		<category><![CDATA[webrtc]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10282</guid>

					<description><![CDATA[Another double weeknote. Lots of activity, a once in a lifetime solar eclipse, the good and bad of projects and more.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Week #809</h2>



<p class="wp-block-paragraph">Let&#8217;s VR like it&#8217;s 01995! We picked-up the <a href="https://en.wikipedia.org/wiki/Virtual_Boy">Nintendo Virtual Boy</a> faux-headset. This is really a box with some lenses that takes a Switch running the Virtual Boy emulation software to make a left and right channel for each eye to create a stereoscopic, 3D view.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1000" height="582" src="https://optional.is/required/wp-content/uploads/2026/08/virtual-boy.jpg" alt="" class="wp-image-10297" srcset="https://optional.is/required/wp-content/uploads/2026/08/virtual-boy.jpg 1000w, https://optional.is/required/wp-content/uploads/2026/08/virtual-boy-300x175.jpg 300w, https://optional.is/required/wp-content/uploads/2026/08/virtual-boy-768x447.jpg 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>



<p class="wp-block-paragraph">The results are exactly what you&#8217;d expect, it feels like 30 year old VR technology. There are only 16 games out of the 22 ever released and they certainly feel their age. It is a great, fun experience and some interesting early experiments.</p>



<p class="wp-block-paragraph">For some Australian projects their CFO reached out and asked for a data dump. They are reviewing the last 3 years worth of jobs, costs and invoices to see where they made money and were they lost as a general review of the company. Most of this data was easy to export from both our database and Xero. The slightly trickier part was merging the two. Sometimes an invoice was connected to a few small projects in our system, or a different enough name that we couldn&#8217;t with confidence match it. Now it&#8217;s up to them to do the harder business logic and find the good, the bad and the ugly.</p>



<p class="wp-block-paragraph">Our WebRTC project is coming back.</p>



<p class="wp-block-paragraph">Wednesday was the Solar Eclipse here in Reykjavik. Not much got done that whole afternoon. It was quite overcast and raining, but it did get dark for a few minutes as we passed through the moon&#8217;s shadow.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1000" height="750" src="https://optional.is/required/wp-content/uploads/2026/08/solar-eclipse.jpg" alt="" class="wp-image-10292" srcset="https://optional.is/required/wp-content/uploads/2026/08/solar-eclipse.jpg 1000w, https://optional.is/required/wp-content/uploads/2026/08/solar-eclipse-300x225.jpg 300w, https://optional.is/required/wp-content/uploads/2026/08/solar-eclipse-768x576.jpg 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>



<p class="wp-block-paragraph">On Friday we published an article about our <a href="https://optional.is/required/2026/08/14/newsletter-badges/">Newsletter Badges</a>. We are experimenting with custom, dynamically generating SVG/PNG images for our newsletter subscribers. If you already subscribe, expect a little something extra next quarter.</p>



<h2 class="wp-block-heading">Week #810</h2>



<p class="wp-block-paragraph">Surveys are now back in full-swing! We started a &#8220;one-off&#8221; survey project as part of some research at the University of Iceland. We did something similar a few years ago which resulted in an academic paper (<a href="https://ejournals.is/index.php/netla/article/view/4327/2900">You can read it online in Icelandic</a>) It focused on the deteriorating reading levels in young Icelandic students and how home-reading was the proposed solution. The paper looks at the efficacy of the intervention. Now, we&#8217;re back looking to Peer-Assisted Learning Strategies (PALS). We have a long survey which teachers take before, during and at the end of the intervention. Then a much shorter survey which is answered weekly about the type and amount of PALS that week.</p>



<p class="wp-block-paragraph">Our WebRTC project gave us a kick in the gut this week. It always worked when we tested in the office, but when trying to connect to a remote participant it failed. At first we thought it was our code, but it turned out to be an issue with the STUN/TURN servers. Once we switched the info and made it dynamic and not hard-coded in the app, we could move forward again. The regularly scheduled Friday meeting was cancelled &#8211; which is annoying. The client feels things are taking too long and behind schedule. They do take a long time for several reasons; we only work on this 1 day a week, it&#8217;s been summer, we got stuck on an echo issue, and meetings always get cancelled so it&#8217;s then 2-3 weeks between reviews. We offered to have them more frequently, but it doesn&#8217;t fit their schedule.</p>



<p class="wp-block-paragraph">We met with the our contact to test our LEDs and it was a bit of a disaster, but we learnt a lot and quickly adapted. As it turns out, we&#8217;ve very rusty when it comes to soldering! On Thursday we did a bunch of software and hardware tests and on Friday it&#8217;s back to our contact to try it all again.</p>



<p class="wp-block-paragraph">Our todo list is long and grows longer by the day. What tends to accumulate are ideas for things, big and small, that we&#8217;d like to try and prototype. Those get pushed down the list when deadlines are looming. We&#8217;re really hoping to get through a few tasks in August and in September, free-up some time to explore.</p>



<p class="wp-block-paragraph">During the week we were listening to a podcast and a throw-away comment about the name of a British pub sent us down a rabbit hole. Pretty quickly we found the data we wanted, created a prototype of our idea and made a physical printout. Time to review and refine.</p>



<h2 class="wp-block-heading">Bric-à-brac</h2>



<p class="wp-block-paragraph">This week we learnt about <a href="https://en.wikipedia.org/wiki/Ming_(clam)">Hafrún (Ming Clam)</a> a clam that was dredged-up around Iceland that turned out to be 507 years old, oldest individual (non-clonal) animal ever discovered whose age could be precisely determined.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Newsletter Badges</title>
		<link>https://optional.is/required/2026/08/14/newsletter-badges/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 14:41:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Meta]]></category>
		<category><![CDATA[badges]]></category>
		<category><![CDATA[heraldy]]></category>
		<category><![CDATA[iceland]]></category>
		<category><![CDATA[newsletter]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10192</guid>

					<description><![CDATA[We're creating an ever evolving badge for newsletter subscribers. The design is based on years subscribed and other achievements.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Back in <a href="https://optional.is/newsletter/02024Q3/">02024Q3</a> we planned on releasing custom badges for our newsletter subscribers. These were to be dynamic images that changed over time based on subscription length and other special inventory items.</p>



<p class="wp-block-paragraph">Did we mention we have a newsletter? You can subscribe here: <a href="https://optional.is/newsletter/subscribe">https://optional.is/newsletter/subscribe</a></p>



<p class="wp-block-paragraph">If you want your own personalized badge you need to be a subscriber!</p>



<p class="wp-block-paragraph">The badge needed to grow over time to include more and more items the longer you were a subscriber. We wanted it to both be Icelandic but also heraldic.</p>



<figure class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/07/badges.jpg" alt="Early drafts of potential badges" /><figcaption>Early drafts of potential badges</figcaption></figure>



<p class="wp-block-paragraph">As part of the mock-ups and design, we had the banner which in heraldry holds some sort of motto. We repurposed it as the year you subscribed. Later we changed that to be a sort of mini-inventory of special achievements.</p>



<p class="wp-block-paragraph">Currently, we have two achievements: <a href="https://material.is/archive/">Material Conference</a> supporter and Alumni/Co-Worker.</p>



<p class="wp-block-paragraph">Back in 02016 we planned to have our first Material Conference. We tried to kickstart it, but the campaign didn&#8217;t get enough backers. We subsequently had an event in 02017, 02018 and we planned for 02020 but it was cancelled. If you attended, backed, or spoke at any of these four events you get an M on your badge. We have everyone&#8217;s email, but matching them to subscribers in the database is hit-or-miss, so if you think you should have this achievement, but don&#8217;t, let us know.</p>



<p class="wp-block-paragraph">The other is a small star for alumni/co-worker. We&#8217;re taking a very broad definition of alumni/co-worker. Obviously, we worked at the same company or you paid us or we paid you, it&#8217;s pretty clean-cut. Other situations include volunteer projects, open source projects or one-off special events. We considered those (as we remember them) in this definition too. If you think you should have a star, remind us why and we&#8217;ll add it.</p>



<p class="wp-block-paragraph">Over time we&#8217;ll add more achievements as we can think of them or justify their existence. They shouldn&#8217;t be impossible, but also shouldn&#8217;t be simple either. The achievement designs are unlikely to evolve over time or be affected by your subscription date.</p>



<p class="wp-block-paragraph">To keep the badges changing everything without re-inventing the entire design, we settled on a five-year cycle. Every fifth year, you get some upgrade. In year one, you start with a basalt column. For the next four years, one start is added. On your 6th year, you get the banner and the stars reset. The four following years are stars again, then on the 11th year you get the supporters. We reset the stars every 5 years and then count-up again. On the 16th year the supporters change color, on the 21st year the basalt column changes colors. Luckily, no one has been subscribed for more than 16 years. So we have 10 more years to figure-out what happens next and if this is worth continuing.</p>



<p class="wp-block-paragraph">You can visit the <a href="https://optional.is/newsletter/badge/">newsletter badge website</a> now to check what each year looks like as well as paste-in your email address to see your current badge, or sign-up to start. The link to your custom badge is pretty simple. It is a dynamic SVG that take your email address as a query parameter. We&#8217;ll use this in the footer of future email newsletter templates. Even if you revisit older saved newsletters, the image will be reloaded and show you the most current design. </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Week #807 &#038; #808</title>
		<link>https://optional.is/required/2026/08/07/week-807-808/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 07 Aug 2026 14:41:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Weeknotes]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[eps32]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[LEDs]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[webrtc]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10249</guid>

					<description><![CDATA[Another double weeknote where we explored two more iOS apps, continue to work with the LED project and winding down two more.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Week #807</h2>



<p class="wp-block-paragraph">Our WebRTC project has somewhat stalled. We meet normally on Fridays, and the consensus is that it&#8217;s moving too slowly between bug reports and fixes. We proposed to meet on Wednesdays for a short time, then Fridays to organize priorities. This week, they cancelled the Wednesday meeting (not sure why), then last minute cancelled the Friday meeting. Which is annoying because we spent some time over the previous weekend and Tuesday night to fix the immediate issues for review. Now we&#8217;re another week to two weeks behind.</p>



<p class="wp-block-paragraph">This week we&#8217;ve flashed the firmware on more devices, more times than we&#8217;ve done in the last few years combined. Two projects needed to update hardware. One being some security cameras, the other is an ESP32 to control some LEDs.</p>



<p class="wp-block-paragraph">The LED project continues, we&#8217;re trying to get any sort of feedback from the model builder about how they have installed the LEDs and what we can expect. We need some sort of ballpark on how many LEDs are installed, which impacts the power consumption and how many lines/universes were created, which affects the software an the pin connections to the ESP32.</p>



<p class="wp-block-paragraph">As part of the survey research company our current CEO is taking a leave of absences for health reasons. The rest of the team will setup and we&#8217;ll shuffle some responsibilities around, but it does mean both some extra work for us and also no new developments for the next school year.</p>



<p style="text-align: center"><a href="https://apps.apple.com/us/app/rest-music/id6759518339"><img decoding="async" src="https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/ad/da/a2/addaa231-8ab2-870d-7c08-df3a5b3ca7ae/Placeholder.mill/400x400bb-75.webp" style="height: 128px"/></a></p>



<p class="wp-block-paragraph">On Thursday we published an article about another internal app <a href="https://optional.is/required/2026/07/30/rest-music-player/">Rest Music</a>. We&#8217;ve made it public, it is our music app for the rest of our collection.</p>



<p class="wp-block-paragraph">As another late-night side project, we attempted to make a new camera app. We have a really good framework for experimenting with camera apps for the iPhone. In photography there is a concept of &#8220;Color Splash&#8221; where only 1 part of the image is in color and the rest is in black and white. It is completely possible todo this in post-production, but we really like the idea of producing these effects in camera so you can better frame your shot.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/08/spash-cam.jpg" alt="Splash Camera screenshots and samples"/></div>



<p class="wp-block-paragraph">Color Splash Camera was born. You can select a color hue range and in real-time, remove the saturation from all the pixels not in that range. It isn&#8217;t perfect, but as a first pass it works incredibly well.</p>



<h2 class="wp-block-heading">Week #808</h2>



<p class="wp-block-paragraph">Monday was a public holiday in Iceland. </p>



<p class="wp-block-paragraph">On Tuesday, we had a few meetings and started more planning. One project is now &#8220;un-officially&#8221; wrapped-up. The fixed we&#8217;re doing on the front-end are very minor.</p>



<p class="wp-block-paragraph">We also got an update on our LED project. We&#8217;ve spec&#8217;ed out some hardware and software with our 300 LED test. Today we got an updated on roughly the number of LEDs to expect and it is 1.4-1.5 orders of magnitude more. It&#8217;s not unconceivable we can handle that on the software side, but we need to go back to the drawing board on how we&#8217;re going to power and connect all these lines/universes. On Friday morning, the LED count was back down to only 1 order of magnitude more. Still no idea how many lines, but we&#8217;ll get those answers soon.</p>



<p class="wp-block-paragraph">It is August now and we&#8217;re oiling the machine and starting to turn the cranks to get the school survey system back up and running. Over the summer we added a few new features, updated the libraries and conducted general maintenance. Now it is time to deploy these changes and start to lockdown the releases before customers start using it.</p>



<p class="wp-block-paragraph">Along with our regular bank of surveys, we have an extra one we&#8217;re adding for a customer. This is very basic, but unique in that instead of test months, they need test weeks. It will be highly compressed schedule for the whole school year.</p>



<p class="wp-block-paragraph">On Friday we had a meeting about another project we&#8217;re trying to wrap-up. The client is hung-up on one tiny aspect, it is an important part of the product, but it is solvable in the long term. We convinced them to table that issue so we can work through all the rest in the meantime. That seemed to work and we&#8217;ll continue testing.</p>



<h2 class="wp-block-heading">Bric-à-brac</h2>



<p class="wp-block-paragraph">We were outside the office in downtown Reykjavik this week. We&#8217;re right under the flight path for the downtown airport. We got buzzed by the <a href="https://www.flyingbulls.at/en/">Red Bull Flying Bulls</a> P-38!</p>



<iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/NEcBx_H_RV8?si=Ec8KJ8W5BS0OtLeg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>



<p class="wp-block-paragraph">The P-38 is a very rare WWII plane worth millions of dollars. There are exhibitions to Greenland to try to dig out the ones that crash landed. No matter what the cost of the salvage it&#8217;s worth it.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Rest: Music Player</title>
		<link>https://optional.is/required/2026/07/30/rest-music-player/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Thu, 30 Jul 2026 12:21:00 +0000</pubDate>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Music and Audiology]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[offline]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[streaming]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=9671</guid>

					<description><![CDATA[We got tired of not finding tracks on streaming services, so we took it upon our selves to build an mp3 player app we can use to listen to the rest of our music collection.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">For the last few years, we&#8217;ve been using Apple Music for streaming. It&#8217;s great to have access to a gigantic catalog of songs, but it come with its downsides. <a href="https://www.youtube.com/watch?v=grKn_xzu-5M">Kevin Kelly is a big proponent of Access over Ownership</a>. We tend to agree that access to transportation, access to healthcare, access to education and access to entertainment is cheaper and offers more options than trying to build or own it yourself.</p>



<p class="wp-block-paragraph">The major downsides of &#8216;renting&#8217; your music is that the current payout for artists is pretty bad and if you like something you need to pay for it. The current situation isn&#8217;t sustainable. The second issue is censorship/curation. Maybe your favorite track doesn&#8217;t exist on any streaming service, or it is a crazy DJ mashup or live recording? Thirdly, you are relying on streaming gatekeepers for your access &#8211; if for some EULA reason they decide to cut you off, you loose access to everything and then ownership becomes more important.</p>



<p class="wp-block-paragraph">We used to have loads of CDs and MP3s that we listened too that aren&#8217;t on any streaming service. (We have BBC radio episodes converted from RealAudio Streams!) To enjoy our old music library we needed a new music player that could play songs locally not streamed. If you search for &#8220;Offline music player&#8221; on the App Store you get plenty of results. Some are free, some are ad driven, some have in app purchases, others cost to download. Some look good, some less so.</p>



<p class="wp-block-paragraph">As a programmer, we decided to make our own Offline music player that suited our needs and looked and worked as we wanted. (Sure it probably would have been cheaper to pay for several apps than spend a single hour of our billable time on it, but then you&#8217;d never learn anything). Besides, the world already has enough love songs, but musicians keep writing them!</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1000" height="411" src="https://optional.is/required/wp-content/uploads/2026/07/rest-screenshots-1.jpg" alt="" class="wp-image-10242" srcset="https://optional.is/required/wp-content/uploads/2026/07/rest-screenshots-1.jpg 1000w, https://optional.is/required/wp-content/uploads/2026/07/rest-screenshots-1-300x123.jpg 300w, https://optional.is/required/wp-content/uploads/2026/07/rest-screenshots-1-768x316.jpg 768w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>



<p class="wp-block-paragraph">To build the offline music player, we first made all the dummy screens we wanted with placeholder content. Next, we started to wire-up the connections to import, save and extract mp3 metadata. That replaced our placeholder text with real text. Then we actually got the music to play. Rinse, wash, repeat.</p>



<p class="wp-block-paragraph">We&#8217;re happy with the app and how it is performing. Occasionally we find edge-cases and fix those bugs.</p>



<p class="wp-block-paragraph">We called the app &#8220;Rest&#8221; since it is both the opposite of &#8220;Play&#8221; and a pun on &#8220;the rest of your music collection&#8221;. The songs that aren&#8217;t on streaming.</p>



<p style="text-align: center;"><a href="https://apps.apple.com/us/app/rest-music/id6759518339"><img decoding="async" src="https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/ad/da/a2/addaa231-8ab2-870d-7c08-df3a5b3ca7ae/Placeholder.mill/400x400bb-75.webp" style="height: 128px"/></a></p>



<p class="wp-block-paragraph"><a href="https://apps.apple.com/us/app/rest-music/id6759518339">Rest Music App is a free download for iOS</a>, so if you find it useful or find any bugs, drop us a line.</p>



<h2 class="wp-block-heading">Offline Mode</h2>



<p class="wp-block-paragraph">When you talk about having all your music downloaded outside of the streaming service you think about offline mode scenarios like long flights where Internet isn&#8217;t available.</p>



<p class="wp-block-paragraph">While that&#8217;s true, we find that Rest isn&#8217;t our offline music app, since you can take streaming songs offline too, it really is the &#8220;rest&#8221; of our music library that&#8217;s not available on streaming. That is more valuable than just being available offline.</p>



<h2 class="wp-block-heading">Next Steps</h2>



<p class="wp-block-paragraph">To get better feeling for what a Music app should have, we aped the built-in Music app from Apple as our template. Much like Hunter S. Thompson typing out a few pages of <em>The Great Gatsby</em> to get the feel and rhythm, we needed to know the workings of a Music app before we start to go all free-form Jazz. Now that we have the &#8216;table-stakes&#8217; in our working we can make it unique.</p>



<p class="wp-block-paragraph">The playback queue could use some love. When you toggle shuffle it does a good job of randomizing, but when you toggle it again it doesn&#8217;t really know how to go back to the original order.</p>



<p class="wp-block-paragraph">The Album artwork is only used as a display in playback. We can be more creative with what we have. Also our Playlist names and defaults when no artwork is available is simple some random gradient meshes. We should allow you to edit them if needed.</p>



<p class="wp-block-paragraph">These are all points we&#8217;ll address over time with more feedback, but we&#8217;re happy with the app and are using it on a frequent basis. Now that more people are aware of it, download it and use it, we&#8217;ll incorporate their feedback as well.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Week #805 &#038; #806</title>
		<link>https://optional.is/required/2026/07/24/week-805-806/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 24 Jul 2026 14:41:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Weeknotes]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[hubspot]]></category>
		<category><![CDATA[LED]]></category>
		<category><![CDATA[LEDs]]></category>
		<category><![CDATA[misseristal]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10194</guid>

					<description><![CDATA[A double weeknote of a pile of different small things all needing to be dealt with.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Week #805</h2>



<p class="wp-block-paragraph">We wrote about the Old Icelandic Month (kinda) of <em>Aukanætur</em>. This is a short 4 to 10 day week (depending if it is a leap week year) to keep the 12 months of 30 days each starting on the same weekday.</p>



<p class="wp-block-paragraph">It was a busy week, we touched on 9 different projects, sometimes all on the same day. It can be very exhausting, especially when we assumed a few of these were finishing. We&#8217;re really hoping that it is a transition period where some will be ending, others ramping-up, because we can&#8217;t have them overlap for too long!</p>



<p class="wp-block-paragraph">On the PETALS project, we found a bug that&#8217;s been plaguing us for a while. It was not code related, but DNS. To setup the CNAMEs on Heroku we use Cloudflare, but somewhere deep in their settings we also had something checked that would drop our x-headers when referring http to https causing some infinite redirects. For the longest time we had that auto-forwarding turned off. It works on the dev server and we were chasing ghosts for a long time on production. This week we finally pushed some Single Sign-On code for Google and Microsoft. Those required https and it worked on dev. When we pushed to production, it failed over and over. For days we reset API keys for the services, but it was never a code problem. Once we finally stumbled on the x-headers being striped, that lead us to Cloudflare. One checkbox later it was all working again as intended!</p>



<p class="wp-block-paragraph">For other projects this week we had to create a Hubspot syncing script, flash some custom camera firmware to get GPS working, looked into Gaussian splats, had another secret meeting to discuss JSON and rendering that output in XR, fixing bugs in a WebRTC client &#8211; which will probably come down to noise cancelling, and cleaned-up some SPSS and CSV exports to better match real survey data instead of database columns.</p>



<p class="wp-block-paragraph">In between all that, we managed to watch some of the World Cup games. </p>



<h2 class="wp-block-heading">Week #806</h2>



<p class="wp-block-paragraph">This week we managed to only spread ourselves over 7 projects, down two from last week.</p>



<p class="wp-block-paragraph">We&#8217;re really trying to wrap-up two projects. With one, we need to debug some WebRTC echos. The issue is that we use the phone as your camera and mic and the TV as the playback speakers. Of course we always tested with headphones, but now without we&#8217;re getting some echoing feedback. That needs to get fixed before the customer will test it all. Then we can get the last round of bugs, fix them, then re-evaluate our roll in the project. </p>



<p class="wp-block-paragraph">The other we&#8217;re just trying to get some basic API stuff working with some hardware cameras. Somehow we got in the middle between the manufacturer and the team building the backend portal. We&#8217;re trying to get ourselves out, but first we need this API working to add one last small GPS map position to the app. Then we need to re-evaluate our roll in that project.</p>



<p class="wp-block-paragraph">Internally, we managed to get a few things done. We continue to work on our Newsletter badges (more on that later), we created a script to create a random forest of trees based on the <a href="https://www.isny.de/otlaicher/isny-and-aicher?lang=en">Isny designs by Oti Aicher</a> and continued to update our suite of <a href="https://optional.is/apps/cameras/">camera apps</a> in preparation for iOS27. We added the ability to make them shortcuts on the Lock Screen. We&#8217;re still tweaking some icons, but expect an update soon.</p>



<p class="wp-block-paragraph">We also continued with our LED experiments for a client project (more on that later). Our end is going well, but we&#8217;re coördinating with another company and it is hard to get a straight answer out of them! The only responses we get are things like &#8220;When it&#8217;s all wired-up, we&#8217;ll know how many LEDs and lines we used&#8221;. Which makes it hard to plan for the power supply or software!</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Misseristal: Aukanætur</title>
		<link>https://optional.is/required/2026/07/17/misseristal-aukanaetur/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 17 Jul 2026 13:31:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Temporality]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[misseristal]]></category>
		<category><![CDATA[summer]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=5240</guid>

					<description><![CDATA[The Old Icelandic calendar needed to be converted to the Gregorian calendar, but the two systems were not exactly compatible. Sumarauki (or extra summer) is there to help rectify those pesky extra days and leap years.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><img decoding="async" style="width: 150px; float: right; padding-left: 15px" src="https://optional.is/required/wp-content/uploads/2021/07/misseristal-1.png" alt="M for Misseristal"/>The Old Icelandic Calendar, called <em>Misseristal</em> (translated as semester count), was started in the 10th century, continued until the 01700s, but its shadow lives on today.</p>



<p class="wp-block-paragraph">The calendar was designed to have exactly 12 months of 30 days. That&#8217;s 5.25 days short of a solar year.</p>



<p class="wp-block-paragraph">The other unique aspect of the Old Icelandic calendar is that the months always start on the same day of the week. <em>Sólmanuður</em> always starts on a Monday, <em>Heyannir</em> always starts on Sunday. To keep the months starting on the same day of the week, a 4 day month called <em>Aukanætur</em> (Extra Nights) is added in the middle of the 6 months of summer.</p>



<p class="wp-block-paragraph">That gets us to 364 days, which is divisible by 7 without a remainder. Now the drift each year is only 1.25 days from the Gregorian calendar. To make-up for this, every few years and additional seven days called <em>Sumarauki</em> are added to <em>Aukanætur</em>. This keeps the months consistently starting on the same day and rectifies the drift from the Gregorian calendar.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/07/calendar_grid.png" alt="Old Icelandic Calendar" /></div>



<p class="wp-block-paragraph">Next week is the start of <em>Aukanætur</em>. It is only 4 days long and there is no <em>Sumarauki</em> this year. This month also means we&#8217;re half-way through the six-month summer season. The days are still long, but they are getting shorter as we head towards the autumn equinox.</p>



<p class="wp-block-paragraph">While the Old Icelandic calendar is no longer used directly, there is still shadow of that old calendar in use in Iceland. For instance, <em>Sumardagurinn fyrsti</em> (The First Day of Summer) is a bank holiday and is always on a Thursday because it is connected to the Old Calendar format. The first day of <em>Gormánuður</em>, the start of the winter season, is becoming an event in Reykjavik, but rather than remind people of winter, it&#8217;s rebranded as <em>Kjötsúpudagurinn</em> (Meat-Soup Day). That is always on a Saturday. <em>Bóndadagur</em> (Men&#8217;s Day) and <em>Konudagur</em> (Women&#8217;s Day) holidays are both the first days of the Old Icelandic winter months of <em>Þorri</em> and <em>Góa</em>. Icelanders still celebrate <em>Þorri</em> with Þorramatur, a smorgasbord of pickled animal parts you&#8217;d never normally eat!</p>



<p class="wp-block-paragraph">Even though Iceland doesn&#8217;t use the Old Calendar on a daily basis, it is still used in many other ways.</p>



<p class="wp-block-paragraph">You can read more about <a href="https://optional.is/misseristal/">Misseristal and Download an ics calendar file</a> to add the Old Icelandic Calendar to your digital calendar.</p>



<p class="wp-block-paragraph">Each year we publish an <a href="https://github.com/optional-is/calendaring/tree/master/A0-Yearly">annual A0 wall calendar</a> and include the Old Icelandic Months along side the Gregorian ones. You can download the PDF and take it to any print shop to get your own A0 or A1 calendar poster.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
