Week #674 & #675

Friday, January 19th, 02024 at 20:02 UTC

Week #674

In February we are staring three parent surveys for schools in Iceland. That means a bunch of prep work. For longitudinal data reasons, we tend to not change questions much, but new ones are being added and older ones dropped. We also have more translations to add as well as changes to the UI and behind the scenes functionality to keep things running smoothly. We are running an older version of Django and that is now butting up against python versions and PostgreSQL libraries. We’ll get through this spring and a big version bump is on the cards for this summer. If it ain’t broke (yet), right before a big survey is not the time to fix it.

On a personal note, we spent some time on suda.co.uk. Over the years, we’ve had to move hosting several times. That broke a few database strings that we never really cared about. Over the holiday break, we revisited our internal crawler and got that indexing the site again which means the site search is updating again. But that assumes the content updates too!

It is the start of the year, which always means closing-up the fiscal year. We are pretty good about staying on top of all the invoices and expenses in the accounting software. But as we get deeper and deeper into managing our own finances we keep finding little things. But that’s where the accountant and SaaS software can help.

We started the year out with two interesting projects. The first was a Due Diligence project to vet an SDK for a potential investor. We reviewed the tech stack and the demo and it all looked and worked great. The next step was to get the SDK and make a simple ‘hello world’ prototype. Strangely that has completely stalled while we wait for the updated SDK. In the meantime that same investor offered another project to build a prototype. This new company was in the middle of their recruitment phase and until they could hired their own development team, they went with us to build a prototype.

It is an ambitious project with potentially big scope. Luckily, we are only helping to get a prototype done by the end of the month. Then we’ll then see how the next phase goes. We’ll shift from prototyping to hiring and training the team that will take over from us.

On Thursday we met with our mentor team for a recent grant project. We got 4 mentor sessions and we’re glad we took advantage of all of them. Hopefully, their impact will be shown with something in the future. But now that’s over, we can get back to focusing on the project rather than feeling like we always had homework for the teacher todo.

On Friday, we had a fortnightly PETALS sync. With this meeting we started to talk less about features and missing functionality, and looped back around to going over the system and finding all the bugs, issues as well as places that didn’t make sense or feel right. We made loads of tasks and will spend the next two weeks working through those and we’ll probably do it all again at the next meeting. We also set ourselves a soft, internal deadline, to try and get more external teams using the system as well as getting out to more events and conferences to talk about the concept of PETALS.

Week #675

This week, internally, we decided to drop the Single Sign-On service provided by island.is. Starting September 1st, they are only going to service government organizations and everyone else is being pushed to a 3rd party provider. The fees for such a low-traffic service as ours are way too much! A lot has also happened in the last few years since we first implemented this out-of-band authentication method. The current goal is to follow what the University of Iceland have done (and their for many of our customers) to move to a Time-Based One-Time Password (TOTP). This requires some sort of authenticator app on your computer or smart phone. By NOT leading the way and letting someone else train everyone, it makes it much easier for us to slip-stream into that knowledge.

To our surprise, implementing TOTP is less than 20 lines of python code! But the crazy user-flows are going to take way more time to implement. Plus, in the office, we have been having problems with the TOTP syncing in 1password. It seems that the 6-digit code that rotates every 30 seconds is dependent on the system clock and if two machines are using different times, the same entry in 1pass have wildly different 6-digit values.

We continue to work on our MVP project. We’re over the half-way point and really happy with everything that we’ve managed to contribute. The client is happy and impressed as well. Most of our blockers are now infrastructure issues on their end. Since we don’t have access to their domains to manage the DNS, it means emails back and forth to get emails authenticated, setup subdomains and other tasks. All most all the other blockers are cleared.

On Friday, Apple started pre-orders for the new Apple Vision Pro headsets. We’ll see how that pans out for future projects.


Back in 02011, we wrote about Maximum Color Contrast. When you are programmatically or randomly generating colors, you needed to be sure that any text rendered on those colors had the maximum contract for readability. Rather than guess or choose, a simple algorithm could be employed to calculate the maximum color contrast.