<?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, 30 Oct 2026 13:36:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</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 #819 &#038; #820</title>
		<link>https://optional.is/required/2026/10/30/week-819-820/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 30 Oct 2026 13:31:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Weeknotes]]></category>
		<category><![CDATA[DUO]]></category>
		<category><![CDATA[LED]]></category>
		<category><![CDATA[surveys]]></category>
		<category><![CDATA[VR]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10577</guid>

					<description><![CDATA[A double weeknote covering a wide-range of different projects. Many of these are coming to a close, which should help our focus and progress on the remaining.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Week #819</h2>



<p class="wp-block-paragraph">This week we spent some time working on the Australian Concreter&#8217;s web app. It connects with their Xero accounting system, but most of this work was around job scheduling. We put a layer on top of the Tracking Categories (jobs) in Xero to track more information than is available in the system; like duration, start and end dates, execution steps, etc. We&#8217;ve always visualized this as a Gantt chart, but now we&#8217;re tweaking it a bit more as colored cards for each day&#8217;s tasks.</p>



<p class="wp-block-paragraph">For PETALS, we&#8217;re working on some basic Slack integrations. To start, it&#8217;s nothing fancy. We wanted to have the snapshot starts and nudge messages to also get posted to the team&#8217;s Slack channel as well as an email. If this works well, we&#8217;ll roll it out for others and add other integrations like Microsoft Teams. </p>



<p class="wp-block-paragraph">For our school reminder schedule, these weeks are pretty quiet. At the start of the month we work pretty hard contacting participants pretty much every other day. We do this for several reasons; using different mediums: email &amp; SMS to get coverage but also we want to give the school contacts enough time to round-up anyone still not completed with ample time. This week we sent out the &#8220;1 week left email&#8221; to participants and will pester the school contacts next week. For many schools in Iceland &#8216;winter break&#8217; has started. Usually that&#8217;s a Wed-Monday break, either last week this week or next week. That breaks-up the month, so being aggressive early with reminders means we aren&#8217;t stressed at the end when some customers have low participation rates.</p>



<p class="wp-block-paragraph">With the rollout of the iPhone DUO, we went back through a few <a href="https://optional.is/apps/">(optional.is) apps</a> and add some screenshots to App Store Connect. <a href="https://itunes.apple.com/us/app/triagemail/id1124659536?ls=1&amp;mt=8">Triagemail</a>, <a href="https://itunes.apple.com/us/app/dashbones/id1071726287?ls=1&amp;mt=8">Dashbones</a>, <a href="https://apps.apple.com/us/app/rest-music/id6759518339">Rest</a>, <a href="https://apps.apple.com/us/app/dice/id6642683052?ls=1&amp;mt=8">(Dice)</a> and more are ready to go.</p>



<p class="wp-block-paragraph">For another project, we&#8217;ve built a pretty comprehensive iPad/Mac app for presentations. Unsurprisingly, the customer has seen something using the browser and WebSockets. It is a way to send a private link to someone via email/chat and then using another tool, display content on that remote screen. It works great for static images and even for video if the connection is fast enough. This project makes use of USDZ 3D models which only comfortably render in Safari and Gaussian Splats, which we can nicely render using some Javascript libraries. Over the next few weeks we&#8217;ll explore this as another tool in their arsenal for the sales and marketing teams to present.</p>



<p class="wp-block-paragraph">We&#8217;re helping with a small part of another much larger project. On Tuesday, we took our VR headset to the local soccer field and recorded some demo footage. We can&#8217;t (yet) talk about the project, but our part is focused on some pass-thru and we needed a large open field. Originally we showed test footage from our office and that wasn&#8217;t enough, so we took it outside to the backyard and that still wasn&#8217;t flat or enough space. The soccer field really made the pass-thru demo(s) come alive. We&#8217;ll see what the next steps might be.</p>



<p class="wp-block-paragraph">On Thursday, we published an article about <a href="https://optional.is/required/2026/10/22/half-size-notebooks/">Half Sized Notebooks</a> and our exploration of Quarter Sized Notebooks. If you have some A3 paper and a good stapler, you can easily make your own.</p>



<p class="wp-block-paragraph">On Saturday, the Old Icelandic Month of Gormánuður started. This is the first month of the six-month winter season. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2744.png" alt="❄" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2744.png" alt="❄" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2744.png" alt="❄" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2744.png" alt="❄" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2744.png" alt="❄" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2744.png" alt="❄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> To celebrate and ignore the fact it is getting dark and cold, they are attempting to rebrand the start as Kjötsúpudagurinn, or meat soup day <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f356.png" alt="🍖" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f963.png" alt="🥣" class="wp-smiley" style="height: 1em; max-height: 1em;" />.&nbsp;</p>



<p class="wp-block-paragraph">On Saturday, we had todo some LED work. All the code and LEDs were installed and tested a few weeks ago. The model team assembled and are putting on the final touches and of course something fails. Debugging via chat with someone on the phone with their team isn&#8217;t ideal. Going in person and debugging via a video call is the way to go. We&#8217;re just a bit worried on where this error came from and why!</p>



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



<p class="wp-block-paragraph">It was also the end of the month this week, so that means paying the bills and backing up data. We have our &#8216;air-gapped&#8217; Time Machine backup external HD. We plug this in once a month and capture a backup of all the major computers.</p>



<p class="wp-block-paragraph">For another project that we started around Christmas 11 months ago &#8211; the one we were just going to swap the APIs for, is adding subscriptions into the app. &#8220;Just add a monthly subscription&#8221; is an easy thing to say and is actually pretty straightforward to add&#8230; but the sting is always in the details. Since this service relies heavily on a server-side component we need to make sure the subscription is valid, it hasn&#8217;t expired or been cancelled, puts limits on what&#8217;s possible in the app and more. We spent some time on Wednesday with the backend team setting this all up for their two apps. (It&#8217;s two different companies with slightly different products and target markets. Not the way we&#8217;d run it, but not our business)</p>



<p class="wp-block-paragraph">This week we continued to work on the iPad app to help display content from the CMS/CRM. The customer is gearing-up to show some their internal sales team next week and they are going over everything with a fine-toothed comb. This is great because we&#8217;re finding all the little spaces and issues that we missed. They&#8217;re fixed and deployed making the whole service better, cleaner and more stable.</p>



<p class="wp-block-paragraph">The LED model got a final inspection on Thursday. The next steps will be to transport it from the workshop in New York City down to Miami for display. Once it&#8217;s in situ, we&#8217;ll probably have to make tweaks to the lighting temperature and other minor fixes.</p>



<p class="wp-block-paragraph">Someone who downloaded the <a href="https://apps.apple.com/us/app/rest-music/id6759518339">Rest Music app</a> reached out with a bug when importing tracks with no ID3 metadata tags. We did our best to fix it to fail more gracefully. If you need a CarPlay compatible, offline music app, Rest is free and actively being updated.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Half Size Notebooks</title>
		<link>https://optional.is/required/2026/10/22/half-size-notebooks/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Thu, 22 Oct 2026 13:31:00 +0000</pubDate>
				<category><![CDATA[Paper]]></category>
		<category><![CDATA[You're doing it wrong]]></category>
		<category><![CDATA[A5]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[notebooks]]></category>
		<category><![CDATA[stationary]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10561</guid>

					<description><![CDATA[We took an idea we say from a Japanese stationary awards show and put our own twist on it to make quarter notebooks that are pretty useful!]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">We like notebooks, we even tried to start a company <a href="https://analog.is">analog.is</a> around notebooks. Recently, we&#8217;ve been making a different style of notebook and given a few to friends. The feedback has been great, so it&#8217;s time we write a bit more about them.</p>



<p class="wp-block-paragraph">There is a company in Japan <a href="https://www.kokuyostore.com">KOKUYO</a> who makes Campus notebooks. They have won Japanese Stationary awards for their projects. It was probably here that we first saw half sized notebooks. Their&#8217;s are smaller B6 sized notebooks, similar to an A5 notebook. What made these unique was that instead of the spine being on the long side and opening portrait orientation like the books we&#8217;re used too, it was bound along the shorter side and opened landscape.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/10/half-notebook.jpg" alt="Photo of an A5 notebook opened long-ways underneath a computer laptop keyboard." /></div>



<p class="wp-block-paragraph">Imaging taking one of those detective pocket notebooks with the spiral-bound top and turning them on their side. </p>



<p class="wp-block-paragraph">This is an evolution of usage. Kokoyou observed that students were studying in front of a computer with a full-sized notebook sitting awkwardly to the side. They created notebooks were shorter, opened landscape and could sit comfortably underneath the keyboard.</p>



<p class="wp-block-paragraph">We proceeded to make a few of our own A5 prototypes. To make your own notebooks doesn&#8217;t require any specialized tools.</p>



<p class="wp-block-paragraph">Take an A3 sheet of paper and fold it in half to make an A4 sheet. We did this with 5 large sheets of A3 and made a 20-page A4 notebook. We have heavier A4 card stock that we taped together on the long side and put all the folded A3 leaves inside. After stapling, that makes an A4 notebook that opens to an A3.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/10/a3-a5.png" alt="Illustration of the steps to convert an A3 to an A5 Half Notebook" /></div>



<p class="wp-block-paragraph">To make a half notebook, you cut that A4 notebook in half horizontally through the middle. Now you have two A5 sized notebooks but they open on the shorter side and unfold to the width of an A3. These fit nicely under a keyboard and in all the spots you&#8217;d expect an A5 notebook to normally fit. It&#8217;s the side that&#8217;s bound for opening that makes the notebooks different. It&#8217;s the shorter side opening landscape rather than the long side opening portrait.</p>



<h3 class="wp-block-heading">Quarter Sized Notebooks</h3>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/10/quaternotebooks.png" alt="Illustration of the A5 Half Notebook cut in half again length-wise to make a Quarter Notebook" /></div>



<p class="wp-block-paragraph">As a test, we sliced those A5 notebooks in half horizontally again! They are no longer part of an A-series paper size and the first person we showed them to said &#8220;Oh, a checkbook!&#8221;. (Admittedly that reference is lost on most people.)</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/10/quarter-notebook.jpg" alt="Photo of a Quarter Notebook underneath a keyboard" /></div>



<p class="wp-block-paragraph">This size fit even easier under your workspace, but the height-to-width ratio is pretty extreme! Only through usage, doodling and taking them on the road will we know if they are useful compared to their half sized siblings.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/10/notebooks.jpg" alt="A pile of homemade half and quarter notebooks"/></div>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4d6.png" alt="📖" class="wp-smiley" style="height: 1em; max-height: 1em;" /> The future is analog.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Week #817 &#038; #818</title>
		<link>https://optional.is/required/2026/10/16/week-817-818/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 13:31:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Weeknotes]]></category>
		<category><![CDATA[LEDs]]></category>
		<category><![CDATA[newsletter]]></category>
		<category><![CDATA[surveys]]></category>
		<category><![CDATA[VR]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10518</guid>

					<description><![CDATA[Another double weeknote as Summer quickly ended and we skipped fall and went straight into the start of stormy winter weather.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Week #817</h2>



<p class="wp-block-paragraph">We organized three surveys this month. We continue with our monthly student survey. October is usually one of our largest months. We also started a survey for younger students and high school students. For the 1st-5th graders, it is all anonymous, no names, just sex and grade. We send the info to the school contact who keeps track of who&#8217;s taken it and hasn&#8217;t and hands out the unique codes accordingly. The survey is all text to speech and images. At the other end of the spectrum, we have high schoolers who seem to ignore emails, but respond &#8220;better&#8221; to SMSes. Next week we&#8217;ll send an email about our upcoming robo-calls and the actual robo-calls next week.</p>



<p class="wp-block-paragraph">On Tuesday we sent our <a href="https://optional.is/newsletter/02026Q4/">◍ Quarternotes Q4</a>. We introduce our custom subscriber <a href="https://optional.is/newsletter/badge/">badges</a>, so <a href="https://optional.is/newsletter/subscribe/">if you&#8217;re not subscribed you should</a>!</p>



<p class="wp-block-paragraph">We published <a href="https://optional.is/required/2026/10/09/more-prototype-cameras/">more about our experimental camera apps</a> and along with that updated the <a href="https://optional.is/apps/cameras/">dedicated camera page</a> with our App Bundle and these two new experiments.</p>



<p class="wp-block-paragraph">On Wednesday we went to an afternoon meet-up about some Nordic Game Designers. We couldn&#8217;t stick around long, but it was interesting to see and meet some folks from the academic side of things.</p>



<p class="wp-block-paragraph">We also continued to work a bit more on an VR/AR prototype based on a Unity app. This is a super cool project, but they don&#8217;t have a clear direction and our time on the project is coming to an end.</p>



<p class="wp-block-paragraph">We&#8217;ve also been deep in another internal game project that has been picking-up some speed while we wait for other game projects to get green-lit meetings.</p>



<p class="wp-block-paragraph">We did our second-to-last pass on some of the LED lighting, code and assignments into the database. There is atleast one more review in the workshop and then again in situ for the client. And probably a few more in between as we continue to iron out small details.</p>



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



<p class="wp-block-paragraph">Monday was a federal holiday in the US, so things were a bit slow. </p>



<p class="wp-block-paragraph">On the survey side, we ran a small A/B/C test. On Monday, we conducted our robocalls to high school students. They respond much better to SMSes than to emails. The previous Friday, we sent an email letting them know about the upcoming Monday robocall and the ability to opt-out. As a test, we wanted to send an email to a sub-set of schools and see if their response rates increased or not. SMSes cost much more than emails to send, but not so much if we can drastically increase the participation. On Sunday, we first recorded all the school response rates. Then we chose two schools: the highest and lowest response rates and sent their students SMS reminders about the Monday robocall. We sent a similar SMS to two different schools on Monday morning. With this information we wanted to measure 2 variables with our test and control groups. Did sending an SMS reminder about a robocall spur more participants to answer? We could measure the difference between the response rates on Sunday morning compared to the change on Tuesday after the robocall. We also could measure if a reminder on a Sunday pushed more participants to immediately answer worked better or worse than on a Monday. We strive for an 80% response rate for reliable data, so anything that can increase by just 1% helps.</p>



<p class="wp-block-paragraph">We continue to tweak some web calendar tool for the concreters in Australia. They put in all their job info and construction steps. Originally this was on a gantt chart style view, then we moved it to a weekly calendar. Now the events for sequential days don&#8217;t line-up. So we&#8217;re trying to find some middle ground.</p>



<p class="wp-block-paragraph">Another project we&#8217;ve been trying to get out continues to drag on. We built a health related survey probably 10 years ago and no longer can support it. We&#8217;ve been working on handing it off for months, but we&#8217;re told it is currently stuck in legal. The lawyers re drafting updated contracts for the new suppliers and we can&#8217;t move it until they agree&#8230; so we continue to support it until that happens.</p>



<p class="wp-block-paragraph">On Thursday, we had a long morning chat with an old friend and played catch-up on their projects and ours. We brainstormed a bit about some stereoscopic camera apps and how a dedicated app has its advantages over the native ones for syncing and re-combining images into a 3D image from two different devices.</p>



<p class="wp-block-paragraph">Another project we&#8217;ve been working on is basically a CMS (Content Management System) with some pretty specific features. As part of that, we built an iOS app for the iPad and a Desktop app for viewing. After a quick meeting with the client and some of their sales folks, we are re-using the web-based CMS tool to also act as a presentation tool. It won&#8217;t be as full-featured as the app, but it is cross-platform and the end-customer can also load the content locally for remote presentations.</p>



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



<p class="wp-block-paragraph">As part of another projects, we were shown this: <a href="https://www.onelinefonts.com">Onelinefonts.com</a> It is the source for single line fonts for use with CNC machining, engraving, scrapbooking, and many other creative endeavors.</p>



<p class="wp-block-paragraph">That&#8217;s a pretty specific use-case, but an important one!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>More Prototype Cameras</title>
		<link>https://optional.is/required/2026/10/09/more-prototype-cameras/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 09 Oct 2026 13:31:00 +0000</pubDate>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[color spash]]></category>
		<category><![CDATA[hue]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[tilt shift]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10515</guid>

					<description><![CDATA[We continue to experiment with cameras. Two new ones we've been testing out these last few weeks and gathering feedback and changes.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">We like making camera apps. Each year new phones are released and even though tech companies like to wow you with all their new features, it feels like we plateaued a long time ago with functionality (for most people). The device you had 5 years ago is just as capable of surfing the web, playing podcasts and videos as the top-of-the-line device today. There is one thing that has noticeably improved and that&#8217;s the camera. Maybe not between years, but certainly the sensor quality between an iPhone 4, 7, 12 and 17 are remarkably different!</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/10/iphone-lego-pirate-compare.jpg" alt="Three photos taken on the iPhone 7, 12, 17 of a LEGO Redbeard pirate. You can see the improving quality with each photo slice" /></div>



<p class="wp-block-paragraph">We like taking pictures and we like experimenting. Recently, we had a few photographic itches to scratch, so we created a few more cameras for us to test internally. They&#8217;re not public (yet), but if you want to try them, let us know.</p>



<p class="wp-block-paragraph">At this point, we have a solid, shared code base for accessing the iPhone&#8217;s camera lenses and permissions. There is a massive amount of overlap to simply get a camera or video feed and save that back to the camera roll. Now that we&#8217;ve setup this &#8216;common camera&#8217; code any bugs we find are also immediately applied to all our camera apps. It also means that the last step in the camera app&#8217;s life-cycle is where we can focus, the actual taking of the photo. Usually as we capture frames off the camera&#8217;s feed we apply the desired filter and then again when the camera image is saved.</p>



<p class="wp-block-paragraph">We can quickly create a new camera app and focus on just making something interesting happen on that live feed. Since everything is already nicely abstracted, it is easy to experiment.</p>



<p class="wp-block-paragraph">It should be noted that many similar apps are available on the App Store. The ones we&#8217;ve tried either didn&#8217;t work, were clunky and not really updated or weren&#8217;t what we wanted. You&#8217;re milage may vary. We&#8217;re lucky enough to be able to make our own in the style we like, which we also made available to download.</p>



<h2 class="wp-block-heading">Color Splash</h2>



<p class="wp-block-paragraph">We saw a few tutorials about how to make your black and white images &#8220;pop&#8221; by selecting just one color and making the rest black and white. The process is pretty straight forward in any image editting software. Duplicate the image onto another later and make it completely black and white. On the top later mask or erase all the other colors. We wanted to replicate this in camera.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/10/color-splash.jpg" alt="A collage of photos that are black and white with the exception of one color. Two images of a yellow light out, an image of orange trees and another of an orange life preserver on a pier." /></div>



<p class="wp-block-paragraph">Sure you can also do this in post-production, but sometimes seeing the final output helps you compose the shot better. Then there are folks who just want to take the photo and share it rather than fiddle with it too much afterwards.</p>



<p class="wp-block-paragraph">The output is still rough around the edges because many organic things don&#8217;t nicely stop and start at a given color. Faces and edges sometimes are problematic, but we have plans to help with this by allowing you to mask areas to also make black and white no matter what the color actually is in camera.</p>



<h2 class="wp-block-heading">Tilt Shift</h2>



<p class="wp-block-paragraph">Tilt-Shift photography is something that is done with an offset lens. When composed well, it makes the scene look like a tiny model. Coupled with some sharpening, dropping of frames and speeding up the video you get a sort of tiny world stop motion effect.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/10/tilt-shift-1.jpg" alt="A collage of images attempting to show a blurred top and bottom to make it feel smaller like a tiny train model." /></div>



<p class="wp-block-paragraph">We wanted to mimic this in camera and handle the features we wanted. While testing this, we quickly realized that to make it &#8216;feel small&#8217; there is also a lot of specific compositions rather than camera technical issues. Getting too much of a close-up doesn&#8217;t let you feel the scale. Having foreground and background images in focus also feels strange. Composing from above as opposed to from below also helps the effect. If we&#8217;re making things feel smaller, why are you even smaller looking up or at the same level?</p>



<p class="wp-block-paragraph">All these are not technical issues with the camera, but more stylistic choices which we&#8217;d never know about unless we got out there and took photos. There are some bugs and blur transitions we&#8217;d like to fix, but there&#8217;s a seed of progress and something fun for sure.</p>



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



<p class="wp-block-paragraph">Right now, both camera apps &#8216;work&#8217; but they feel like they&#8217;re 95% complete. They correctly demonstrate the desired effect, but they&#8217;re not at a point yet to put out into the real world. Firstly, we&#8217;ll fix a few issues that bug us when snapping then open up to the public for feedback and download. If you want to beta test, let us know.</p>



<h2 class="wp-block-heading">Our Other Camera Apps</h2>



<p class="wp-block-paragraph">We have six other camera apps available on the Apple App Store for $1.99 each: </p>



<ul class="wp-block-list">
<li><a href="https://apps.apple.com/us/app/blocks-camera/id6751630500?ls=1&amp;mt=8">Blocks Cam</a>: Convert any photo into pixel art with several different color filters</li>



<li><a href="https://apps.apple.com/us/app/lut-photo/id6749096589?ls=1&amp;mt=8">CameLUT</a>: Load custom LUT Cubes. It&#8217;s a bring your own filter camera</li>



<li><a href="https://apps.apple.com/us/app/dejaview/id1598005975?ls=1&amp;mt=8">DejaView</a>: Takes four photos that reach back into the past</li>



<li><a href="https://apps.apple.com/us/app/ornithoto/id1665382610?ls=1&amp;mt=8">Ornithoto</a>: Continually merging frames to make action trails</li>



<li><a href="https://apps.apple.com/us/app/sf-camera/id6767219686?ls=1&amp;mt=8">SF Camera</a>: Split Fount gradient overlays of your images.</li>



<li><a href="https://apps.apple.com/us/app/trichromacy/id6761666059?ls=1&amp;mt=8">Trichromacy</a>: Each of the RGB layers is on a slight delay.</li>
</ul>



<div class="optional_app_list">
<a href="https://apps.apple.com/us/app/blocks-camera/id6751630500?ls=1&amp;mt=8"><img decoding="async" style="border-radius: 0; box-shadow: none;  padding: 0; margin: 0.5em .25em; border: none; vertical-align: middle;" height="55" width="55" valign="middle" src="https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/5e/9d/9d/5e9d9df5-fed7-78c5-65a4-50ab3738f60b/Placeholder.mill/400x400bb-75.webp" alt="Download Blocks Cam on the App Store"/></a>
<a href="https://apps.apple.com/us/app/lut-photo/id6749096589?ls=1&amp;mt=8"><img decoding="async" style="border-radius: 0; box-shadow: none;  padding: 0; margin: 0.5em .25em; border: none; vertical-align: middle;" height="55" width="55" valign="middle" src="https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/ae/8c/1c/ae8c1cfe-9524-c224-dc35-292a630bce0e/Placeholder.mill/400x400bb-75.webp" alt="Download Camelut on the App Store"/></a>
<a href="https://apps.apple.com/us/app/dejaview/id1598005975?ls=1&amp;mt=8"><img decoding="async" style=" border-radius: 0; box-shadow: none;  padding: 0; margin: 0.5em .25em; border: none; vertical-align: middle;" height="55" width="55" valign="middle" src="https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/1a/38/03/1a3803d7-061a-e28a-49df-12212e161fb4/Placeholder.mill/400x400bb-75.webp" alt="Download DejaView on the App Store"/></a>
<a href="https://apps.apple.com/us/app/ornithoto/id1665382610?ls=1&amp;mt=8"><img loading="lazy" decoding="async" style="border-radius: 0; box-shadow: none;  padding: 0; margin: 0.5em .25em; border: none; vertical-align: middle;" height="55" width="55" valign="middle" src="https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/89/9c/19/899c196e-0a3d-5274-4558-2302f9a2938f/Placeholder.mill/360x360bb.png" alt="Download Ornithoto on the App Store"/></a>
<a href="https://apps.apple.com/us/app/sf-camera/id6767219686?ls=1&amp;mt=8"><img loading="lazy" decoding="async" style="border-radius: 0; box-shadow: none;  padding: 0; margin: 0.5em .25em; border: none; vertical-align: middle;" height="55" width="55" valign="middle" src="https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/65/cd/2e/65cd2ecd-7412-7210-b351-6d45490f9f7c/Placeholder.mill/400x400bb-75.webp" alt="Download SF Camera on the App Store"/></a>
<a href="https://apps.apple.com/us/app/trichromacy/id6761666059?ls=1&amp;mt=8"><img loading="lazy" decoding="async" style="clip-path: url(#squircle); border-radius: 0; box-shadow: none;  padding: 0; margin: 0.5em .25em; border: none; vertical-align: middle;" height="55" width="55" valign="middle" src="https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/f4/ea/f1/f4eaf15a-31d8-c10e-2192-0097fe580250/Placeholder.mill/400x400bb-75.webp" alt="Download Trichromacy on the App Store"/></a>
</div>



<p class="wp-block-paragraph"><a href="https://itunes.apple.com/us/app-bundle/id1896480015?mt=8">Our collection of 6 iOS camera apps all bundled-up for a single price of $3.99</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Week #815 &#038; #816</title>
		<link>https://optional.is/required/2026/10/02/week-815-816/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 02 Oct 2026 13:31:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Weeknotes]]></category>
		<category><![CDATA[A1]]></category>
		<category><![CDATA[AR]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[calendars]]></category>
		<category><![CDATA[printing]]></category>
		<category><![CDATA[surveys]]></category>
		<category><![CDATA[VR]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10329</guid>

					<description><![CDATA[A double weeknote to start Q4.

Surveys, printing, VR and more!]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Week #815</h2>



<p class="wp-block-paragraph">This week we continued work on a few older projects.</p>



<p class="wp-block-paragraph">The old health survey we&#8217;re trying to extract ourselves from continues to keep adding little things. We do them and charge an hourly rate, but next week they will be taking it back out in public, probably the first time since COVID 6+ years ago. That feels like things are &#8220;done&#8221; enough that we can pass this project off to their other development team. On Friday, we meet-up with the client and went over a bunch of small tasks as we start the transition.</p>



<p class="wp-block-paragraph">Overall, the project is fine, but times have changed and we are not dealing with sensitive health data on any other projects. This is becoming a bigger liability than we&#8217;re willing to periodically take on. Giving this to another team that works closer with the organization is best for everyone.</p>



<p class="wp-block-paragraph">The camera project we were only supposed to swap the API for last Christmas is also in a good spot. We debugged a few issues this week with the GPS tracking. Otherwise things are pretty quiet and they will meet some potential investors next week. If they manage to get some funding, they will hire a team and we&#8217;ll pass-off this project to them as well.</p>



<p class="wp-block-paragraph">Another project from last Christmas is also coming back. This one&#8217;s been on some pretty big ups and downs (shame we can&#8217;t talk about it yet). But we worked with them again this week to create yet another quick demo app skinned to look like the company we&#8217;re pitching to. As of Thursday night, it seems like plans are changing for the good and now we need to consider pitching this to atleast two companies now!</p>



<p class="wp-block-paragraph">On the school survey front, October is a big month. We have the most schools taking part in the 6-10th grade surveys and we also conduct a one-off 1-5th grade survey. Before those start, we&#8217;re adding Arabic to both of those surveys. It isn&#8217;t a huge process, we have a nice way to export all the translations keys and we send that off to translation with either an English or Icelandic base. We get back the Arabic which we put back into the system. Then we generate mp4 files for each of these strings so we have a cached text-to-speech option for anyone who has trouble reading.</p>



<p class="wp-block-paragraph">There is a potential VR/AR project waiting for us in the wings. Another part of the team has been working on a web-based Unity app for a customer and it&#8217;s coming time to eventually port this to VR/AR. (Again, another project we&#8217;d love to talk about, but can&#8217;t yet)</p>



<p class="wp-block-paragraph">In the time between projects, we continue to tick off a few issues on our iPad/Mac/LED project. Overall, we&#8217;re in a great shape and ahead of other parties working on this project.</p>



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



<p class="wp-block-paragraph">We continue to wrap-up the Health Survey as we finish off the last tweaks before we hand it over. The goal is to make that transition before the end of the month, but that&#8217;s dependent on the incoming team and the lawyers reviewing all the compliance documentation.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="472" src="https://optional.is/required/wp-content/uploads/2026/09/02027-Calendar-1024x472.jpg" alt="" class="wp-image-10511" srcset="https://optional.is/required/wp-content/uploads/2026/09/02027-Calendar-1024x472.jpg 1024w, https://optional.is/required/wp-content/uploads/2026/09/02027-Calendar-300x138.jpg 300w, https://optional.is/required/wp-content/uploads/2026/09/02027-Calendar-768x354.jpg 768w, https://optional.is/required/wp-content/uploads/2026/09/02027-Calendar.jpg 1312w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">On Tuesday, we collected our A1 poster prints. We use a local company called <a href="https://pixel.is">pixel.is</a> to do the printing on their A1 architectural printer. It costs around $3 per sheet. This year we printed a bunch of <a href="https://github.com/optional-is/calendaring/blob/master/A0-Yearly/02027-Misseristal-A0.pdf">02027 calendars, which you can download the PDF and print yourself</a> along with two test art posters and a map poster which we intend to annotate.</p>



<p class="wp-block-paragraph">On the &#8216;keep things running&#8217; front, we have a few lambda function on AWS that we babysit. Annoyingly, they are getting old and AWS complains we need to change our Python runtime. Todo this, we need to upgrade some libraries, which are no longer supported. We bit the bullet, and made the changes, replaced the old libraries and got it working. Hopefully it will be a few more years now before we need to touch it again.</p>



<p class="wp-block-paragraph">It is also the end of the month, so it&#8217;s time to get all the bills sorted and logged for the accountants. A stitch in time saved nine. While all the bookkeeping is annoying, small monthly doses make the end of the year much easier to swallow!</p>



<p class="wp-block-paragraph">We have a game prototype that&#8217;s built and pretty far along. It&#8217;s waiting to be shopped around to a few organizations and get some blessings on the intellectual property we&#8217;ve used. While we wait, we&#8217;re double-dipping and duplicating all the code to make a similar, but differently themed version. That&#8217;s been ongoing, but this week we really turned the corner. There is a working HTML wireframe that is powered by the content database. This allows us to do two things at once; improve the content and find out which screens and states are missing.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cable Identification</title>
		<link>https://optional.is/required/2026/09/24/cable-identification/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Thu, 24 Sep 2026 12:21:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[You're doing it wrong]]></category>
		<category><![CDATA[cables]]></category>
		<category><![CDATA[hama]]></category>
		<category><![CDATA[id]]></category>
		<category><![CDATA[perler]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10403</guid>

					<description><![CDATA[A quick pro tip to keep your cables organized both for yourself and others.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">We wrote a toot on an old mastodon server that&#8217;s gone and can&#8217;t find any online reference to it. We&#8217;re re-posting it here and expanding on it. (Do you have a backup/data dump of your social media?)</p>



<p class="wp-block-paragraph">We were recently traveling and when we pulled out our cables, people asked about the tags. </p>



<figure class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/09/53b78b77913b8285.jpeg" alt="The knife slices the plastic bead long-ways and another is wrapped it around the cable." /></figure>



<p class="wp-block-paragraph">Here’s how we organize our cables.</p>



<ol class="wp-block-list">
<li>Get a knife and some plastic melting beads used for kids’ art projects.</li>



<li>Using the knife, cut the bead length-wise to create a break and wrap it around the cable.</li>



<li>Use different colors, shades or color combinations to identify types and lengths of cables.</li>
</ol>



<p class="wp-block-paragraph">When everyone has their <a href="https://en.wikipedia.org/wiki/Rat_king">Rat king</a> of cables, you know which are yours.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">Over the last few years we&#8217;ve been transitioning away from USB-A, lightening and other non-USB-C cables. Somewhere along the line we set yellow-ish colors to demarcate lightening cables and blue-ish colors for USB-C.</p>



<p class="wp-block-paragraph">Adding colored markers to both ends of a cable, we know what-is-what when pulling them out of a bundle. Is this a game-changing-life-saver? Probably not, but it helps us stay organized and at a glance we can tell if we&#8217;re missing a cable.</p>



<p class="wp-block-paragraph">This also helps our desktop setup. As cables on top of the desk disappear underneath and to the back of a computer, because they are color labeled we know which to safely remove when needed.</p>



<p class="wp-block-paragraph">We originally had the idea to use a few colors for the connector type and another color on each end to let you know if it was A-to-A or A-to-C or C-to-C or something else to A or C. That wasn&#8217;t really practical for us in the end, so we stuck with one color applied at both ends of the cable.</p>



<figure class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/09/cable-ids.jpg" alt="Photo of several cables with bead labels and two bags full of extra beads sorted by warm and cool colors."/></figure>



<p class="wp-block-paragraph">There are a lot of shades of Yellow and Blue that we could pull from. That turns out to be pretty handy because we do bring several USB-C cables on trips. They charge phones, tablets, watches, batteries, computers and more.</p>



<p class="wp-block-paragraph">Feel free to create your own system. 1, 2 or 3 colors for what ever you want format or designation you need: Data only, 60W, 100W, 240W cables, USB-A-to-C, micro-USB, Qi, etc.</p>



<p class="wp-block-paragraph">The original idea for the color coding comes from electronic resisters. They are color-coded and if you know how to read it, you can figure out the impedance.</p>



<figure class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/09/ResistorColorCodeGuide.jpg" alt="A photo of a business card with 3 turnable wheels. These wheels adjusted the color of the resister band through a small cutout on the card." /><figcaption>RMA resistor color code guide, ca. 01945–01950</figcaption></figure>



<p class="wp-block-paragraph">The color-codes in electronics are very specific and tolerance demanding. Our color system is much less important. If you picked-up the wrong cable, it was probably fine if the plug fits, maybe it wasn&#8217;t optimal, but it wouldn&#8217;t short-out the electrons.</p>



<p class="wp-block-paragraph">When traveling, as part of our kit, we have a small bag of these beads pre-sliced. Not for, all our cables are marked, but to share with others.</p>
]]></content:encoded>
					
		
		
			</item>
		<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 loading="lazy" 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="auto, (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>
	</channel>
</rss>
