<?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, 10 Jul 2026 20:13:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.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 #803 &#038; #804</title>
		<link>https://optional.is/required/2026/07/10/week-803-804/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 10 Jul 2026 20:02:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Weeknotes]]></category>
		<category><![CDATA[LEDs]]></category>
		<category><![CDATA[meeting]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[summer]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10177</guid>

					<description><![CDATA[Another double weeknote covering the summer tasks, meetings and lots of internal planning.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Week #803</h2>



<p class="wp-block-paragraph">On Tuesday, we got pulled into a cryptic meeting. No explanation, no obvious meeting invite title. We were told not everyone needed to be on the call and since it was the last day of the month, it felt like it could be trouble! It turns out, a new start-up needs our help. It is a crazy project, with a crazy deadline, but the end-customer is pretty interesting. Obviously, we can&#8217;t really talk about it, but maybe after September once it is in the clients hands, we can mention it?</p>



<p class="wp-block-paragraph">A few months ago, we took over the direct communications with the Australian projects. Our contact has gotten out of the way as the middle man and we&#8217;ve been working direct. We sent off an invoice a month or more ago and they set the pay date as the last possible day in our invoice. (That was our mistake being nice using a standard 30 net payment). As expected, when it came time for them to pay, because it was an international transfer, they had no idea what todo. It&#8217;s been 2 weeks now and we&#8217;re still trying to figure it all out. On their Friday, they sort of gave-up and wired us some money via Western Union. After a bunch of back and forth with the local post-office about what to bring and how to get the money, we finally went to collect it and they won&#8217;t release it to a company bank account. The Australians need to cancel the transaction and go back to sorting out via the bank. Luckily, this only happens the first time, then subsequent invoice should be much smoother.</p>



<p class="wp-block-paragraph">The office is finally getting a re-organization. As part of that we&#8217;ve purchased a new couch. There was a massive sale, 40% off, but it came with a bunch of gotchas! That deal was only on the showroom floor demo model, which is fine, and those don&#8217;t include home delivery. So we had to hire a delivery guy. Still saving plenty of money. When the couch arrived, it BARELY fit through the stair and hallway, but it&#8217;s in now and a much needed upgrade.</p>



<p class="wp-block-paragraph">On Thursday we published <a href="https://optional.is/required/2026/07/02/hunter-gatherers-and-agriculturalists/">Hunter Gatherers and Agriculturalists</a>. It is a look at some stats and assumptions about how many people in Iceland (and probably elsewhere) are freelancers working project-to-project rather than salaried team members.</p>



<p class="wp-block-paragraph">On Friday, we meet-up about our an LED wiring project. We worked on prototype hardware, ordered some parts and plan to fab a case. We have a demo box with some basic software running on the ESP32 firmware for us to start to test getting an iPad to send UDP commands to this box to control the LED strip. This will be a small project for the next few weeks.</p>



<p class="wp-block-paragraph">In our free time we also manage to clean-up a bit of code and soft released our <a href="https://apps.apple.com/us/app/rest-music/id6759518339">Rest Music</a> app. It is a free offline mp3 player for your iPhone or iPad. We&#8217;ll have a longer write-up soon, but we realized that we haven&#8217;t been listening to some older artists and songs because they are not on any streaming service. We own the mp3 files, so scratched an itch to be able to play them on our devices when we want. Hence the play on the name &#8220;Rest&#8221; of your music.</p>



<p class="wp-block-paragraph">On Saturday was the USA&#8217;s 250th Birthday.</p>



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



<p class="wp-block-paragraph">In preparations for the fall, we&#8217;ve fixing lots of little small things for our school surveys. No one is in school or taking surveys so this is the perfect opportunity to do all our maintenance. Upgrading libraries, servers, databases and code are all on the list to be ready for a September start.</p>



<p class="wp-block-paragraph">Our top secret project is taking shape. We didn&#8217;t have any tasks this week but some things are coming for sure. We also fix a bunch of UI/UX issues on another project.</p>



<p class="wp-block-paragraph">Several months ago, we pushed for one of our smaller ideas to be picked-up by the team. It was as a &#8216;B&#8217; project. That&#8217;s been going well and we check-in on the progress. Now it has grown past just our idea and prototype and is truly owned by the larger team. We still get to contribute in other ways. This week we offered up a few different difficult algorithms that we implemented on the backend and have been testing as a team. </p>



<p class="wp-block-paragraph">On Thursday we sent our <a href="https://optional.is/newsletter/02026Q3/">02026 Q3 Quarternotes newsletter</a>. You can read the archives online.</p>



<p class="wp-block-paragraph">Friday we had a meeting about yet another project. This one is in the final stages. We have a few bugs to fix, but generally the client is bringing another person onboard to help push this over the line and figure out exactly what&#8217;s the next steps for this project.</p>



<p class="wp-block-paragraph">The project we started 7-8 months back in <a href="https://optional.is/required/2025/09/05/week-759-760/">Week #759</a> to just re-wire an API. It is still ongoing and was a total re-engineering task. Luckily that was not on us. This project too is also in its last phase for us. They are having meeting and planning some fundraising which would start to build a team and we&#8217;d extricate ourselves from the project. </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Hunter Gatherers and Agriculturalists</title>
		<link>https://optional.is/required/2026/07/02/hunter-gatherers-and-agriculturalists/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Thu, 02 Jul 2026 13:31:00 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[agriculturalist]]></category>
		<category><![CDATA[freelancer]]></category>
		<category><![CDATA[hunter gatherer]]></category>
		<category><![CDATA[products]]></category>
		<category><![CDATA[projects]]></category>
		<guid isPermaLink="false">http://optional.is/required/?p=3183</guid>

					<description><![CDATA[There was a seismic shift in humanity when we changed from Hunter Gathers to Agriculturalists. Today we still have plenty of hunter gatherers tracking out the next project rather than meal.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">During the Neolithic Era, around 12,000 years ago, humans started to switch from hunting and  gathering to agriculture and farming. As time passed and we moved into the Industrial Revolution through to the Anthropocene, we sort of assumed that hunter gatherer way of life is long gone. While for most people, we&#8217;re not actively hunting or gathering food, many of us are still in that mindset when it comes to work!</p>



<p class="wp-block-paragraph">Are you a Hunter Gatherer or an Agriculturalist? Maybe neither, but you work for one?</p>



<p class="wp-block-paragraph">Hunter Gatherers are always on the move to try and find their next meal. Sometimes it is big project, sometimes small. Projects come in waves and seasons, and they need to hunt and much as they can all the time, because they know there will be feast and famine times. When is the question. Being a Hunter Gatherer can be very rewarding, you spend time on your own and can pick and choose your projects at will.</p>



<p class="wp-block-paragraph">Agriculturalists have a more steady stream of work. They spent the time and effort to build their own products and reap the benefits. Having your own farm producing for you can lessen the feast and famine that Hunter Gatherers experience, but by no means are you safe. Other Agriculturalists could create bigger or better farms or sell their goods for cheaper. Not to mention you might be growing something that no one wants, which means it is hard to sell to make a living. Agriculturalists have the ability to scale-up their team and product much better than a Hunter Gatherer, but they are a commodity and that is always taken into consideration when selling.</p>



<p class="wp-block-paragraph">Maybe you are neither a Hunter Gatherer nor own a farm, but you will either be part of a Hunter Gathering team or work for an Agriculturalist. Both have their benefits. When you are an employee it isn&#8217;t your decision about what to hunt or grow, you just turn up to help and are doled out a portion for your effort. You don&#8217;t get to call the shots, but you tend to get a meal ticket with less stress.</p>



<p class="wp-block-paragraph">Working on a farm can be easy or hard. You put in your time and if what you sell is in demand, then times are good. Job security is solid and the farm becomes a cash cow. The downside is that you are just another farmhand clocking-in and working for someone else&#8217;s vision.</p>



<p class="wp-block-paragraph">Being part of a Hunter Gatherer team means that every day could be a different project, a different location and maybe different collaboration with team members. This little tribe can become infamous for their work and make very good money in a short amount of time, but the risks are high. As a team member you will get your cut of the reward, but only if there is a reward. If you go hungry for enough time, the Hunter Gatherer tribe will disband. You could loose out big, not having any rewards for a while.</p>



<p class="wp-block-paragraph">Neither of these situations are ideal, but over time the entropy of Hunter Gatherers tends to be less nomadic and chaotic and eventually settled down to Agriculturalists. With consolidation there are less and less farm owners or chieftains and more and more employees working for large scale farms or tribes.</p>



<p class="wp-block-paragraph">In Iceland, Hagstofa Íslands has an online tool statice.is to get lots of data about the country. We pulled out the data set <strong>Active enterprises broken down by NACE classification and persons employed size classes 2003-2020</strong>.</p>



<p class="wp-block-paragraph">From that we created a series of charts to show how many &#8216;small&#8217; companies, most likely Hunter Gatherers versus larger companies, Agriculturalists.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/07/companies_by_employee_size.png" alt="A bar chart showing the number of companies with various employee sizes" /></div>



<p class="wp-block-paragraph"> We can see that there are 14,806 companies (on average each year between 02003-02020) with only 1 employee, 4603 with 2-4 employees, 1637 with 5-9 employees and 1682 with 10+ employees. That looks a lot like a power law distribution! With the small exception of slightly more 10+ employee companies.</p>



<p class="wp-block-paragraph">How big are the 10+ companies on average? We charted the data to see how many employees there actually are per company.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/07/avg_employees_by_company_size.png" alt="A bar chart that shows the average number of employees in each size cluster" /></div>



<p class="wp-block-paragraph">It turns out they are big! With an average of 48 employees. That&#8217;s also probably skewed since some organizations like schools, enterprise tech companies, telcos, government organizations, fisheries, and tourism companies probably employ hundreds of people, but there are few of them.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/07/employees_by_company_size-1.png" alt="A bar chart showing the number of people employed in each company size bucket"/></div>



<p class="wp-block-paragraph">We can chart the actual number of people employed in each bucket to better see that the 10+ companies (who have roughly the same number as 5-9 person companies), account for nearly 8x the people.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/07/employees_by_company_large_small.png" alt="A stacked bar chart and pie chart both representing the number of large companies versus small" /></div>



<p class="wp-block-paragraph">When we compare small companies (0-9 employees) versus large companies (10+ employees) we can see that it is about a 1/3 to 2/3 split. Those large companies are certainly not Hunter Gatherers in our sense of employment. You might describe the whole fishing industry as exactly hunting and gathering, but the workers are paid salary (or shares) from the mother company, they are not looking for the next project independently they have a singular common goal.</p>



<p class="wp-block-paragraph">That leaves us with the 1/3 of companies that are less than 10 people. Many of those will be small business; shops, restaurants, etc. Those are not project-based. Also, there are a lot of 0 person companies. These are inactive or holding companies for &#8220;tax reasons&#8221;. 22.8% of people work in a company 4 people or smaller (but there could be some overlap if you own/work for multiple small companies).</p>



<p class="wp-block-paragraph">If we had to estimate, we&#8217;d probably say 5-10% employees are actual project Hunter Gatherers. These are the folks who are single or super small teams whose paycheck directly depends on how much work they bring in. The other 90-95% of people are Agriculturalists who are paid salary from a company for their work. (These numbers seem very distorted since we know lots of artists, musicians and independent contractors, but that might be perception bias? We&#8217;re not having lunch with a 600 person construction company)</p>



<p class="wp-block-paragraph">Even in companies that are not Hunter Gatherers, there are still people in that company whose job it is to find projects, win bids, write grants and close sales. They act as Hunter Gatherers but they have a guaranteed safety net of a fixed salary (or maybe percentage of sales). A true Hunter Gatherer is reliant on only their ability to keep the bank account fat enough to make it through leaner times.</p>



<p class="wp-block-paragraph">(optional.is) is small, we are very much a Hunter Gatherer type of company, but we are always testing and looking for Agricultural style revenue streams. Having a good blend of passive revenue; book sales, subscriptions, etc., monthly retainers, plus the exciting big, infrequent, well-paid projects is a nice mix we like.</p>



<p class="wp-block-paragraph">There are certainly advantages and disadvantages to both rolls. Neither one is better or worse than the other. There are many factors in your personality, time in life, personal situations and more that dictate if one roll is more suited to you than another.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Week #801 &#038; #802</title>
		<link>https://optional.is/required/2026/06/26/week-801-802/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 26 Jun 2026 15:51:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Weeknotes]]></category>
		<category><![CDATA[PoD]]></category>
		<category><![CDATA[print on demand]]></category>
		<category><![CDATA[time tracking]]></category>
		<category><![CDATA[unoffice hours]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10011</guid>

					<description><![CDATA[A double weekenote, but the second week we were mostly "officially" closed. We continue to almost, wrap-up some projects and starting to plan and invest in others.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Week #801</h2>



<p class="wp-block-paragraph">We offer <a href="https://unofficehours.com">UnOffice Hours</a>. It&#8217;s a 30 minute slot for anyone to book and chat with us about anything. On Monday, we had a lovely chat. It&#8217;s been awhile since a random person reached out, and it was great to meet some new folks and hear what they&#8217;re up too and offer any advice we can.</p>



<p class="wp-block-paragraph">One of the by-products of a lot of experiments, investigations and tests is that we have a bunch of un-used ideas and artwork. This week we looked into Print On Demand services. Maybe we can breathe a little life into some old designs without any commitments. We are in the early stages of just running some of the numbers to make sure we aren&#8217;t loosing any money in listing/seller fees, processing fees and taxes. </p>



<p class="wp-block-paragraph">(I think) We shipped one prototype project this week! Looking back at our week notes, we first mention this in <a href="https://optional.is/required/2025/12/12/week-773-774/">Week #773</a> in early December 02025. Eight months later, we have &#8216;finished&#8217; our part of the development, now it is up to them to work on the slide deck, find investors and raise money, build a team and productize the idea. Our portion was just the iOS app, there is a whole other backend image detection system that we didn&#8217;t touch. We wish them luck and will continue to help in the transition, but we don&#8217;t foresee any further development.</p>



<p class="wp-block-paragraph">Wednesday was Icelandic National Day (<em>Þjóðhátíðardagurinn</em>). The office was mostly closed, but we still had to answer a few messages here and there from our international projects.</p>



<p class="wp-block-paragraph">We managed to meet-up with one team using our Time Tracking software and got some feedback about a few things that were broken and could use some improvements. We were able to cover most everything easily and deployed the updates.</p>



<p class="wp-block-paragraph">The WebRTC project meeting turned into just an asynchronous meeting with a few bugs and improvements. We&#8217;re also getting a new project manager on their side to take-over pushing this project over the finish line as we get more people onboarded to test.</p>



<p class="wp-block-paragraph">On Friday, we finished-up a few tasks in the morning and then closed the office for Week #802.</p>



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



<p class="wp-block-paragraph">Office was closed this week for some much needed travel and research.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Worldmapper VR</title>
		<link>https://optional.is/required/2026/06/19/worldmapper-vr/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 19 Jun 2026 11:11:00 +0000</pubDate>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Cartography]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[AVP]]></category>
		<category><![CDATA[Háskóli Íslands]]></category>
		<category><![CDATA[HÍ]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[vision pro]]></category>
		<category><![CDATA[worldmapper]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=9922</guid>

					<description><![CDATA[The Worldmapper app is now available for the Vision Pro.]]></description>
										<content:encoded><![CDATA[
<div class="banner"><a href="https://apps.apple.com/us/app/worldmapper/id6754181237"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/06/avp-worldmapper.jpg" alt="Worldmapper in the Apple Vision Pro"/></a></div>



<p class="wp-block-paragraph">We&#8217;ve cleaned up the Worldmapper app and have released it for anyone to download. <a href="https://apps.apple.com/us/app/worldmapper/id6754181237">Download Worldmapper for the Vision Pro</a>.</p>



<p class="wp-block-paragraph">Previously, we wrote about <a href="https://optional.is/required/2026/02/12/wylds-great-vr-globe/">Wyld&#8217;s Great Globe</a> and how we adapted that concept into an Apple Vision Pro app with the help of team from <a href="http://worldmapper.org">Worldmapper.org</a></p>



<p class="wp-block-paragraph">Just because the app is published doesn&#8217;t mean it is done. We will continue to evolve the app over time with new maps will be added and old ones updated. </p>



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



<p class="wp-block-paragraph">The goal of the project is to be part of the larger outreach program at the University of Iceland (<em>Háskóli Íslands</em>). Working with the Worldmapper team, we took some of their equirectilinear projection maps and worked to display them in a sphere. This produces maps with no distortion &#8211; the bane of any 2D map projection.</p>



<p class="wp-block-paragraph">For the Meta Quests, we created a 5K looping video of the <a href="https://worldmapper.org/natures-heartbeat/">Nature&#8217;s Heartbeat</a>. The video loads in various spherical video players as if you were in the center of the Earth. It is the same benefits as Wyld&#8217;s Great Globe, it removes all the distortion from a regular 2D map projection and puts you front and center.</p>



<figure class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/06/worldmapper-heartbeat.jpg" alt="Frames from the Worldmapper Nature's Heartbeat video" /><figcaption><a href="https://worldmapper.org/natures-heartbeat/">Worldmapper.org | Nature&#8217;s Heartbeat</a></figcaption></figure>



<p class="wp-block-paragraph">For their outreach events they have nice gradient of interactivity based on your skill and knowledge. It starts with paper craft. They have 2D maps that you can cut out, fold and glue into cubes and other 3D shapes. Next, the traditional screens you can view, which quickly moves to larger, touch screens so you can explore the data yourself. Now they have moved into Virtual Reality with a basic looping spherical video. This takes no effort to put on a Meta Quest headset, watch a few seconds of a looping video, enjoy and move on.</p>



<p class="wp-block-paragraph">The most recent step at the top of gradient of interactivity is the Vision Pro and that&#8217;s where we come in. Our experience with Virtual Reality and the Vision Pro joined with Worldmapper&#8217;s depth of content and digital experimentation were a great fit.</p>



<p class="wp-block-paragraph">We decided that the Apple Vision Pro would be the premium experience. There is a hefty initial setup for anyone trying the device. You have to calibrate your eyes and hands for the system to work with gestures. Due to the time it takes to setup and the UI/interaction learning curve, we weren&#8217;t just going to show a 1-minute looping video. It needed to be a place to explore and take it the experience at your own pace.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/06/cartogram-menu.jpg" alt="Screenshot of the menu inside the Apple Vision Pro"/></div>



<p class="wp-block-paragraph">To start with, Worldmapper pulled out 30 cartograms in a series of categories that we put into the menu. When you are in the app you are completely surrounded by the Black Marble photo from NASA. This allows you to get your bearings of where everything is located. Since technically it is inverted if you were really at the center of the earth you&#8217;d see the inside of the Earth&#8217;s Crust, but we keep the map more recognizable. As the next jumping off point, we convert the photo to an illustration of country boundaries, then allow you to select a topic, like number of horses, and distort the landmasses according to a different variable than square kilometers.</p>



<p class="wp-block-paragraph">To keep things simple, all the maps are embedded in the app, which makes it larger. In the future, we&#8217;d like to create an admin tool that allows the Worldmapper team to swap maps without needed to re-submit the app for approval. The downside of this, is we need to cache-up all the images incase the destination where the outreach is happening doesn&#8217;t have a reliable internet connection.</p>



<p class="wp-block-paragraph">We look forward to collaborating more with Worldmapper and the University of Iceland on these outreach projects.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Week #799 &#038; #800</title>
		<link>https://optional.is/required/2026/06/12/week-799-800/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 12 Jun 2026 12:21:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Weeknotes]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[TIL]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=10004</guid>

					<description><![CDATA[A double weeknote where we are wrapping-up and consolidating projects.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Week #799</h2>



<p class="wp-block-paragraph">This week we got the green light on a project we&#8217;ve been hovering around for a while. We went down to Miami a few weeks ago to demo the prototype, but this week they finally decided to sign the contract with us to productize the software. We&#8217;re on the hook now for two years of support and production, but in reality we have a short deadline and then the long-tail of bug fixes, optimizations and more.</p>



<p class="wp-block-paragraph">As part of this project, we&#8217;ve move all the code for the app and website into GitHub. From there we&#8217;ve hooked-up auto-building Xcode cloud and Heroku deploys. Now we can use the Issue tracker, from which we can create PRs, merge the fixes and deploy automatically. This means any small text change can be done via the GitHub web interface and be live in minutes.</p>



<p class="wp-block-paragraph">We continue to support a new game idea with a few meetings a week. Usually a Monday kickoff planning with the Engineering team and/or maybe the whole team. Then a Friday show-and-tell. On Friday, we also met with the stakeholders to figure out both the IP licensing and potential markets for the game. For these game projects, we&#8217;re trying to run an A-team and B-team. (We need new names) The idea wasn&#8217;t A-quality and B-quality, it was more large scope and small scope. Running a B-project allowed for junior developers/designers to cut their team on professional projects with a smaller, more manageable scope. This project is a shorter B-project between A-projects, which we need to be careful doesn&#8217;t grow too much in scope into an A-project!</p>



<p class="wp-block-paragraph">On Thursday, we also published an article about our <a href="https://optional.is/required/2026/06/04/til-db/">TIL DB</a> (Today I Learnt DataBase).</p>



<p class="wp-block-paragraph">We also added the &#8220;Fluxcapacitor&#8221; section to the footer. This look at past published articles and tries to resurface other articles written around the current time in the past.</p>



<p class="wp-block-paragraph">Two other projects we have in the background we&#8217;re reaching a logical conclusion. For the older project, we&#8217;ve fixed all the bugs, completed all the tasks and now it&#8217;s moving over to the friends and family tester phase. We&#8217;ll get some feedback from that and move over to UI/UX clean-up, any missing functionality or changes, and see what the next steps will be. Maybe they will go raise some money and build-up a team of their own.</p>



<p class="wp-block-paragraph">The newer project, which we were only suppose to come-in and swap and API, ended-up sucking us in for month with a whole new iOS app(s) connected to a completely new backend. We are pretty much done, now the backend needs to be stable and work for them to pitch this to investors and build-up their own team.</p>



<p class="wp-block-paragraph">See a pattern here? We like to come in, build-up the prototype and help them raise money and build a team. We&#8217;ve done this successfully 2-3 other times now with these two additional ones in the pipeline.</p>



<p class="wp-block-paragraph">About a year ago, we were approached about a project, but the investors turned it down. After mulling on it for a year, we wanted to revisit it. The time to prototype and level of risk are much less. Turns out they went and built it anyway without us and it flopped.</p>



<p class="wp-block-paragraph">Maybe we dodged a headache, maybe we could have done better, maybe we should listen to the investors. Tech feels like 99% of the way to solve the problem, but sometimes it’s less than 50%.</p>



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



<p class="wp-block-paragraph">It is our 800th week since the company was founded&#8230; or was it? On such an occasion we went to look back and our history. The original Optional SLF company had a kennitala of 470211-1130 which is DD-MM-YYYY and a checksum. But since people use 1-31, companies always started with a 4, 5 or 6 (you subtract 3 to get the real date). We&#8217;ve been celebrating and counting since the 7th of February 02011. That gets us to week #800 this week. But we then went to <a href="https://www.skatturinn.is/fyrirtaekjaskra/leit/kennitala/4702111130">Fyrirtækiskrá</a> and looked-up the original company and we sent in the paperwork on the 14th of December 02010. It took nearly 2 months to process! (We probably were missing some paperwork or forgot to sign something)</p>



<p class="wp-block-paragraph">The current incarnation of the company (switching from full-liability too a limited liability company) had to restart our company id and that was registered on the 4th of May 2021.</p>



<p class="wp-block-paragraph">If we conduct our own &#8220;Julian to Gregorian&#8221; calendar adjustment this is actually week #806!</p>



<p class="wp-block-paragraph">Over the weekend, between Week #799 &amp; #800, was the Icelandic holiday Sjómannadagurinn (Fisherman&#8217;s day). We took full advantage of the good weather and went down to the harbor.</p>



<figure class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/06/sjomannadagurinn.jpg" alt="Collage of images from fisherman's day" /><figcaption>We&#8217;re gonna need a bigger boat.</figcaption></figure>



<p class="wp-block-paragraph">This week was designed to get into a meeting groove as summer approaches. We met about our game project idea a few times this week.</p>



<p class="wp-block-paragraph">We also now have weekly meetings about the larger software project. Partly to get feedback from the team and users, but also to make sure we&#8217;re on course to hit the deadlines. (Strangely after last week&#8217;s kickoff meeting, they haven&#8217;t found a time when everyone can meet.)</p>



<p class="wp-block-paragraph">Then we had a meeting about the Icelandic SSO tool that was deprecated a few years ago. We&#8217;ve been working with another company who is implementing the replacement. Something we&#8217;ve been told will just take a few hours of work, somehow has been put off for years! We are keen to close this project, but want to hand it off in a working state.</p>



<p class="wp-block-paragraph">This week felt like shouting into the abyss. We sent a bunch of emails, messages and meeting requests only to be ignored. Sure, people are busy, but at the same time they asked us to do some work and it&#8217;s hard when we don&#8217;t get a response.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>TIL DB</title>
		<link>https://optional.is/required/2026/06/04/til-db/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Thu, 04 Jun 2026 13:31:00 +0000</pubDate>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[Interfaces]]></category>
		<category><![CDATA[Temporality]]></category>
		<category><![CDATA[Visualizations]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dirk]]></category>
		<category><![CDATA[headlines]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[tags]]></category>
		<category><![CDATA[TIL]]></category>
		<category><![CDATA[visualisations]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=9748</guid>

					<description><![CDATA[The Today I Learned lists have now been moved into a database to make it easier to query, pivot and explore.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Introducing the <em>Today I Learnt Database</em>.</p>



<p class="wp-block-paragraph">Over the last few years, each day we&#8217;ve been collecting a few &#8216;interesting&#8217; headlines. We dropped them into a text file and at the end of the year went through everything, converted it to HTML and added some tags. It was an interest, but long process. We always had the intentions of doing something with these headlines!</p>



<p class="wp-block-paragraph">We were fortunate enough to attend NewsFoo a few times. At one event, we met Ben Huh who was starting a new way to consume News called &#8220;<a href="https://www.theguardian.com/media/organgrinder/2011/jun/06/cheesburger-ben-huh-newspapers-open-source">The Moby Dick Project</a>&#8220;. You can <a href="https://web.archive.org/web/20111108132147/http://www.benhuh.com/2011/05/23/why-are-we-still-consuming-the-news-like-its-1899/">read more about it on Archive.org</a> since the original post is gone. This eventually spun out to become Circa, which closed and then re-opened under new management.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/05/moby-dick-project-sketches.gif" alt="Wireframes of the Moby Dick Project, a multicolumn interface for news stories" /></div>



<p class="wp-block-paragraph">The original concept was a sort of three column view with each column changing in speed and curation. The first might be the news story, the second related events and the third comments. We remember it being described as consuming your Vegetables and Sweets! </p>



<p class="wp-block-paragraph">What struck a cord with us was that there are plenty of stories that you say to yourself &#8220;Hey remember when that happened, did they ever find out why?&#8221;. Traditional news websites seem to be setup to show you articles and are not great at stringing things together. Wikipedia isn&#8217;t bad, but the content keeps getting written over and it is objective as opposed to user-generated comments.</p>



<aside><p>Back in 02009 (around the time we heard about Project Moby Dick), the Air France Flight 447 had unexplainably crashed in the Atlantic flying from Rio de Janeiro, Brazil, to Paris. It was only recently in 02026 that Airbus was found at fault.</p><p>That story took 17 years to develop and still might not be over.</p></aside>



<p class="wp-block-paragraph">When we started to collect our headlines, we wanted a way to track long story arcs. If we saw a headline in January, then again maybe 4 to 6 weeks later with something more or even a resolution, we want a way to thread them together. In our world of headline click-bait, we rarely get to see longer trends. That is one of the goals we wanted to achieve with our TIL headlines project.</p>



<p class="wp-block-paragraph">Todo all this, we needed to move it out of these text articles into something more dynamic and clickable. Something that could continue to evolve and have old headlines become richer with the addition of new.</p>



<p class="wp-block-paragraph">In our spare time, we converted the old HTML and tags into SQL statements and loaded everything up in to a relational database. That allowed us to make dynamic connections. We can browse by year, month, day or tag. You can search and filter and we can get frequency counts over time to show the number of mentions of a specific topic.</p>



<p class="wp-block-paragraph"><strong>You can browse the TIL DB at <a href="https://til.optional.is">https://til.optional.is</a></strong></p>



<p class="wp-block-paragraph">What we&#8217;ve done so far are &#8220;table stakes&#8221;. It&#8217;s what you would expect from linked data: the ability to browse, pivot between topics and dates.</p>



<p class="wp-block-paragraph">Our goal was to take it one step further. Back in 01998, Matt Webb created <em>DIRK: The fundamental connectedness of all things</em>. It was an RDF store of assertions in the form of &#8220;Subject Predicate Object&#8221;.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/05/archive-org-dirk-2002.png" alt="Screenshot of DIRK from 02002" /></div>



<p class="wp-block-paragraph">For instance: <em>Reykjavik</em> <span style="text-decoration: underline;">is in</span> <em>Iceland</em>. <em>Iceland</em> <span style="text-decoration: underline;">is in</span> <em>Europe</em>. Therefore, we can conclude <em>Reykjavik</em> <span style="text-decoration: underline;">is in</span> <em>Europe</em>. If you string enough of these assertions together you can get to some interesting connected places. To make our TIL DB more interesting, we start to write some of our own assertions based on the existing tags we put on the headlines. This adds more value to the tags and focuses our attention on what tags to use.</p>



<p class="wp-block-paragraph">For instance: <em>Betty White, beloved and trailblazing actress, dies at 99</em> was tagged <strong>obituary, tv, &nbsp;Betty White</strong>. We can use that to make a few assertions:  <strong>Betty White</strong>&nbsp;is connected to&nbsp;<strong>obituary</strong>&nbsp;because&nbsp;<em>she died at the age 99.</em> <strong>Betty White</strong>&nbsp;is connected to&nbsp;<strong>tv</strong>&nbsp;because&nbsp;<em>she stared in the Golden Girls.</em></p>



<p class="wp-block-paragraph">This allows us to see how <strong>Betty White</strong> is connected to other tags through <strong>tv</strong> or <strong>obituary</strong> and why. Much like DIRK, we can click through various assertions, but we are trying to tie ours to facts in headlines.</p>



<p class="wp-block-paragraph">We built a web form to connect any two tags in our system so you can see the steps between them. It is a slow process which will grow worse over time with more and more content. The fun is seeing how two random terms are related and how few steps it takes!</p>



<h2 class="wp-block-heading">Just use AI</h2>



<p class="wp-block-paragraph">Artificial Intelligence is certainly the buzzword <em>soup de jour</em> these days. So let&#8217;s look at how and where AI could be useful.</p>



<p class="wp-block-paragraph">We are curating our headlines that we save based on lots of factors: importance, likelihood of a longer arc, non-reoccurring events and frequency. Every fall we get a new iPhone, every winter it snows; those are not headlines worth collecting for longer arcs. The Ukrainian-Russian war is still on going, and we&#8217;re not saving headlines of daily attacks &#8211; that&#8217;s (sadly) now background noise. The curation will stick with us for now.</p>



<p class="wp-block-paragraph">Tagging is a tedious task that we&#8217;ve asked AI to help with. We have a giant json dump of headlines and tags with their corresponding database ids. The AI can ingest that easily and try to make some recommendations. That works for most things, it has some false-positives, but also feels a bit like it hits a local maximum. It heavily recommends existing tags and isn&#8217;t great at making new ones. It doesn&#8217;t &#8220;know&#8221; (it&#8217;s just a statistical machine) what new tags are useful or important.</p>



<p class="wp-block-paragraph">We tried to get AI to write short assertions and it completely fell apart. The headlines are so short and there is extra, external knowledge that the AI doesn&#8217;t have. Their suggestions were longer than the headline and often just wrong. That&#8217;s a lost cause.</p>



<p class="wp-block-paragraph">The two key insights people have told us about AI is that: </p>



<ol class="wp-block-list">
<li>It doesn&#8217;t know anything current. It is not a web crawler so don&#8217;t ask it about current events (like today&#8217;s headlines!)</li>



<li>Rather than ask it to do something, ask it to write a script to do that. Then it is repeatable and deterministic outside of their AI ecosystem.</li>
</ol>



<p class="wp-block-paragraph">We do use script to convert our text file to sql statements and scripts to export/dump the database into json formats. AI could help write these scripts, but that&#8217;s just fancy auto-complete/spell-check. There is no &#8220;AI&#8221; in the product.</p>



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



<p class="wp-block-paragraph">Everyday we continue to collect headlines and each month we try to import them into the database with tags. We are very far behind on the assertions. We need to make ourselves a small tool that just shows us a few un-asserted tags each day and we take smaller nibbles to add more metadata.</p>



<p class="wp-block-paragraph">We&#8217;ve also considered away to make it more wiki-like and allow anyone to edit (or suggest) changes to tags and assertions. We&#8217;re not sure if the effort to build it compared to the audience actually contributing  is worth it right now.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/05/til-db-nyc-tag.png" alt="Screenshot of the frequency of the tag NYC over time and related tags" /></div>



<p class="wp-block-paragraph">There are probably some smaller statistical tasks which we can add. Right now we chart tag frequency by month and you get a really good overview of trending topics. There are certainly more statical functions we can add like standard deviation, time between headlines, etc. Our advanced search allows for selecting a few tags and only showing headlines with ALL those tags (an AND search). We could try to do more frequency analysis on these 2 and 3 tag combinations.</p>



<p class="wp-block-paragraph">The bare minimum is for us to continue to collect headlines. Once we have the data we can always add more metadata at a later date.</p>



<p class="wp-block-paragraph"><strong>Go and explore the TIL DB at <a href="https://til.optional.is">https://til.optional.is</a></strong> see what&#8217;s missing and let us know what can be improved.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Week #797 &#038; #798</title>
		<link>https://optional.is/required/2026/05/29/week-797-798/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 29 May 2026 13:31:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Weeknotes]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[backups]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[meetings]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[sso]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=9931</guid>

					<description><![CDATA[A double weeknote with another holiday break. We did manage to start a few new projects and wrap-up a few others.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Week #797</h2>



<p class="wp-block-paragraph">We started the week off with a few meetings. All our surveys are done, so the team had a meeting to plan some summer projects and what needs improving for next school year. We also met with another friend about some microcontrollers to manage LED strips. Hopefully this will be useful for a potential upcoming project.</p>



<p class="wp-block-paragraph">We&#8217;ve been tinkering on our Split-fount camera app for a few weeks now and decided to just release it. For the rest of the summer it is free and you can <a href="https://apps.apple.com/us/app/sf-camera/id6767219686">download SF Camera here on the iOS App Store</a>.</p>



<p class="wp-block-paragraph">By Wednesday we had worked on 9 different projects. Sometimes it&#8217;s fun to have a buffet of projects to pick and choose from, sometimes the context switching kills us. You can&#8217;t win.</p>



<p class="wp-block-paragraph">More Backup woes. We have pretty good coverage of all our back-ups, but we continue to (sometimes painfully so) what&#8217;s missing. This week, we&#8217;re trying to figure out a good system for some iPad apps that do NOT save their data outside of the app container. Many apps are nice and save your data to iCloud storage or iCloud Drive. Then you can easily access it on another device and back it up. We found a few apps that are 100% self-contained. We deleted one and the multitude of pop-ups said &#8220;This will delete the app and its data&#8221; and we didn&#8217;t think about what that actually meant. The data isn&#8217;t settings or removing the data from this device &#8211; it was a complete deletion. So we had to restore the iPad from a backup to get the data back. The iPad backup was a week old, so now we&#8217;re in that window to get some data back, we might loose something we created in the last week. Luckily that wasn&#8217;t a problem, this time! Our next step is to look into how to better backup this app data to prevent this from happening again.</p>



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



<p class="wp-block-paragraph">Monday was a holiday, so we started the week on Tuesday with a dud meeting. We did some prep work and then on the call no one was ready to review it. So we&#8217;re back to finding a time to have the same meeting again, but this time we review the project.</p>



<p class="wp-block-paragraph">The exciting world life insurance is upon us as well. We got a cold call about switching life insurance and having the company pay for it. We sat on a sales call for a bit but now need to figure out what todo next.</p>



<p class="wp-block-paragraph">On Wednesday we fixed a few bugs on our Xero/Django project and managed to spend half-a-day bring all the libraries and code up-to-date. We went from version 2 of Django to version 5. It took a few intermediate steps and lots of tests and checking, but we got there in the end. Hopefully, this will keep things current for a while and a bit faster for the customer.</p>



<p class="wp-block-paragraph">On Thursday we got the green light on a big project. This one has a potential to become it&#8217;s own company and project which we&#8217;d be a small owner. This is the culmination of a few years of working together with another company on marketing tools and now a sales tool. We have a great working relationship with them and we think there is a lot of potential here for future opportunities.</p>



<p class="wp-block-paragraph">For the PETALS project, we&#8217;re mostly focused on improving the sign-up and login process. As part of that, we implemented a magic link email login. Rather than the forgot my password dance, you can request a temporary link via email that logs you in. The next portion was to implement a Single Sign On library to support logging on with Google, Microsoft, Apple and others. It is processing slowly. The technology part is working, now to re-adjust the login and sign-up flows.</p>



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



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/05/whatcable.png" alt="Screenshot of the What Cable tool"/></div>



<p class="wp-block-paragraph">In reference to a recent article about <a href="https://optional.is/required/2026/05/07/ubs-c-non-power-delivery/">USB-C Non-Power Delivery</a>, we were pointed to <a href="https://www.whatcable.uk">https://www.whatcable.uk</a> It is a small utility that has a nice UI to tell you about the cable and device you have plugged in. (It took us awhile to understand the output) With this you can see what the power and data rating is for the cable and device. If there is a mis-match you can find the optimal cable pair. After a bunch of tests, we realized that the only major data transfer we&#8217;re doing with connected devices is backups. Sure we plugin the phone and transfer some pictures over a lower connection, but switching cables is a savings of only seconds-to-minutes. If we use the faster cables that come with our external hard drives, and we do because they are the only devices that take the funky USB Micro-B connection.</p>



<p class="wp-block-paragraph">The office is near the Downtown Reykjavik Airport. There is ALOT of overhead traffic. It&#8217;s gotten to the point where we can tell by the sound that this isn&#8217;t a &#8220;normal&#8221; plane. This shortcut for iOS is great! <a href="https://whatsoverhead.com">https://whatsoverhead.com</a> You can just say &#8220;Hey Siri, what&#8217;s overhead&#8221; and it will read back some flight info. Since it is a shortcut you can see exactly how it is all working and salt-to-taste. It even works on a HomePod!</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Split-Fount Camera</title>
		<link>https://optional.is/required/2026/05/22/split-fount-camera/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 22 May 2026 12:21:00 +0000</pubDate>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[photos]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=9938</guid>

					<description><![CDATA[We had an itch to scratch to see if we could make this gradient camera. It turns out we could and the results have been loads of fun!]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">We continue to dabble in <a href="https://optional.is/required/category/photography/">unique camera apps</a>. After a bunch of code refactoring, we have a solid base to go from idea to prototype to new app quickly. That means we can experiment with new ideas and see if we like them. Getting into the field and snapping images tells you a lot more than just imaging the possibilities.</p>



<p class="wp-block-paragraph"><strong>TL;DR</strong> You can <a href="https://apps.apple.com/us/app/sf-camera/id6767219686">download the SF Camera on the iOS App Store</a> for Free until the price goes up September 02026.</p>



<p class="wp-block-paragraph">We have a folder called &#8220;Inspiration&#8221; which we file away interesting images and ideas. Every once and awhile we browse through the folder when we need something new. As we recently browsed through, we saw that we saved several beautiful gradient, screen printed images. This is sometimes called &#8220;Rainbow Roll&#8221; or &#8220;Split-fount&#8221; screen pulls.</p>



<p class="wp-block-paragraph">We liked this effect and tried to replicate it in some image editing software. It&#8217;s pretty easy and straight forward. </p>



<figure class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/05/sf-steps.jpg" alt="Four screenshots of the steps to apply the Split-Fount style effect"/></figure>



<ol class="wp-block-list">
<li>Select your base image. </li>



<li>Convert it to black and white (Salt to taste). </li>



<li>Create a second layer and put a color gradient over that. </li>



<li>Convert that gradient layer from blend mode &#8220;Normal&#8221; to blend mode &#8220;Screen&#8221;. The black and white pixel values control the color that shows through.</li>
</ol>



<p class="wp-block-paragraph">Even though a lot of our filters and camera effects can be done in post-processing, we really enjoy seeing through the view-finder the finished concept. Rather than take the color photo and go through these steps, we find it easier to compose the shot as we see the effect. It is a trade-off since in post you can infinitely tweak colors and other settings, but shooting as you see it means if you&#8217;re happy, one-click and you&#8217;re done &#8211; ready to share.</p>



<p class="wp-block-paragraph">(Split-Fount) SF Camera was designed to create impactful photos quickly and easily. We have a limited pallet of colors, 11 so far, that you can swipe to choose the top and bottom gradients. The black and white image underneath is one designed to create high-contrast. We also allow you to invert the black and white to create interesting alternatives to the regular screen print style.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/05/split-fount-chips.png" alt="Eleven color chips representing the gradient options." /></div>



<p class="wp-block-paragraph"><a href="https://apps.apple.com/us/app/sf-camera/id6767219686">Download the SF Camera on the iOS App Store</a> for Free until the price goes up September 02026.</p>



<p class="wp-block-paragraph">With some of our other camera apps, you can always go into the photos.app and &#8216;revert to original&#8217;. This will remove the gradient and black and white effect and get you back to the source image. From there you can recreate the effect or do something completely different with the photo. Using SF Camera does NOT lock your photos into only this effect.</p>



<h2 class="wp-block-heading">Future Improvements</h2>



<p class="wp-block-paragraph">To change the gradient colors you can tap the text at the top to cycle through, but we&#8217;re mostly focusing on swiping! It is a hidden UI that is intuitive once you know it exists. We updated the swipe code to not only know what direction, but also which region (top/bottom/left/right). When you swipe left on the top half, we can cycle only through the top gradient color. Swiping up or down cycles through both. This has worked really well once you know it exists. But as we add more features and don&#8217;t want to overload or confuse the swipe motions.</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/05/bw-samples.jpg" alt="A Colorful source image and a series of different grayscale images derived from the source image and how that affects the gradient."/></div>



<p class="wp-block-paragraph">Not all greyscale images are equal! There are lots of ways to make a black and white image. Currently we are using an equation to make a hard light greyscale with lots of contrast. This has worked really well, but we took a photo or a bright red stop sign on a beautiful blue background and everything was equally grey. There was no contrast when applied the color gradient. The simplest way to solve this is to use different methods of converting color images to greyscale. Only take the Red channel, or only the Blue or Green. That would fix our previous Red/Blue problem, but now we&#8217;re adding more work onto you. It is probably worth it, but how it gets added and implemented is still up for debate.</p>



<p class="wp-block-paragraph">Even though the app is live for anyone to download, there are still a bunch of improvements and ideas we&#8217;d like to implement.</p>



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



<p class="wp-block-paragraph">We made this camera app on a whim over the course of a few days. Then spent a few weeks refining some of the colors, options and interactions. It is a fun, cheerful camera that has completely taken over our camera roll!</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/05/sf-camera-collage.jpg" alt="A collage of 10 different images with color gradients taken with the SF Camera" /></div>



<p class="wp-block-paragraph">If you download the app and enjoy it as much as we do, please share your images and let us know.</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f60e.png" alt="😎" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2600.png" alt="☀" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4f7.png" alt="📷" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Happy summer snapping!</strong> <a href="https://apps.apple.com/us/app/sf-camera/id6767219686">Download the SF Camera on the iOS App Store</a>. </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Week #795 &#038; #796</title>
		<link>https://optional.is/required/2026/05/15/week-795-796/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Fri, 15 May 2026 12:21:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[Weeknotes]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[LEDs]]></category>
		<category><![CDATA[meetings]]></category>
		<category><![CDATA[photography]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=9842</guid>

					<description><![CDATA[Another double weeknote, but again a shortened week. Lots of meetings and progress in the background.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Week #795</h2>



<p class="wp-block-paragraph">On Thursday we had an idea for camera filter. It has based partly on Hatch Show Prints and partly on Gradient overlay photos. It is a pretty easy effect to replicate in any image editing software. You have your base image, convert it to black and white, adjust the contrast/brightness to taste. Then on a second layer add a gradient and change the blend mode to &#8220;screen&#8221;. Even though this is easy to do in software, it is also fun to see it being applied in realtime with the colors you choose. This allow you to better compose the image and quicker to snap and share.</p>



<p class="wp-block-paragraph">We&#8217;re trying to wrap-up a few projects before starting a new one. Several months ago we were brought onboard to just &#8220;Update an API in an app&#8221; which lead to a MUCH bigger mess. We re-wrote the whole thing, changed the API 2 or 3 more times and switched backend partners. This week, we finally got to the state where we can be &#8220;done&#8221;. It is now their job to turn this prototype into a product. They plan on raising money and building a team around the idea. It&#8217;s be great to help, but now we need to move to other projects.</p>



<p class="wp-block-paragraph">For the WebRTC project, we&#8217;ve added more sample content. We&#8217;re experimenting with vertical video content and all the samples we can find are &#8220;shorts&#8221;, so we had to manually crop some longer videos into a vertical format as a test.</p>



<p class="wp-block-paragraph">We published <a href="https://optional.is/required/2026/05/07/ubs-c-non-power-delivery/">UBS-C Non-Power Delivery</a>, because we&#8217;re always trying to optimize our travel cable carry and this threw a wrench in the gears!</p>



<p class="wp-block-paragraph">The bigger project we&#8217;re moving into is a result of our trip to Miami. We presented and pitched some prototype ideas on the request of a client. Their internal team now needs to make the call to use this new platform or a more expensive existing one. They are under massive deadline pressure, so it makes sense to go with what works. We&#8217;ve split the project into 4 parts and we&#8217;ve got the green light on the first part (not our team), the second part is controlling a bunch of LEDs. It looks like we can start exploring using an ESP32 and string of LEDs to get an iOS app to turn them on or off on demand. The 3rd part is the proper web admin tool and iOS apps. The 4th part is integrating their CRM of choice into the web app to keep things in sync. They definitely want todo steps 3 &amp; 4, but maybe not for any summer deadlines.</p>



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



<p class="wp-block-paragraph">This is another short week here in Iceland. Thursday is a public holiday and Friday is a write-off as well.</p>



<p class="wp-block-paragraph">Monday turned out to be a day full of follow-up meetings on various projects: 11:00, 12:00, 14:00, 15:30, &amp; 20:00! A lot was accomplished and it unblocked us to continue the rest of the week.</p>



<p class="wp-block-paragraph">Tuesday started with an early meeting. We needed a tool to manage phrases in an upcoming game prototype. We could do it in the Unity editor, but we decided not too since that would be a bit bulky for someone to do quick &#8216;live-ops&#8217; edits. Instead, we built a quick PHP website with an sqlite backend to manage these phrases. With a JSON dump we can now easily import into the Unity project and even push changes back to the website.</p>



<p class="wp-block-paragraph">In the background to all these tasks, we still have two lingering projects. Last week we tried to finish-up everything for 1 small iOS app, but this week we got a request to add 3 more small features. It depends on some backend changes (which we&#8217;re not part of) but then we can implement what&#8217;s needed.</p>



<p class="wp-block-paragraph">The other software project still has not officially been green-lit, so we&#8217;re working on it enough to show progress, but it can&#8217;t take all of our time right now either.</p>



<p class="wp-block-paragraph">We continue to work on the Gradient Camera app, which has been renamed to <a href="https://en.wikipedia.org/wiki/Split-fount_inking">Split-fount</a>. It&#8217;s not a name that rolls off the tongue, so we wouldn&#8217;t say it&#8217;s final, but it does better explain what it does.</p>



<figure class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/05/gradient-chips.png" alt="11 color chips representing the options in the Split-fount camera app" /></figure>



<p class="wp-block-paragraph">We also settled on 11 color gradient options. They run the spectrum and offer bright options that make an impact. We&#8217;re very happy with these options and will continue to snap more photos as tests, but we don&#8217;t expect to expand or change these much.</p>



<p class="wp-block-paragraph">We also added an &#8220;invert&#8221; option. We were finding that on grey, dreary days, the sky was so white in the photos we never really say the top gradient color. When you invert the image, it flips the black and white image to a negative and then applies the screen gradient to that. It is a completely different look and feel.</p>



<figure class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/05/split-fount-examples.jpg" alt="Example photos"/><figcaption>Several example photos using different gradient colors. The last image uses the invert feature making the trees white.</figcaption></figure>



<p class="wp-block-paragraph">This all can be done in post-production, but there is something magical about framing your shot and seeing how the final product will look. You change your angle, position and composition to make sure you capture the feeling you want.</p>



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



<div class="banner"><img fetchpriority="high" decoding="async" title="hieroglyphs styled" src="http://optional.is/required/wp-content/uploads/2009/12/hieroglyphs-styled.png" alt="hieroglyphs styled" width="600" height="125" srcset="https://optional.is/required/wp-content/uploads/2009/12/hieroglyphs-styled.png 600w, https://optional.is/required/wp-content/uploads/2009/12/hieroglyphs-styled-300x62.png 300w" sizes="(max-width: 600px) 100vw, 600px"/></div>



<p class="wp-block-paragraph">Our friend <a href="https://meet.andr3.net">Andr3</a> alerted us to this posted entitled: <a href="https://www.trojan-unicorn.com/village/warriors/david/blog/articles/2522-welcome-the-entire-land">Welcome The Entire World</a>. This is in reference to a presentation we gave at Codebits in Lisbon, Portugal, back in 02009. You can read <a href="https://optional.is/required/2009/12/03/welcome-the-entire-land/">the back story for Welcome the Entire Land</a>. It was one of those follies that has somehow struck a cord with folks!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>UBS-C Non-Power Delivery</title>
		<link>https://optional.is/required/2026/05/07/ubs-c-non-power-delivery/</link>
		
		<dc:creator><![CDATA[optional Bot]]></dc:creator>
		<pubDate>Thu, 07 May 2026 13:31:00 +0000</pubDate>
				<category><![CDATA[Briefs]]></category>
		<category><![CDATA[You're doing it wrong]]></category>
		<category><![CDATA[cables]]></category>
		<category><![CDATA[EU]]></category>
		<category><![CDATA[PD]]></category>
		<category><![CDATA[Power Delivery]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[USB-C]]></category>
		<guid isPermaLink="false">https://optional.is/required/?p=9865</guid>

					<description><![CDATA[In our quest to minimize our electronic support travel kit, we hit a snag with non-PD devices.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">For a while now, we&#8217;ve been trying to both minimize and optimize our cable and power travel kit.</p>



<p class="wp-block-paragraph">Back in Jan-02025, we wrote <a href="https://optional.is/required/2025/01/28/optimized-charging/">Optimized Charging</a> about our attempts to figure out what is the maximum power draw from various devices. Maybe those big power-bricks went over board for most devices.</p>



<p class="wp-block-paragraph">This time we&#8217;re back to the opposite direction. We&#8217;ve acquired several &#8216;fun&#8217; bits of hardware that are certainly not premium Apple devices. As such, they are usually USB-C charging ports; thanks to the EU e-waste rules attempting to minimize cables and plugs, but these devices tend to ship with a USB-C to USB-A cable.</p>



<p class="wp-block-paragraph">That&#8217;s annoying because we&#8217;re doing our best to move to JUST USB-C to USB-C cables to minimize what we need to take with us. When we plug-in our USB-C candy bar burner phone to a 20W Apple USB-C PD plug, nothing happens. Sometimes the manufacture recommends to use the plug that came with their device. Which is exactly what we&#8217;re trying to avoid.</p>



<p class="wp-block-paragraph">After some digging we realized that these &#8216;cheap&#8217;, &#8216;fun&#8217; hardware toys were shipping with a USB-C to USB-A cable is because USB-A will only pass through (up to) 15W of power, defaulting to something closer to 5W. When we were plugging in a USB-C to USB-C cable from the device to the charger, the charger was using the PD (power delivery) to try to negotiation with the device how much power to actually supply. Since these &#8216;dumb&#8217; devices were not PD compatible, they never answered the hand-shake and therefore power never started flowing.</p>



<p class="wp-block-paragraph">Just having a USB-A in the chain between the PD Plug and the device stops the handshake and limits the power way down. Then no negotiation is needed and power flows.</p>



<p class="wp-block-paragraph">Using a 35W Apple duel USB-C PD plug, we plugged in a USB-C to USB-C cable to our burner phone and there was no charge. We swapped the cable for a USB-C to USB-A cable, with a USB-A to USB-C adapter and plug that into the 35W plug. The burner phone immediately lit up charging!</p>



<div class="banner"><img decoding="async" src="https://optional.is/required/wp-content/uploads/2026/05/cables-982x1024.jpg" alt="Three orientations of how to plug in the device to power plug. USB-C to USB-A with a USB-C adapter that charges. USB-A with USB-C adapter to USB-C no charge. USB-C to USB-C no charge." /></div>



<p class="wp-block-paragraph">If any non-PD device comes along with us we now have to figure out a new system. </p>



<ol class="wp-block-list">
<li>Keep our USB-C only cables and find a very lower Wattage plug that is USB-C and not PD and bring that along.</li>



<li>Bring along a USB-C to USB-A cable and a USB-A plug</li>



<li>Bring along a USB-C to USB-A cable and a USB-A to USB-C adapter</li>
</ol>



<p class="wp-block-paragraph">It will probably be option 3, simply because when we get onto an airplane or hotel they usually still have USB-A plugs. Which means we were carrying a USB-C to USB-A adapter already, we could forego that and just bring the cable.</p>



<aside><p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6a8.png" alt="🚨" class="wp-smiley" style="height: 1em; max-height: 1em;" /> In our testing, we also ran into another problem. Some of the cheap USB-C to USB-A cables (even C-to-C cables) were only meant for charging. That&#8217;s fine for most cases, but sometimes we wanted to connect the device with a laptop to extract photos or other media. Having only a charging cable meant the device never showed-up on the computer when plugged in. Be sure to check that the cables you bring can also transfer data, not just power!</p></aside>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
