Runar Ovesen Hjerpbakk

Software Philosopher

Fixing command not found errors in Shortcuts.app

macOS has an easy way to create useful small automations: Shortcuts.app. Shortcuts is the next generation Automator.app and I wanted to create a simple shortcut to start and stop Colima, the “new” Docker hotness, and put it in my menu bar.

This, however, is not that post. Instead it’s a story about configuring $path correctly while running shell scripts in Shortcuts.

Read More

Running Docker without Docker Desktop on macOS

Today is the day, Docker Desktop is no longer free for commercial use inside larger companies. This includes Bekk. Commercial licenses are not that expensive, but I wanted to see how my Docker use-cases on macOS could be solved in different ways before splashing the cash. Right now I use Docker for running tools with docker run and some more complex workflows with docker compose.

The experiment was a success during my limited testing, and in the following I’ll detail what I did to run my containers using Colima.

tl;dr

  • Uninstall Docker Desktop
  • Install packages for docker and docker compose (if needed) using your favorite macOS package manager
  • Install colima to use as container runtime
  • Run your Docker workflow successfully without Docker Desktop

Read More

Creating the same app using 4 different frameworks

This advent I blogged on Bekk’s advent calendar, as tradition mandates. The carol of how a co-worker and I created the same app using 4 different frameworks: Flutter, React Native, Xamarin Forms and SwiftUI. We did this to answer the age-old question: “Which mobile application framework is the best?” and to learn for ourselves the pros and cons of different approaches. We also polled a lot of colleagues on their experiences, including authors of some of Norway’s most used and important apps. Read on to learn our and Norway’s favorite mobile application framework!

My slides are available below and a talk-version of this post can also be viewed in 🇳🇴 on Bekk’s Vimeo-channel.

Control the tab bar color in Safari 15

With Safari 15 now released, we can now incorporate our website’s theme color in the tab bar on iPadOS and macOS.

Using a meta-tag, the site can specify what color the tab bar should taken while users visit and we can even use media queries to specify different colors for light and dark mode.

<meta name="theme-color" 
      content="#ecd96f" 
      media="(prefers-color-scheme: light)">
<meta name="theme-color" 
      content="#0b3e05" 
      media="(prefers-color-scheme: dark)">

Read More

We're all individuals together

Yesterday I had the pleasure of speaking to my local IxDA chapter. My talk pitched the necessity of practicing working together, even in autonomous cross-functional product teams. Other teams of specialists do this regularly, so why shouldn’t we also do it in the software world?

Thus I introduced 4 exercises that anyone can do with their team to increase trust, set common goals and mitigate risks:

  1. Make everybody draw their life and share it with the team.
  2. Private answer three simple questions: What are we making? For whom? Why? And then reflect on how the answers differ within the team.
  3. Create a team working agreement by using a consensus process.
  4. Run a pre mortem, a post mortem before the potential failure has happened.

My slides are available below and the talk can be viewed in 🇳🇴 on Facebook.

App spring cleaning

Spring is the season of growth and rebirth. So also for my apps. Version 2021.1 of many of the apps are ready and here are the changes:

Book Barcode Scanner

  • Every Amazon site is now available as a source for books. The US store is still the default, but any other store can be chosen.
  • ebok.no can now be used by you lucky few who know Norwegian.

And for every user:

  • The scan history can now be shared using your preferred citation mode, using either a bullet list, markdown reference list or Bibtex.
  • From History we can now quickly navigate to the book source using the swipe menu.
  • And navigation from book details to the source is easier than ever.

Golden Ratio Calculator++

  • Small performance improvements.
  • Navnedag gjør det nå mulig å søke etter akkurat det navnet vi leter etter. Og det er flott, siden det finnes så mange fine navn i Norge.
  • Nick! Appen har nå også kommet seg inn i 80-tallet og vi kan nå se når en venns nick har navnedag. Wicked!
  • Og en del tekniske rettinger og forbedringer.

Using F# in Xamarin Apps

Christmas Eve is near and so is the end of this year’s educational marathon: Bekk Christmas. And after my last post, I got some constructive feedback:

Being a quick learner, I remind both myself and you my dear readers that F# exists and can be easily used alongside C# to really utilize each language unique strengths in the post Using F# in Xamarin Apps.

F# is perfect for domain modeling, even on mobile.

Functional ... C#?

The door to my first post of this year’s Bekk Christmas has finally been opened. My article, Functional … C#?, tells the story of immutability in the C# language and gives a quick introduction C# 9’s new, life-saving feature: records!

A record is immutable in that none of the properties can be modified once it’s been created, and the with keyword will help with creating new objects where some of the values should change:

public record Person(uint Age);

var me = new Person(37);
Person meAYearOlder = me with { Age = 38 };

So listen to the meme-advice, stay immutable, STAY SAFE.

Wishing you all a very Bekk Christmas

For us family oriented developers, advent is usually a time of joy and major stress. Not only must our households be made ready for Christmas, but we also need to finish the various online advent calendars. Preferably ahead of our peers.

Bekk Christmas

This year is no different and I’m proud to be a part of the old (in computer terms) tradition of authoring a couple of posts in Bekk’s collection of 11 calendars of technology, design, strategy and innovation: Bekk Christmas.

Read More

Navnedag - Norwegian name days 🇳🇴

Navnedag is my latest Norwegian app highlighting, the age old tradition of name days. A name day is day where you can celebrate your given name and get a free dinner at IKEA. This app shows you all the Norwegian name days, when your contacts have name days and the etymology of the various names.

Hent Navnedag på App Store