<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

 <title>Hauken</title>
 <link href="https://hauken.no/atom.xml" rel="self"/>
 <link href="https://hauken.no/"/>
 <updated>2026-04-02T19:32:02+00:00</updated>
 <id>https://hauken.no/</id>
 <author>
   <name>Marius Hauken</name>
   <email>marius@hauken.no</email>
 </author>

 
 <entry>
   <title>2025 Year in Review</title>
   <link href="https://hauken.no/2025/"/>
   <updated>2026-02-10T00:00:00+00:00</updated>
   <id>https://hauken.no/2025/</id>
   <content type="html">&lt;p&gt;2025 was a year of building and shipping. At Heder Bank, we went from a manual mortgage process to automated processing, savings accounts, and the beginnings of an online bank. Outside work, I sold my first side project, launched a car bingo app, and spent family time cycling through Denmark and racing obstacles with the kids. Here’s my look back at 2025:&lt;/p&gt;

&lt;h2 id=&quot;work&quot;&gt;Work&lt;/h2&gt;

&lt;p&gt;2025 has been intense. After &lt;a href=&quot;https://hauken.no/2024&quot;&gt;Robin and I jumped into designing and coding a bank from scratch&lt;/a&gt; last year, we’ve shipped a (manual) &lt;a href=&quot;https://hauken.no/mhp/&quot;&gt;Minimum Hateable Product&lt;/a&gt; for mortgages, two websites, savings account onboarding, automated mortgage processing, and the start of an online bank while building brand and style guide. Solid output for what we claim is the smallest IT department in banking (plus a handful of consultants).&lt;/p&gt;

&lt;p&gt;Being CTO means I’ve learned more about regulations than I ever wanted to know. I’ve written outsourcing documents, reviewed contracts, done endless risk assessments. I’m genuinely glad banking is heavily regulated, but I’m even more glad we hired a dedicated CISO who’s brilliant at this stuff. Hopefully that frees me up to actually build things next year.&lt;/p&gt;

&lt;figure&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/year-in-review/kontopprettelse.gif&quot; alt=&quot;Account creation in Heder Bank&quot; class=&quot;post__img-round&quot; /&gt;
&lt;figcaption&gt;Account creation in Heder Bank&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;A definite highlight was launching and automating our savings account flow. Since we needed more capital to fund new mortgages, releasing this feature became our top priority over the summer. The response was overwhelming—within days of launching, over 2,000 customers signed up for savings accounts, and we actually had to pause new applications because we’re such a small bank. I think that makes us one of the first banks to ever “sell out” of savings accounts. Now, our focus has shifted to building out the daily banking experience, which is both challenging and genuinely exciting!&lt;/p&gt;

&lt;figure&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/year-in-review/kyc.gif&quot; alt=&quot;KYC in Heder Bank&quot; class=&quot;post__img-round&quot; /&gt;
&lt;figcaption&gt;Our Know Your Customer (KYC) process&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;norway-fintech-festival&quot;&gt;Norway Fintech Festival&lt;/h3&gt;

&lt;figure&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/year-in-review/nff.webp&quot; alt=&quot;Norway Fintech Festival&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;This year I also spoke at Norway Fintech Festival about Hyper Personalization in banking. In a moment of questionable genius, I decided to hand-draw every slide. Because what’s more personal in the age of AI than actually drawing and painting my own slides? The presentation was luckily well received!&lt;/p&gt;

&lt;h2 id=&quot;side-projects&quot;&gt;Side projects&lt;/h2&gt;

&lt;h3 id=&quot;sold-violating-gdprcom&quot;&gt;Sold &lt;a href=&quot;https://www.violating-gdpr.com/?ref=hauken.no&quot;&gt;Violating-gdpr.com&lt;/a&gt;&lt;/h3&gt;

&lt;figure&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/year-in-review/violating-gdpr.webp&quot; alt=&quot;Violating GDPR website&quot; class=&quot;post__img-round&quot; /&gt;
&lt;figcaption&gt;The site I sold this year&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This year I sold my first side project. I was contacted by a company that saw potential in the site I created years ago checking your website if you sent data outside of the European Union. After some mails back and forth we agreed with a sum and I sold the site to them via Escrow. A win-win for both parts!&lt;/p&gt;

&lt;h3 id=&quot;isecretsio&quot;&gt;&lt;a href=&quot;https://isecrets.io&quot;&gt;isecrets.io&lt;/a&gt;&lt;/h3&gt;

&lt;figure&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/year-in-review/isecrets.webp&quot; alt=&quot;iSecrets.io website&quot; class=&quot;post__img-round&quot; /&gt;
&lt;figcaption&gt;iSecrets.io - iOS tips database&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Years ago I launched isecrets.io as a newsletter that automatically sent over 150 emails with iOS tips. The problem was that running a high-traffic newsletter cost more than I was making from it. So I shut down the newsletter and turned all the tips into a searchable database instead. &lt;a href=&quot;https://isecrets.io&quot;&gt;You can try it out here.&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;launched-car-bingo&quot;&gt;Launched &lt;a href=&quot;https://apps.apple.com/cz/app/car-bingo-road-trip-game/id6748092913&quot;&gt;Car Bingo&lt;/a&gt;&lt;/h3&gt;

&lt;figure&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/year-in-review/carbingo.webp&quot; alt=&quot;Car Bingo app&quot; class=&quot;post__img-round&quot; /&gt;
&lt;figcaption&gt;
  &lt;a href=&quot;https://apps.apple.com/cz/app/car-bingo-road-trip-game/id6748092913&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Car Bingo&lt;/a&gt; – a road trip game for kids
&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This year I once again attended Revenuecats shipathon in October. This year I launched a car bingo app inspired by the car-bingo sheet my wife created for our kids this summer. It was a fun “quick” project over some weekends, and the kids have enjoyed it on trips. Though they keep telling me I added way too many things to find. &lt;a href=&quot;https://apps.apple.com/cz/app/car-bingo-road-trip-game/id6748092913&quot;&gt;Try out the app here.&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;sunday-sms&quot;&gt;Sunday SMS&lt;/h3&gt;

&lt;figure&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/year-in-review/sunday-sms.webp&quot; alt=&quot;Sunday SMS notification&quot; class=&quot;post__img-round&quot; /&gt;
&lt;figcaption&gt;Weekly schedule reminder via SMS&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I got tired of digging through my daughter’s school bag every week, so I made a Cloudflare script that texts my wife and me every Sunday evening with the week’s school schedule for the oldest one. Small thing, but it’s been helpful.&lt;/p&gt;

&lt;h3 id=&quot;parental-leave-tracker&quot;&gt;Parental leave tracker&lt;/h3&gt;

&lt;figure&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/year-in-review/parental-leave.webp&quot; alt=&quot;Parental leave tracker&quot; class=&quot;post__img&quot; /&gt;
&lt;figcaption&gt;Simple webapp for tracking parental leave hours&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;In September I started part-time parental leave for our youngest. Currently this means two hours less work each day and every other Friday off. That’s about 600 hours to track across a year, so naturally I built a simple webapp for tracking it.&lt;/p&gt;

&lt;h3 id=&quot;blog-and-newsletter&quot;&gt;Blog and newsletter&lt;/h3&gt;

&lt;p&gt;I have only written 5 blogposts this year, which is quite disappointing considering one of my goals last year was to write more. I probably did write more, but mostly for myself and for work. The thing is, time spent writing means less time building, and building is what gets me excited these days.&lt;/p&gt;

&lt;h2 id=&quot;the-good-parts&quot;&gt;The Good Parts&lt;/h2&gt;

&lt;h3 id=&quot;travel&quot;&gt;Travel&lt;/h3&gt;

&lt;h4 id=&quot;dyreparken&quot;&gt;Dyreparken&lt;/h4&gt;

&lt;p&gt;Once again we travelled to Dyreparken some weekends before our real vacation started. I can’t recommend it enough being a couple of days in the magic of the pirate land. This time we rented a hut in Juliusskogen with canopy walks between the trees. A lovely memory!&lt;/p&gt;

&lt;figure&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/year-in-review/dyreparken.webp&quot; alt=&quot;Dyreparken&quot; /&gt;
&lt;/figure&gt;

&lt;h4 id=&quot;scouting-camp-in-gjøvik&quot;&gt;Scouting camp in Gjøvik&lt;/h4&gt;

&lt;p&gt;Our main vacation this year started with a bang when we attended the national scout camp in Gjøvik with over 8 000 scouts. The first evening is also where I discovered my biggest blunder of the year: I had forgotten to pack the tent-rods for our family tent, so I had to scour Gjøvik and beyond to find a blackout family tent in a couple of hours. Luckily I found one and we ended up having a good time!&lt;/p&gt;

&lt;figure&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/year-in-review/scout-with-emojis.webp&quot; alt=&quot;Scouting camp in Gjøvik&quot; /&gt;
&lt;/figure&gt;

&lt;h4 id=&quot;bike-vacation-in-denmark&quot;&gt;Bike vacation in Denmark&lt;/h4&gt;

&lt;p&gt;Then we spent two weeks in Denmark on bikes. We rented three different cabins in the north and just cycled everywhere. Turns out not having a car feels more freeing, not less. We’re definitely doing this again.&lt;/p&gt;

&lt;figure&gt;
&lt;div class=&quot;post__gallery&quot;&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(33.33% - 5.3px); aspect-ratio: 3 / 4;&quot; src=&quot;/img/2025/year-in-review/denmark1.webp&quot; /&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(33.33% - 5.3px); aspect-ratio: 3 / 4;&quot; src=&quot;/img/2025/year-in-review/denmark2.webp&quot; /&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(33.33% - 5.3px); aspect-ratio: 3 / 4;&quot; src=&quot;/img/2025/year-in-review/denmark3.webp&quot; /&gt;
&lt;/div&gt;
&lt;figcaption&gt;Cycling through Denmark&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure&gt;
&lt;div class=&quot;post__gallery&quot;&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(50% - 4px); aspect-ratio: 3 / 4;&quot; src=&quot;/img/2025/year-in-review/denmark4.webp&quot; /&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(50% - 4px); aspect-ratio: 3 / 4;&quot; src=&quot;/img/2025/year-in-review/denmark5.webp&quot; /&gt;
&lt;/div&gt;
&lt;/figure&gt;

&lt;h4 id=&quot;toughest-oslo&quot;&gt;Toughest Oslo&lt;/h4&gt;

&lt;p&gt;Going to Oslo for Toughest in the autumn is becoming a family tradition. There’s something about the combination of running, obstacles, and that final exhausted sprint up the ski slope. This year I ran with Helene on Saturday and our two oldest on Sunday. We didn’t attend last year since I dislocated my shoulder the year before in the race and my shoulder wasn’t fully rehabilitated. This year it went fine in the main race, but I actually managed to dislocate my other shoulder during the family race. Luckily it snapped quickly into place with no later side effects.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/year-in-review/toughest-with-emojis.webp&quot; alt=&quot;Toughest Oslo&quot; /&gt;
&lt;/figure&gt;

&lt;h4 id=&quot;trolljegerprøven&quot;&gt;Trolljegerprøven&lt;/h4&gt;

&lt;p&gt;The week after we ran Trolljegerprøven with both our oldest kids as well. I was more nervous about this since the middle one cancelled last year because she became too cold with all the water hurdles. But this year she finished strong!&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/year-in-review/trolljeger-with-emojis.webp&quot; alt=&quot;Trolljegerprøven&quot; /&gt;
&lt;/figure&gt;

&lt;h4 id=&quot;kaizers-orchestra&quot;&gt;Kaizers Orchestra&lt;/h4&gt;

&lt;p&gt;I haven’t been to a concert in years, but when Kaizers announced they were coming to Bergen I bought tickets immediately. Ended up going alone but really enjoyed it.&lt;/p&gt;

&lt;h3 id=&quot;health&quot;&gt;Health&lt;/h3&gt;

&lt;p&gt;Having three kids between 1 and 8 while working at a startup bank doesn’t leave much time for the gym. I’ve had to accept that. What I do now is pop into the training center near our office right after cycling to work. I’m already warm, so I just do a quick full-body workout. My average session is about 20 minutes. Sometimes it’s literally one set per body part. But staying consistent with this and doing lots of supersets with almost no rest has somehow made me stronger than I was last year.&lt;/p&gt;

&lt;figure&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;Training 2025&quot; src=&quot;/img/2025/year-in-review/2025-training.webp&quot; class=&quot;post__img-round&quot; /&gt;
&lt;figcaption&gt;2025 in training. Quick sessions, consistent effort.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;wonderful-things-from-2025&quot;&gt;Wonderful things from 2025&lt;/h2&gt;

&lt;h3 id=&quot;purchases&quot;&gt;Purchases&lt;/h3&gt;

&lt;p&gt;&lt;img class=&quot;post__right post__right--pop&quot; src=&quot;/img/2025/year-in-review/trmnl.webp&quot; alt=&quot;TRMNL e-ink display&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://trmnl.com/&quot;&gt;Trmnl&lt;/a&gt;&lt;/strong&gt; I bought this e-ink screen as soon as I saw it. It sits in our kitchen showing the next three days of our family calendar, today’s weather, and a countdown to whatever we’re looking forward to. The best part: I’ve had it for months and haven’t charged it once. &lt;span class=&quot;tag&quot;&gt;tech&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.quadlockcase.eu/&quot;&gt;Quadlock case&lt;/a&gt; for iPhone&lt;/strong&gt; I got the new iPhone 16 Pro, which is great. But it’s even better with the QuadLock case that lets me attach it to my bike or running band. I’ve used QuadLock cases for years, but this year I also got a ring for the back and it’s been incredibly useful for propping up the phone and just holding it better. &lt;span class=&quot;tag&quot;&gt;gear&lt;/span&gt;&lt;/p&gt;

&lt;h3 id=&quot;media&quot;&gt;Media&lt;/h3&gt;

&lt;figure&gt;
&lt;div class=&quot;post__gallery&quot;&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;Endurance by Alfred Lansing&quot; style=&quot;width: calc(25% - 6px);&quot; src=&quot;/img/2025/year-in-review/endurance.webp&quot; /&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;American Kingpin by Nick Bilton&quot; style=&quot;width: calc(25% - 6px);&quot; src=&quot;/img/2025/year-in-review/american-kingpin.webp&quot; /&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;Replay by Ken Grimwood&quot; style=&quot;width: calc(25% - 6px);&quot; src=&quot;/img/2025/year-in-review/replay.webp&quot; /&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;Red Rising by Pierce Brown&quot; style=&quot;width: calc(25% - 6px);&quot; src=&quot;/img/2025/year-in-review/red-rising.webp&quot; /&gt;
&lt;/div&gt;
&lt;figcaption&gt;Books I enjoyed this year&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;strong&gt;Endurance&lt;/strong&gt; This is about Shackleton’s 1914 expedition to Antarctica. His ship got trapped in pack ice and he and his 27 crew members had to survive by drifting on ice flows, traveling in small boats, and living on seals and penguins in freezing conditions until they made it back to civilization. Absolutely gripping. &lt;span class=&quot;tag&quot;&gt;Book&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;American Kingpin&lt;/strong&gt; A detailed account of the Silk Road—the darknet marketplace built on Tor and Bitcoin—and how they eventually caught its creator. One of the best true crime books I’ve read. &lt;span class=&quot;tag&quot;&gt;Book&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Replay&lt;/strong&gt; Jeff dies but wakes up as a younger version of himself. He uses what he knows about the future to get rich, but every time he reaches that same point, he dies again and wakes up even younger. Eventually he meets Pamela, another replayer in the same situation, and they figure it out together. &lt;span class=&quot;tag&quot;&gt;Book&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Red Rising&lt;/strong&gt; Red Rising is a sci-fi novel where humanity has colonized the solar system under a rigid color-coded caste system, with Golds ruling as godlike elites and Reds toiling as the lowest slaves in underground mines. The main character Darrow, a Red, is surgically transformed into a Gold and infiltrates their brutal academy to destroy the society from within. I’m on book 4 now, which probably says enough. &lt;span class=&quot;tag&quot;&gt;Book&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Gentlemen&lt;/strong&gt; I actually read more books than watched movies this year. But the movie I enjoyed most was The Gentlemen, which had all the energy of Lock Stock and Snatch. Fast-paced with great dialogue. &lt;span class=&quot;tag&quot;&gt;Movie&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Taylor Swift - The life of a showgirl&lt;/strong&gt; My most played album last year even though it came out in October. So many good songs! &lt;span class=&quot;tag&quot;&gt;Album&lt;/span&gt;&lt;/p&gt;

&lt;h3 id=&quot;apps&quot;&gt;Apps&lt;/h3&gt;

&lt;div class=&quot;flag flag--responsive&quot;&gt;
  &lt;div class=&quot;flag__image&quot;&gt;
    &lt;img loading=&quot;lazy&quot; width=&quot;96&quot; src=&quot;/img/2025/year-in-review/obsidian.webp&quot; alt=&quot;Obsidian&quot; style=&quot;max-width: minmax(80px, 30%); aspect-ratio: 1 / 1;&quot; /&gt; 
  &lt;/div&gt;
  &lt;div class=&quot;flag__body&quot;&gt;
    &lt;p&gt;&lt;a href=&quot;https://obsidian.md&quot;&gt;&lt;strong&gt;Obsidian&lt;/strong&gt;&lt;/a&gt; My favorite note-taking app got a major speed upgrade this year, which made it way more useful on my phone. Highly recommend it.&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;flag flag--responsive&quot;&gt;
  &lt;div class=&quot;flag__image&quot;&gt;
    &lt;img loading=&quot;lazy&quot; width=&quot;96&quot; src=&quot;/img/2025/year-in-review/claude.webp&quot; alt=&quot;Claude Code&quot; style=&quot;max-width: minmax(80px, 30%); aspect-ratio: 1 / 1;&quot; /&gt; 
  &lt;/div&gt;
  &lt;div class=&quot;flag__body&quot;&gt;
    &lt;p&gt;&lt;a href=&quot;https://claude.ai&quot;&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;/a&gt; I&apos;ve played a lot with Cursor, ChatGPT and Claude over the year, but Claude Code has been the real game changing app for this year! It is amazing what it can do and how it empowers me as a creator!&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h2 id=&quot;plans-and-goals-for-2026&quot;&gt;Plans and goals for 2026&lt;/h2&gt;

&lt;p&gt;As I look ahead to 2026, I’m even more excited about the year ahead than last year. The pace of AI development keeps opening up new possibilities. Here’s what I’m focusing on:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Create a daily banking experience for Heder Bank.&lt;/strong&gt; I’ve spent 15 years in fintech. Time to apply all of it and build something exceptional.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Launch another iPhone app.&lt;/strong&gt; I’ve been thinking about this concept for years, but the technology has finally caught up. Excited to ship it.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Write to learn in public&lt;/strong&gt;. Last year I had the goal of writing more in public. I am fairly certain I wrote more, but I definitely shared less. Let’s change that up this year!&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Create more family adventures&lt;/strong&gt;. When I look back at this year, the family trips are what I remember most. I want more of those.&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>Why Your Users Aren't Listening (It’s Not What You Think)</title>
   <link href="https://hauken.no/timing/"/>
   <updated>2025-08-18T00:00:00+00:00</updated>
   <id>https://hauken.no/timing/</id>
   <content type="html">&lt;p&gt;There’s a right moment for everything, and sometimes good design is just about noticing those.
Last night, I had been watching a show and about to turn off my TV when a notification popped up on my Apple TV:
“Charge your remote now”&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/2025/timing.svg&quot; alt=&quot;Apple TV reminder&quot; /&gt;&lt;/p&gt;

&lt;p&gt;What a perfectly timed message!&lt;/p&gt;

&lt;p&gt;It didn’t interrupt the show.
It didn’t ask for attention when I was deep into what I was watching.
It waited until I was done.
Until my brain had shifted modes from consuming to wrapping up.
The request was timed to match my context.
That’s rare, and it felt strangely thoughtful.&lt;/p&gt;

&lt;p&gt;The difference between charging it now and doing it some time later was effectively zero for me, but for my future self, it would be the difference between the TV working and not working.&lt;/p&gt;

&lt;p&gt;Designers often obsess over how we say something.
What the words are.
Whether the button is red or blue.
Where to place the button.
But we often forget to think about when we say it.
And timing, in design, often matters more than phrasing.
The same prompt can be helpful or annoying depending purely on when it arrives.&lt;/p&gt;

&lt;p&gt;I saw this when I worked with Skandiabanken.
We’d sometimes promote new features or products right after users finished something.
Like after they had paid a bill or logged out.
And strangely, conversion rates were good, even though the customers had to log in again.
Why?
Because their minds were clear.
They weren’t trying to do a task anymore.
They were just… done.
And when you catch people at that moment, they are far more open to noticing something new.&lt;/p&gt;

&lt;p&gt;Contrast that with what happened today at the store:
I opened my payment app to pay for something, and a notification took over the entire screen.
I swiped it away instantly, didn’t even read it.
They interrupted me mid-task.
So instead of engaging with their message, I treated it like an obstacle to remove.&lt;/p&gt;

&lt;p&gt;We talk a lot about empathy in design.
Understanding what someone needs and how to present it.
But timing matters just as much.
Knowing when someone is ready to hear your message can be the difference between helping them and annoying them.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>The surprisingly difficult art of paying for my Apple developer account</title>
   <link href="https://hauken.no/paying-apple/"/>
   <updated>2025-08-14T00:00:00+00:00</updated>
   <id>https://hauken.no/paying-apple/</id>
   <content type="html">&lt;p&gt;There comes a moment in every person’s life when they realize that the modern world operates on a system of dependencies so complex that even the companies who built them haven’t the faintest idea how they work.
For me, this moment arrived last week when I tried to do something as simple as giving Apple money.&lt;/p&gt;

&lt;p&gt;Specifically, I was trying to pay for my company’s developer subscription.
The sort of transaction that, in a rational universe, would involve handing over money and receiving goods or services in return.
But apparently we do not live in a rational universe.
We live in a universe where Apple has constructed a digital Rube Goldberg machine of such staggering complexity that it requires the precise alignment of no fewer than three separate login states, one payment card, one specific biometric authentication method, and what I can only assume is a favorable lunar phase.&lt;/p&gt;

&lt;p&gt;“Hello! This is Apple Developer Support,” chirped the first representative with the sort of bright, helpful tone that suggests she genuinely believed this would be a straightforward conversation
“How can I help you?”&lt;/p&gt;

&lt;p&gt;“I’d like to renew my companys developer subscription,”
I said, foolishly believing this was a reasonable request.&lt;/p&gt;

&lt;p&gt;“Are you the Account Owner?” she asked, as if I might have called to renew someone else’s subscription for the sheer sport of it.&lt;/p&gt;

&lt;p&gt;“Yes. It was transferred to me half a year ago.”&lt;/p&gt;

&lt;p&gt;“Great!
Are you logged in with your Account in Settings on your Mac, in the App Store, and in the developer App?”&lt;/p&gt;

&lt;p&gt;“Well,” I admitted,
“I’m logged in with my personal account on my computer and not the business account I want to renew.”&lt;/p&gt;

&lt;p&gt;“Sure! Let’s just transfer the ownership to your personal account instead!”&lt;/p&gt;

&lt;p&gt;For a brief, shining moment, I thought I had encountered that rarest of creatures: an Apple support representative who understood that technology should serve humans, not the other way around.&lt;/p&gt;

&lt;p&gt;“Wait!” she said, and I could practically hear her consulting some sacred text of digital bureaucracy.
“I see your personal account is an owner of another organization.
I’m sorry, but an Apple ID can’t be an owner of multiple Business Accounts.
You’ll then have to log out of Settings, App store, the developer app on your Mac, wipe your iCloud on your computer and then log in again with your business account everywhere.”&lt;/p&gt;

&lt;p&gt;There it was, the moment when I realized that Apple, a company worth more than the GDP of most nations, had constructed a system where the simple act of renewing a developer license when you are the owner of multiple business accounts essentially contaminated your entire digital existence, requiring a full cleansing to proceed.&lt;/p&gt;

&lt;p&gt;I spent the next hour performing what can only be described as technological exorcism, logging out of everything, wiping iCloud on my computer, and logging back in with my business Apple ID account.&lt;/p&gt;

&lt;p&gt;“It’s done,” I reported back, “but I still get the same error.”&lt;/p&gt;

&lt;p&gt;Twenty minutes of mystical troubleshooting later, during which we presumably consulted ancient scrolls and performed the technological equivalent of reading tea leaves, my support representative achieved enlightenment: “You know what: I think this will automatically renew in two weeks and you don’t have to do anything.”&lt;/p&gt;

&lt;p&gt;Ah.
The classic solution: maybe the problem will disappear if we all pretend it never existed.&lt;/p&gt;

&lt;p&gt;“Ok! Sure! Thanks!”
I said, because what else do you say when someone tells you that the solution to your problem is to have never had the problem in the first place?&lt;/p&gt;

&lt;p&gt;Four hours later, my phone rang.&lt;/p&gt;

&lt;p&gt;“Hello!
This is Apple Developer support!
I’m sorry, but what my colleague told you was wrong.
Could you log out everywhere on your computer again and wipe your iCloud so that we can renew your developer license?”&lt;/p&gt;

&lt;p&gt;At this point, I was beginning to understand that Apple’s support system operates on the same principle as a wobbly table: each attempt to fix the leg makes it wobble more while convincing you that surely, surely, this next adjustment will be the one that works.&lt;/p&gt;

&lt;p&gt;“Why,” I asked with what I felt was admirable restraint, “are you making it so hard for me to give you money?
Why?”
The support representative, to her credit, did not attempt to answer these questions, perhaps recognizing them as the existential screams they were meant to be.&lt;/p&gt;

&lt;p&gt;In desperation, I dug up an old iPhone from the technological graveyard that is my kitchen drawer, wiped it clean (because apparently, in Apple’s universe, all devices are born in sin and must be purified), and installed it with my business Apple account.&lt;/p&gt;

&lt;p&gt;Surely this would work.&lt;/p&gt;

&lt;p&gt;Surely.&lt;/p&gt;

&lt;p&gt;It did not work.&lt;/p&gt;

&lt;p&gt;Ten minutes into my next call with developer support (call number four, but who’s counting) we finally discovered the solution. To successfully renew an Apple Developer subscription of an organization that was transferred to you (and you use another Apple account day to day), one must not only be logged into the correct account across three seperate applications on a clean device and possess a working payment method, but also have Face ID enabled. Apple, masters of cramming supercomputers into pocket-sized devices, has created a payment system for developers that would baffle the engineers who built those very devices.&lt;/p&gt;

&lt;p&gt;And we accept it since we don’t actually have a choice.
I couldn’t simply take my business elsewhere, because leaving Apple’s ecosystem would mean abandoning years of work and watching our app vanish from the only store that matters.
They can make the process as maddeningly convoluted as they like because what are we going to do?
Switch to Android and leave our iOS customer base hanging?&lt;/p&gt;

&lt;p&gt;I got my subscription renewed, eventually.
But I can’t shake the feeling that somewhere in Cupertino, there’s a room full of very smart people who have created a system so convoluted that they themselves need technical support to use it, and they are just as trapped by it as the rest of us.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Notes from inside an accidental airbag</title>
   <link href="https://hauken.no/airbag/"/>
   <updated>2025-02-13T00:00:00+00:00</updated>
   <id>https://hauken.no/airbag/</id>
   <content type="html">&lt;p&gt;I lifted my daughter from the bike in our garage, her small hands gripping my shoulders. The January chill stung our cheeks, and my Hövding airbag helmet sat forgotten around my neck.&lt;/p&gt;

&lt;p&gt;I gestured toward the house.
“Race you to the door!”&lt;/p&gt;

&lt;p&gt;She grinned, before hopping onto her kick wheel.
She propelled herself forward with the practiced confidence of a toddler who didn’t know fear.&lt;/p&gt;

&lt;p&gt;But halfway up the path, I saw it - a small pothole in the asphalt, barely noticeable to adult eyes but a trap to tiny wheels.
She rolled forward, oblivious, while my pulse hammered in anticipation.
In the span of half a second, I saw two futures: one where she toppled headfirst and another where my reflexes caught her mid-fall.&lt;/p&gt;

&lt;p&gt;I didn’t think.
I just moved — lurching across the asphalt.
My hands extended to grab her shoulders, disarming the inevitable fall.&lt;/p&gt;

&lt;p&gt;Then it happened.&lt;/p&gt;

&lt;p&gt;A deafening hiss, like a tire exploding.
A sharp POP.
My Hövding, still around my neck, detonated into action.
Instantly, it ballooned upward, encasing my head in a cartoonishly massive pillow.&lt;/p&gt;

&lt;p&gt;The helmet wasn’t just inflated; it whirred.
Little electronic confirmations buzzed from its connection to my phone, echoing in the still January air.
The Hövding app offering alerts of a “potential crash detected” and asking if I was okay.&lt;/p&gt;

&lt;p&gt;And then I started laughing.
I couldn’t help it.
The sheer absurdity of the situation, the way it had all spiraled from a subtle turn of her kick-wheel.
This collision of cutting-edge technology and human fallibility resulted in a single, absurd moment.&lt;/p&gt;

&lt;p&gt;Her eyes filled with betrayal.
Then came the crying.
Instead of gratitude for my heroic save, I was met with wide-eyed terror.&lt;/p&gt;

&lt;p&gt;I crouched down trying to explain.
But what could I even say?
“It was just my helmet” didn’t make sense to a toddler.
I managed to carry her home, while she turned away from the sight of this terrifying transformation.&lt;/p&gt;

&lt;p&gt;Later, as I stood in the entrance with the Hövding deflated in my hands, I reflected over the scene.
They tell you these things are tested for every edge case: precisely calibrated, exhaustively prototyped.
A marvel of modern design.
But as a designer, I knew:
you can simulate a million scenarios in the lab, but you can’t account for the chaos of real life - like a father’s instinctive lunge to catch his daughter, nowhere near a bicycle, triggering a $300 false alarm.&lt;/p&gt;

&lt;figure&gt;
&lt;img src=&quot;/img/2024/airbag.avif&quot; alt=&quot;Hövding exploded&quot; /&gt;
&lt;/figure&gt;
</content>
 </entry>
 
 <entry>
   <title>The power of a MHP (Minimum Hateable Product)</title>
   <link href="https://hauken.no/mhp/"/>
   <updated>2025-01-30T00:00:00+00:00</updated>
   <id>https://hauken.no/mhp/</id>
   <content type="html">&lt;p&gt;I never thought I’d advocate for creating something I hated. As a designer, my career has been built on crafting beautiful, intuitive experiences. But there I was, watching a potential customer struggle through a digital obstacle course that would make even the most patient user want to tear their hair out. This digital train wreck could become our greatest asset.&lt;/p&gt;

&lt;p&gt;The interface was clunky, the flow unintuitive. Each click seemed to lead to a new frustration. My designer’s instincts screamed to fix it, to polish it, to make it shine. But a new reality was setting in: we needed to move forward, imperfections and all.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;If you aren’t embarrassed by the first version of your product, you shipped too late.
— Reid Hoffman&lt;/p&gt;
&lt;/blockquote&gt;

&lt;figure&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/mhp.avif&quot; alt=&quot;Miniumum Hateable Product&quot; /&gt;
&lt;figcaption&gt;We&apos;re not proud of this, but...&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Enter the Minimum Hateable Product (MHP).&lt;/p&gt;

&lt;p&gt;You’ve heard of MVP - Minimum Viable Product, the startup world’s favorite way to test markets with bare-bones functionality. MHP is MVP’s embarrassing cousin, the one we don’t invite to family gatherings.&lt;/p&gt;

&lt;p&gt;MHP is the product that makes you cringe. It’s functional, sure, but only in the most basic sense. Imagine a website held together by virtual duct tape and a prayer – that’s our MHP. And yet, it might just be the key to rapid innovation in established industries like banking.&lt;/p&gt;

&lt;p&gt;When we started at &lt;a href=&quot;https://hederbank.no&quot;&gt;Heder Bank&lt;/a&gt;, we faced a choice: spend a year building the “perfect” banking system, or get something - anything - out the door in two months. We chose speed over perfection, progress over polish.&lt;/p&gt;

&lt;p&gt;Our mortgage application process became a Frankenstein’s monster of disconnected parts. Credit checks on one url, anti money laundering in a mail later on. Customers bounced between URLs like pinballs, filling out forms that seemed to multiply like rabbits. Behind the scenes, our case workers performed digital acrobatics, juggling systems and manually connecting dots.&lt;/p&gt;

&lt;p&gt;As a designer, every fiber of my being rebelled. This violated every best practice and committed war crimes against user experience. But as we watched our first mortgage payment go out, just 80 days after starting, it all made sense: Each customer’s struggle through our imperfect system taught us more than months of hypothetical planning and testing ever could. The product was rough, but it worked - and it gave us something invaluable: real customers with real feedback. We’re still improving, but we’re moving faster than we ever could have with a polished-but-delayed launch.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>2024 Year in Review</title>
   <link href="https://hauken.no/2024/"/>
   <updated>2025-01-17T00:00:00+00:00</updated>
   <id>https://hauken.no/2024/</id>
   <content type="html">&lt;p&gt;In 2024, life threw everything at me at once: welcoming our smiling third child, rebuilding strength after shoulder surgery, and taking the biggest leap of my career. After 14 years in consulting, I found myself helping build a bank from scratch, all while somehow managing to ship three passion projects in the margins of life. It was a year of pushing limits and finding new rhythms. Here’s is a look back at my 2024:&lt;/p&gt;

&lt;h2 id=&quot;work&quot;&gt;Work&lt;/h2&gt;

&lt;p&gt;After almost 7 fantastic years at &lt;a href=&quot;https://stacc.com&quot;&gt;Stacc&lt;/a&gt;, 2024 brought significant changes. What began as Stacc X - a project division I founded with Robin Sandborg and Espen Sæverud - evolved into something remarkable. Under Stine Neteland’s skilled leadership, Stacc X and our sister company Stacc Flow had grown increasingly collaborative. In March, we merged to form Stacc Link. The merger felt less like a corporate restructuring and more like making official what was already happening in practice - the natural next step in a story of shared successes.&lt;/p&gt;

&lt;p&gt;2024 was also a year of saying goodbye to key team members: Stine moved on to play an important role at Frendegruppen, Helene Sofie Borthen Stenstadvold (our superstar designer) became the first designer at Norges Bank Investment Management, and Erika Iden Steen (our circus artist turned awesome designer) returned to her hometown of Trondheim to join Sparebank1 utvikling. While these changes were bittersweet, they reflected some of the incredible talent we’d gathered at Stacc X and the exciting new chapters that opened for each team member.&lt;/p&gt;

&lt;p&gt;In October, I made the most transformative change of my career when Robin and I embarked on a new adventure together at &lt;a href=&quot;https://hederbank.no/&quot;&gt;Heder Bank&lt;/a&gt;. After working together across four workplaces - spanning my entire career - we decided to take on the challenge of building a bank from scratch. The transition from consulting to an in-house role felt right after 14 years, though leaving Stacc - an incredible workplace with the most talented and friendliest people - wasn’t easy. The opportunity to create something new in the banking sector proved too compelling to pass up.&lt;/p&gt;

&lt;h3 id=&quot;heder-bank&quot;&gt;Heder Bank&lt;/h3&gt;

&lt;p&gt;The vision for Heder Bank emerged from a simple observation: Norway’s most financially responsible customers are often its most underserved. While banks compete fiercely for high-risk customers with premium rates and perks, those with strong finances and low loan-to-value ratios get surprisingly little in return for their stability. We’re changing that, starting with mortgages at 50% of property value and competitive savings products. It’s banking redesigned from first principles, with technology and customer experience at its core.&lt;/p&gt;

&lt;p&gt;Working in a lean startup environment with a small, dedicated team has allowed me to leverage everything I’ve learned over the past 14 years. Since joining in October, we’ve moved at an incredible pace. In just 80 days, we transformed an idea into reality, reaching a major milestone just before Christmas: issuing our first mortgage loan.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;  
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/heder-bank.png&quot; class=&quot;post__img-round&quot; alt=&quot;Heder Bank&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;Rather than spending a year building an elaborate banking system, we focused on quick, practical results. In about two months, we created our brand, established our technology infrastructure, maximised existing systems, and launched a digital loan application. While the process wasn’t perfect, it proved our concept works. This rapid progress came from our nimble team of three founders, an experienced banking team, and two pragmatic design technologists. I’m incredibly excited to see what we can accomplish and how fast we can move in 2025!&lt;/p&gt;

&lt;p&gt;Hopefully, this also means that I can share more from the process (if I get time 🙈) as I’m not as bound by NDAs as you are with clients!&lt;/p&gt;

&lt;!-- ### Speaking

At the Norway Fintech Festival Young in April, I pulled back the curtain on modern mortgage applications. My lightning talk revealed that what seems like a simple loan application actually involves over 15 different companies working in concert. This complexity would later inform our approach at Heder Bank, where we&apos;re working to simplify this tangled web. --&gt;

&lt;h2 id=&quot;side-projects&quot;&gt;Side projects&lt;/h2&gt;

&lt;p&gt;While building a bank by day, my nights and weekends yielded their own breakthroughs. After years of tinkering with various projects, 2024 brought what I call the “ketchup effect” - when everything suddenly pours out at once. Suddenly I launched 3 side projects the same year:&lt;/p&gt;

&lt;h3 id=&quot;pie-menu&quot;&gt;Pie Menu&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://pie-menu.com/&quot;&gt;Pie Menu&lt;/a&gt; reimagines how we interact with our computers, replacing keyboard shortcuts with an intuitive radial interface. Since launch it has gotten multiple updates driven by user feedback. &lt;a href=&quot;https://hauken.no/pie-menu&quot;&gt;I’ve documented the entire journey&lt;/a&gt;, from initial concept to current development.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;a href=&quot;https://pie-menu.com/&quot; target=&quot;_blank&quot;&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/pie-menu.png&quot; class=&quot;post__img-round&quot; alt=&quot;Pie Menu&quot; /&gt;
&lt;/a&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;hot-corners&quot;&gt;Hot Corners&lt;/h3&gt;

&lt;p&gt;The development of Pie Menu yielded an unexpected bonus: core technology that could power another productivity tool. &lt;a href=&quot;https://www.hot-corners.com/&quot;&gt;Hot Corners&lt;/a&gt; transforms your screen’s corners into powerful app launchers. By moving the cursor to the corner of the screen you can launch whatever app you want. I had especially fun creating the website, collaborating with the great illustrator &lt;a href=&quot;https://etherbrian.github.io/&quot;&gt;Etherbrian&lt;/a&gt;.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;a href=&quot;https://www.hot-corners.com/&quot; target=&quot;_blank&quot;&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/hot-corners.png&quot; class=&quot;post__img-round&quot; alt=&quot;Hot Corners&quot; /&gt;
&lt;/a&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;baby-leaps&quot;&gt;Baby Leaps&lt;/h3&gt;
&lt;p&gt;During my summer vacation, I started my first iOS development journey with &lt;a href=&quot;https://baby-leaps.com/&quot;&gt;Baby Leaps&lt;/a&gt; - an app born from the chaotic joy of becoming a father for the third time. It helps parents track developmental leaps, those periods when little ones seem extra fussy or suddenly develop new skills. Built with SwiftUI and fueled by early morning coding sessions in our cabin (often with lukewarm coffee and a kid watching iPad beside me), it embraces a raw, hand-drawn aesthetic that mirrors the beautiful mess of early parenthood.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;a href=&quot;https://baby-leaps.com/&quot; target=&quot;_blank&quot;&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/baby-leaps.png&quot; class=&quot;post__img-round&quot; alt=&quot;Baby Leaps&quot; /&gt;
&lt;/a&gt;
&lt;/figure&gt;

&lt;p&gt;Thanks to the RevenueCat Ship-a-ton challenge providing motivation and a deadline, I transformed those bleary-eyed coding sessions into a finished product. While there are more polished baby tracking apps out there, Baby Leaps aims to be the trusty pocket knife of parenting tools - simple, reliable, and available during those 3 AM moments when any explanation for a crying baby feels like a lifeline.&lt;/p&gt;

&lt;h3 id=&quot;blog-and-newsletter&quot;&gt;Blog and newsletter&lt;/h3&gt;

&lt;p&gt;In 2024, I’ve published &lt;a href=&quot;https://hauken.no/blog&quot;&gt;12 blog posts&lt;/a&gt; (triple last year’s output) and &lt;a href=&quot;https://newsletter.stacc.com/&quot;&gt;5 Fintech newsletters&lt;/a&gt;. I’m happy with this increased productivity, but I have many blog ideas and side projects in the pipeline. I’m particularly excited to share more about Heder Bank’s development and two ongoing side projects – including one I’m building with my daughters, which they currently use daily.&lt;/p&gt;

&lt;h3 id=&quot;podcast&quot;&gt;Podcast&lt;/h3&gt;

&lt;p&gt;An appearance on &lt;a href=&quot;https://simenspor.transistor.fm/s1/5&quot;&gt;“Simen Spør”&lt;/a&gt; forced me to articulate something I’d been struggling to explain: how to build side projects while juggling a busy family life and job. The conversation went beyond typical productivity advice, diving into specific strategies like my use of &lt;a href=&quot;https://hauken.no/ai-board/&quot;&gt;AI “board members”&lt;/a&gt; for decision-making and techniques for &lt;a href=&quot;https://hauken.no/pockets/&quot;&gt;making the most of small time blocks&lt;/a&gt;. Through discussing projects like iSecrets and Pie Menu we explored a central theme: the power of consistent, small actions in creating something significant. For listeners &lt;a href=&quot;https://hauken.no/side-projects/&quot;&gt;pursuing their own side projects&lt;/a&gt;, the episode offered practical strategies for turning spare moments into meaningful progress.&lt;/p&gt;

&lt;h2 id=&quot;the-good-parts&quot;&gt;The Good Parts&lt;/h2&gt;

&lt;p&gt;In a year of professional milestones, nothing compared to welcoming our third child. Her perpetual smile (earning her the nickname “Smiley”) brought joy to our home, now happily chaotic with three kids aged 7, 4, and our newest addition. Her arrival also inspired Baby Leaps, proving that sometimes the best products come from life’s biggest changes.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;  
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2025/new-kid.jpg&quot; class=&quot;post__img-round&quot; alt=&quot;Our new family member&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;travel&quot;&gt;Travel&lt;/h3&gt;

&lt;p&gt;With a newborn in tow, we traded distant adventures for local discoveries this year. Our summer became a Norwegian travel diary, starting at Mikkelparken where our older kids discovered the joy of amusement parks. At Hotell Ullensvang, we found unexpected luxury: the sauna might have the world’s most spectacular fjord view, and our kids were in heaven with the multiple pools and dedicated play areas.&lt;/p&gt;

&lt;figure&gt;
&lt;div class=&quot;post__gallery&quot;&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(66.66% - 6px); aspect-ratio:  1000 / 750;&quot; src=&quot;/img/2025/ullensvang.avif&quot; /&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(33.33% - 6px); aspect-ratio:  600 / 800;&quot; src=&quot;/img/2025/ullensvang-pool.avif&quot; /&gt;
&lt;/div&gt;
&lt;figcaption&gt;The view from Hotell Ullensvang&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The heart of our summer unfolded at our cabin in Mjølfjell. Between early morning coding sessions and family hikes, I discovered something surprising: the limitations of traveling with three kids &lt;a href=&quot;https://hauken.no/mundane-to-magical/&quot;&gt;actually enhanced our experience&lt;/a&gt;. The mountain rivers reached an unusually warm 18°C, turning our “backup plan” destination into the perfect summer retreat.&lt;/p&gt;

&lt;figure&gt;
&lt;div class=&quot;post__gallery&quot;&gt; 
&lt;video muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; autoplay=&quot;&quot; loading=&quot;lazy&quot; style=&quot;width: calc(33.33% - 5.3px); aspect-ratio: 405 / 720;&quot;&gt;
&lt;source data-src=&quot;/img/2025/video-swing.mp4&quot; type=&quot;video/mp4&quot; src=&quot;/img/2025/video-swing.mp4&quot; /&gt;Your browser does not support the video tag.
&lt;/video&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(66.66% - 5.3px); aspect-ratio:  1000 / 750;&quot; src=&quot;/img/2025/cabin-walk.avif&quot; /&gt;
&lt;/div&gt;
&lt;figcaption&gt;Spending time at the cabin&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;An impromptu weekend trip to Vestlia Resort in Geilo with friends proved to be another highlight. The kids were thrilled with the swimming pools and slides, while the adjacent climbing park gave us all a taste of adventure. What started as a spontaneous getaway became one of our most memorable family weekends.&lt;/p&gt;

&lt;figure&gt;
&lt;div class=&quot;post__gallery&quot;&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(33.33% - 5.3px); aspect-ratio:  500 / 667;&quot; src=&quot;/img/2025/carrying.avif&quot; /&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(33.33% - 5.3px); aspect-ratio:  500 / 667;&quot; src=&quot;/img/2025/hammock.avif&quot; /&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(33.33% - 5.3px); aspect-ratio:  500 / 667;&quot; src=&quot;/img/2025/rain.avif&quot; /&gt;
&lt;/div&gt;
&lt;figcaption&gt;Small getaways during our summer&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The year’s travel story concluded in Oslo, where my new role at Heder Bank became a family adventure. While I worked on launching a bank, my family explored the city’s treasures—from interactive exhibits at Popsenteret to quiet corners of the public library. These small adventures showed me how work transitions can create unexpected family memories.&lt;/p&gt;

&lt;h3 id=&quot;saying-goodbye&quot;&gt;Saying goodbye&lt;/h3&gt;

&lt;p&gt;In November, we said goodbye to my grandmother, who passed away at 92. She was a remarkable woman who embraced life with unmatched enthusiasm and curiosity until the end. While her peers viewed technology with suspicion, she mastered Snapchat and ordered groceries online. I was fortunate to visit her the evening before she passed away, a final moment with someone who was genuinely one &lt;a href=&quot;https://hauken.no/mormor&quot;&gt;of the coolest people I’ve ever known.&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;health&quot;&gt;Health&lt;/h3&gt;

&lt;p&gt;I started 2024 on sick leave after my &lt;a href=&quot;Https://hauken.no/2023&quot;&gt;shoulder surgery in December 2023&lt;/a&gt;. My spring involved taking it easy with my shoulder and barely using a computer for months. I actually got really good at using one hand on my Mac and testing speech recognition software. While on sick leave, I cycled a lot on my erg-bike while watching movies, totaling around 1 000km on my erg with my arm in a sling.&lt;/p&gt;

&lt;p&gt;In spring, I worked with a physiotherapist to regain my shoulder’s range and strength. I needed to train differently and buy a safetybar to continue squats since I couldn’t position my shoulder under a regular squat bar anymore. By year’s end, though some shoulder mobility remained limited, my adapted training had made me stronger than ever—leading to an unexpected need to update parts of my wardrobe. Considering the year started with a newly operated shoulder and a baby I’m quite pleased with the consistency of the training this year.&lt;/p&gt;

&lt;figure&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;Training 2025&quot; src=&quot;/img/2025/training.png&quot; class=&quot;post__img-round&quot; /&gt;
&lt;figcaption&gt;2024 in training. My current goal is to get 3 good sessions a week.&lt;br /&gt; Most of them strength.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&quot;trolljegerprøven&quot;&gt;Trolljegerprøven&lt;/h4&gt;

&lt;p&gt;Despite my shoulder injury from last year’s OCR event, I couldn’t resist returning to obstacle course racing. This time, I made it a family adventure with my two oldest daughters. We participated in Trolljegerprøven at Fløyen in Bergen, with my 4-year-old confidently joining us (despite technically being under the age limit!).&lt;/p&gt;

&lt;p&gt;What followed was a memorable two-hour journey through pouring cold Bergen rain, conquering obstacles, wading through mud, and climbing walls. Halfway through, we had to make a tough call when my 4-year-old got too cold, resulting in a strategic retreat to warm clothes and hot chocolate. Far from discouraging her, she was already planning “next year’s complete run” over her hot chocolate at the café afterward. This experience perfectly summed up what I love about these events: they’re not just about physical challenges, but about discovering what we’re capable of, supporting each other, and creating lasting family memories - even in typical Bergen weather!&lt;/p&gt;

&lt;figure&gt;
&lt;div class=&quot;post__gallery&quot;&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(50% - 6px); aspect-ratio:  800 / 533;&quot; src=&quot;/img/2025/troll-1.avif&quot; /&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(50% - 6px); aspect-ratio:  800 / 533;&quot; src=&quot;/img/2025/troll-2.avif&quot; /&gt;
&lt;/div&gt;
&lt;figcaption&gt;Trolljegerprøven 2024&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;wonderful-things-from-2024&quot;&gt;Wonderful things from 2024&lt;/h2&gt;

&lt;p&gt;This year’s most impactful purchases ranged from digital real estate to sleep “technology”:&lt;/p&gt;

&lt;h3 id=&quot;purchases&quot;&gt;Purchases&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://hauken.no&quot;&gt;&lt;strong&gt;Hauken.no&lt;/strong&gt;&lt;/a&gt; After years of hoping, I finally secured my dream domain. The transition from &lt;a href=&quot;http://hauken.io&quot;&gt;hauken.io&lt;/a&gt; felt like moving into a digital home I’d always wanted, arriving just in time for my growing collection of projects and writing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AirPods Pro 2&lt;/strong&gt; revolutionized my mobile lifestyle with their superior microphone quality. I’ve used the older version for years, but now I can take Teams calls and record voice notes while biking, with clear audio even in windy conditions! &lt;span class=&quot;tag&quot;&gt;tech&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img class=&quot;post__right post__right--pop&quot; src=&quot;/img/2025/omnia.avif&quot; alt=&quot;Omnia oven&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.omniasweden.com/no/&quot;&gt;&lt;strong&gt;Omnia oven&lt;/strong&gt;&lt;/a&gt; - Who knew a portable oven could change family adventures? From fresh pizza at the cabin to warm cinnamon buns on mountain tops, this simple device turned our outdoor meals into memorable experiences. Our kids now expect gourmet dining wherever we go! &lt;span class=&quot;tag&quot;&gt;gear&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A buckwheat pillow&lt;/strong&gt; - The strangest purchase of the year became one of the best. Despite its unusual texture and subtle rustling sound, this pillow’s perfect moldability and hygienic properties have transformed my sleep. (Pro tip: Skip using this for pillow fights - the weight of this pack quite a punch!) &lt;span class=&quot;tag&quot;&gt;home&lt;/span&gt;&lt;/p&gt;

&lt;h3 id=&quot;habits&quot;&gt;Habits&lt;/h3&gt;

&lt;p&gt;The most impactful habit I developed in 2024 was turning my monthly reviews into “mental board meetings” with AI. These structured sessions became a powerful forcing function for progress—each month, I’d sit down with my AI “board members” to evaluate achievements and set new priorities. &lt;a href=&quot;https://hauken.no/ai-board/&quot;&gt;As I detailed in my blog&lt;/a&gt;, these reflections helped me ship three products while maintaining focus at work and home. The practice proved especially valuable during my transition to Heder Bank, helping me balance startup intensity with ongoing side projects.&lt;/p&gt;

&lt;h2 id=&quot;media&quot;&gt;Media&lt;/h2&gt;

&lt;p&gt;During evening wind-down time, I enjoyed some great media this year. Between shows, books, and stories, these were the ones I found myself eager to return to return each evening:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/2025/slow-horses.avif&quot; alt=&quot;Slow Horses&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://tv.apple.com/us/show/slow-horses/umc.cmc.2szz3fdt71tl1ulnbp8utgq5o&quot;&gt;&lt;strong&gt;Slow Horses&lt;/strong&gt;&lt;/a&gt; has delivered exceptional storytelling in the British spy thriller genre. It follows the misfit MI5 agents of Slough House. The blend of intelligence service drama and dark humor keeps us engaged. &lt;span class=&quot;tag&quot;&gt;TV show&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/2025/shrinking.avif&quot; alt=&quot;Shrinking&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://tv.apple.com/no/show/shrinking/&quot;&gt;&lt;strong&gt;Shrinking&lt;/strong&gt;&lt;/a&gt;. We’ve loved watching Shrinking this year. It’s short between the laughs, with a character gallery you can’t help but love - especially Derek, who steals every scene! &lt;span class=&quot;tag&quot;&gt;TV show&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img class=&quot;post__right&quot; src=&quot;/img/2025/slow-productivity.avif&quot; style=&quot;max-width: 30%;&quot; alt=&quot;Slow Productivity&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.amazon.com/Slow-Productivity-Accomplishment-Without-Burnout/dp/0593544854&quot;&gt;&lt;strong&gt;Slow Productivity&lt;/strong&gt;&lt;/a&gt; by Cal Newport revolutionized my work management through a thought experiment: imagine writing reports taking seven hours of focused work plus one hour of daily overhead (emails, meetings, mental space). Working on one report at a time lets you complete one daily, but juggling four simultaneously means half your day on overhead tasks, doubling completion time for each. This insight, along with advice like booking compensatory time for yourself when others schedule meetings, transformed my approach to task management and deep work. &lt;span class=&quot;tag&quot;&gt;Book&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img class=&quot;post__right&quot; src=&quot;/img/2025/scarcity-brain.avif&quot; style=&quot;max-width: 30%;&quot; alt=&quot;Scarcity brain&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.amazon.com/Scarcity-Brain-Craving-Mindset-Rewire/dp/0593236629&quot;&gt;&lt;strong&gt;Scarcity Brain&lt;/strong&gt;&lt;/a&gt; by Michael Easter transformed my understanding of why we chase more - information, rewards, or possessions. The book reveals how humans are wired to consume vast amounts of information as a survival strategy, trapping us in “scarcity loops” of endless seeking. Recognizing these patterns in my life has been revealing, and Easter’s mantra of embracing short-term discomfort for long-term gain has stuck with me. &lt;span class=&quot;tag&quot;&gt;Book&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.lightspeedmagazine.com/fiction/the-perfect-match/&quot;&gt;&lt;strong&gt;The Perfect Match&lt;/strong&gt;&lt;/a&gt; by Ken Liu, published in &lt;a href=&quot;https://www.amazon.com/Brave-New-Worlds-Dystopian-Stories/dp/1597804541&quot;&gt;Brave New Worlds&lt;/a&gt;, is a short story about humanity’s growing dependence on technology. I’ve come to love short story collections, particularly in science fiction after enjoying Ted Chiang’s work. I recently discovered Ken Liu in the sam genre. Liu’s “The Perfect Match” is a compelling story exploring humanity’s merging with technology, as our minds integrate with digital systems: “Churchill said that we shape our buildings, and afterwards our buildings shape us. We made machines to help us think, and now the machines think for us.” &lt;span class=&quot;tag&quot;&gt;Book&lt;/span&gt;&lt;/p&gt;

&lt;div class=&quot;flag flag--responsive&quot;&gt;
  &lt;div class=&quot;flag__image&quot;&gt;
    &lt;img class=&quot;post__img-round&quot; loading=&quot;lazy&quot; width=&quot;96&quot; src=&quot;/img/2025/echo-wolf.webp&quot; alt=&quot;Claude&quot; style=&quot;max-width: minmax(80px, 30%); aspect-ratio: 1 / 1;&quot; /&gt; 
  &lt;/div&gt;
  &lt;div class=&quot;flag__body&quot;&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://open.spotify.com/artist/60ZQkaf0EkOhPZOKlwYv5s?si=iXKVNwiOTUeUDvBHLpjWrQ&quot;&gt;Echo Wolf&lt;/a&gt;&lt;/strong&gt; I&apos;ve been obsessively listening to this synthwave/retrowave project by designer Trent Walton while working this year. &lt;span class=&quot;tag&quot;&gt;Music&lt;/span&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h3 id=&quot;apps&quot;&gt;Apps&lt;/h3&gt;

&lt;p&gt;2024 marked my deep dive into AI tools. What started as curiosity evolved into essential workflows, leading to a significant monthly AI budget. But the investment paid off through increased productivity and creative possibilities. Here are the tools that earned their keep:&lt;/p&gt;

&lt;div class=&quot;flag flag--responsive&quot;&gt;
  &lt;div class=&quot;flag__image&quot;&gt;
    &lt;img loading=&quot;lazy&quot; width=&quot;96&quot; src=&quot;/img/2025/claude.png&quot; alt=&quot;Claude&quot; style=&quot;max-width: minmax(80px, 30%); aspect-ratio: 1 / 1;&quot; /&gt; 
  &lt;/div&gt;
  &lt;div class=&quot;flag__body&quot;&gt;
    &lt;p&gt;&lt;a href=&quot;https://claude.ai&quot;&gt;&lt;strong&gt;Claude&lt;/strong&gt;&lt;/a&gt; became my daily workhorse in 2024. If someone had told me in 2023 that I&apos;d mostly use something other than ChatGPT, I would have laughed. However, Claude&apos;s code understanding, artifacts, and custom projects where you can add reusable files for context made it indispensable.&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;flag flag--responsive&quot;&gt;
  &lt;div class=&quot;flag__image&quot;&gt;
    &lt;img loading=&quot;lazy&quot; width=&quot;96&quot; src=&quot;/img/2025/chatgpt.png&quot; alt=&quot;ChatGPT&quot; style=&quot;max-width: minmax(80px, 30%); aspect-ratio: 1 / 1;&quot; /&gt; 
  &lt;/div&gt;
  &lt;div class=&quot;flag__body&quot;&gt;
    &lt;p&gt;&lt;a href=&quot;https://chatgpt.com&quot;&gt;&lt;strong&gt;ChatGPT&apos;s voice mode&lt;/strong&gt;&lt;/a&gt; revolutionized my mobile workflow. While Claude handles the heavy lifting, voice mode turned previously &quot;dead&quot; moments—biking to work or walking between meetings—into productive brainstorming sessions. The automatic conversation summaries ensure no good idea gets lost in transit.&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;flag flag--responsive&quot;&gt;
  &lt;div class=&quot;flag__image&quot;&gt;
    &lt;img loading=&quot;lazy&quot; width=&quot;96&quot; src=&quot;/img/2025/cursor.png&quot; alt=&quot;Cursor&quot; style=&quot;max-width: minmax(80px, 30%); aspect-ratio: 1 / 1;&quot; /&gt; 
  &lt;/div&gt;
  &lt;div class=&quot;flag__body&quot;&gt;
    &lt;p&gt;&lt;a href=&quot;https://cursor.com&quot;&gt;&lt;strong&gt;Cursor&lt;/strong&gt;&lt;/a&gt; elevated my coding efficiency to new levels. Its context-aware autocomplete feels almost telepathic, while its ability to reference documentation and multiple files simultaneously has dramatically accelerated feature development. I&apos;m still discovering new ways to prompt it better to be more effective!&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;flag flag--responsive&quot;&gt;
  &lt;div class=&quot;flag__image&quot;&gt;
    &lt;img class=&quot;post__img-round&quot; loading=&quot;lazy&quot; width=&quot;96&quot; src=&quot;/img/2025/midjourney.png&quot; alt=&quot;Midjourney&quot; style=&quot;max-width: minmax(80px, 30%); aspect-ratio: 1 / 1;&quot; /&gt; 
  &lt;/div&gt;
  &lt;div class=&quot;flag__body&quot;&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.midjourney.com&quot;&gt;&lt;strong&gt;Midjourney&apos;s&lt;/strong&gt;&lt;/a&gt; ability to transform text prompts into precise visuals is powerful. For designers, writing a few words and getting an image resembling what you&apos;re after is highly addictive. In 2024, I&apos;ve spent countless hours in this tool learning to prompt, training it for my taste, and generating illustrations and graphics for projects.&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;flag flag--responsive&quot;&gt;
  &lt;div class=&quot;flag__image&quot;&gt;
    &lt;img loading=&quot;lazy&quot; width=&quot;96&quot; src=&quot;/img/2025/chalk.png&quot; alt=&quot;Chalk&quot; style=&quot;max-width: minmax(80px, 30%); aspect-ratio: 1 / 1;&quot; /&gt; 
  &lt;/div&gt;
  &lt;div class=&quot;flag__body&quot;&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.chalkperformancetraining.com/?via=hauken&quot;&gt;&lt;strong&gt;Chalk Performance Training&lt;/strong&gt;&lt;/a&gt;, created by Ryan Fischer, launched its first app this year. As a long-time user of his training programs, I&apos;m excited to see them in app form. It offers two main options: three ongoing daily workout programs or structured 6-12 week training plans. I rotate between programs twice yearly to maintain variety in my fitness routine.&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h2 id=&quot;plans-and-goals-for-2025&quot;&gt;Plans and goals for 2025&lt;/h2&gt;

&lt;p&gt;As I look ahead to 2025, I’m excited about the opportunities ahead. While 2024 was a year of changes and achievements, I believe 2025 will be a year of building and growth. I’m focusing my energy on a few key goals:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Create the world’s best mortgage process for Heder Bank&lt;/strong&gt;. Apply everything I’ve learned from 14 years in fintech to create something extraordinary at Heder Bank.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Launch another side project.&lt;/strong&gt; I’ll continue developing Pie Menu, but I have something special in development with my daughters: watching them use our early prototype daily has been incredibly motivating.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Write to learn in public&lt;/strong&gt;. This year taught me that writing clarifies thinking. In 2025, I’ll share more about building a bank from scratch, developing products, and finding that tricky work-life harmony.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Create more family adventures&lt;/strong&gt;. As our youngest grows, we’ll explore Norway’s outdoors together, from hiking trails to bike trips. In autumn, my parental leave will give us quality time to bond, just as I did with her sisters.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’m excited to see what 2025 brings. 🚀&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>The ultimate guide to building a home gym</title>
   <link href="https://hauken.no/home-gym/"/>
   <updated>2024-12-28T00:00:00+00:00</updated>
   <id>https://hauken.no/home-gym/</id>
   <content type="html">&lt;p&gt;What started as a few kettlebells in a spare bedroom evolved into me literally digging out a custom gym space from the side of my house with my bare hands. Over eight years, I’ve transformed from a commercial gym devotee to someone who built their dream training space from the ground up—quite literally. Whether you’re just starting with a yoga mat or ready to break ground on your dream space, here’s what I’ve learned along the way.&lt;/p&gt;

&lt;figure class=&quot;post__full&quot;&gt;
  &lt;img src=&quot;/img/2024/gym-wide.avif&quot; alt=&quot;home gym&quot; /&gt; 
  &lt;figcaption&gt;My current Home gym setup&lt;/figcaption&gt;  
&lt;/figure&gt;

&lt;h3 id=&quot;start-small-start-smart&quot;&gt;&lt;strong&gt;Start Small, Start Smart&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;My home gym journey began in a spare bedroom, where I trained for 5 years before upgrading to a proper space. It wasn’t fancy, but it was effective. With just a barbell, some weight plates, a small squat rack, and a rowing machine on rubber flooring (to protect the floors and reduce noise), I had everything I needed. The space was tight - I had to perfect the art of the “plate shuffle,” moving weights around just to have enough room to deadlift. But those constraints taught me my most valuable lesson: consistency beats aesthetics every time. That cramped bedroom saw more genuine progress than many perfectly curated garage gyms on Instagram.&lt;/p&gt;

&lt;figure&gt;
&lt;div class=&quot;post__gallery&quot;&gt; 
&lt;img loading=&quot;lazy&quot; alt=&quot;My original home gym&quot; style=&quot;width: calc(66% - 4px); aspect-ratio: 1000 / 750;&quot; src=&quot;/img/2024/gym-before.webp&quot; /&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;Upgrading home gym step by step&quot; style=&quot;width: calc(33% - 4px); aspect-ratio: 750 / 1334;&quot; src=&quot;/img/2024/gym-upgrade.webp&quot; /&gt;
&lt;/div&gt;
&lt;figcaption&gt;My orginal home gym in a spare bedroom and a gym haul from a Crossfit gym that upgraded their equipment&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;upgrading-through-opportunity&quot;&gt;&lt;strong&gt;Upgrading Through Opportunity&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;While we were renovating our home and investing in essentials like walls, flooring, and lights, I gradually improved my gym by finding deals on quality used equipment. But when a nearby CrossFit gym upgraded their equipment, I bought kettlebells, a plyo box, and wall balls at discounted prices. This phased approach helped me identify my true equipment needs while slowly building on my existing basics.&lt;/p&gt;

&lt;h3 id=&quot;the-dedicated-upgrade-building-my-home-gym&quot;&gt;&lt;strong&gt;The Dedicated Upgrade: Building My Home Gym&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;After five years of maximizing every square inch of that spare bedroom, I made a decision that my wife initially thought was crazy: I was going to dig out a dedicated gym space from the hillside next to our house. By hand. With a pickaxe, shovel and wheelbarrow. For over half a year, my “workouts” consisted of moving dirt and rocks. I gained some of the worst blisters of my life and discovered muscles I didn’t know existed, but watching that space take shape was more satisfying than any PR I’d ever hit.&lt;/p&gt;

&lt;figure&gt;
&lt;div class=&quot;post__gallery&quot;&gt; 
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(41.21% - 5.3px); aspect-ratio: 750 / 1000;&quot; src=&quot;/img/2024/gym-start-1.webp&quot; /&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(30.88% - 5.3px); aspect-ratio: 750 / 1334;&quot; src=&quot;/img/2024/gym-start-2.webp&quot; /&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(27.91% - 5.3px); aspect-ratio: 750 / 1476;&quot; src=&quot;/img/2024/gym-start-3.webp&quot; /&gt;
&lt;/div&gt;
&lt;figcaption&gt;The space I dug out by hand at the side of our house&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Once the space was ready, I approached equipment selection like a chef stocking their dream kitchen. The centerpiece being a squat rack that could handle anything I threw at it, complete with built-in pull-up and dip bars. I added carefully chosen barbells and dumbbells, each with its purpose, from an Olympic bar to hex-bar for deadlifts to a lighter weightlifting bar for my wife.&lt;/p&gt;

&lt;p&gt;But the heart of the gym isn’t the expensive equipment—it’s the little touches that make it uniquely mine. The suspension system that doubles as monkey bars for my kids (and a worn-out tissue gifted from &lt;a href=&quot;https://www.instagram.com/aerialerika/&quot;&gt;Erika&lt;/a&gt;). The whiteboard that’s equal parts workout tracker and my children’s art gallery. The Sonos speaker that’s probably played more Disney soundtracks during family workout sessions than pump-up playlists. Even my Concept2 rower has become more than just cardio equipment—my kids love playing the built-in fishing game on the monitor while I get my workout in, turning a serious piece of fitness equipment into something the whole family enjoys.&lt;/p&gt;

&lt;p&gt;The crown jewel of the space? A sliding wall that opens to the outdoors—an idea born from those cramped bedroom gym days when I dreamed of fresh air. Now, on sunny mornings, I roll it open and let the outside in, creating a training space that feels more like a zen garden than a traditional gym.&lt;/p&gt;

&lt;h3 id=&quot;the-perks-of-a-home-gym&quot;&gt;&lt;strong&gt;The Perks of a Home Gym&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;The benefits of a home gym have far exceeded my expectations. Let’s talk numbers first: A gym membership in Norway runs about $80 per month per person. Over eight years, my wife and I would have spent roughly $15,000 on commercial gym memberships. I’ve invested about that same amount in my home gym equipment—primarily high-end Eleiko gear that will last a lifetime. So while the upfront costs were significant, the long-term math works out in favor of the home gym, especially considering the equipment’s resale value and durability.&lt;/p&gt;

&lt;p&gt;But the real returns go far beyond the financial calculation. Beyond the obvious perks — no commute, no waiting for equipment — the magic is in the freedom to train exactly how I want. I can superset deadlifts with pull-ups without getting death stares from other gym-goers, and what used to take me 90 minutes at a commercial gym now takes just 45 minutes at home since I’m not walking between stations or waiting for equipment to free up. I also can grunt, drop weights, or workout shirtless without worrying about gym etiquette or making anyone uncomfortable.&lt;/p&gt;

&lt;p&gt;But perhaps the most unexpected joy has been watching our home gym evolve into a family space. While I’m working through my sets, the kids often hang out there too—turning the suspension straps into makeshift swings, creating slides from the bench, or just being curious about what dad’s up to. It’s become this wonderful blend of serious training and playful family time. Sometimes they even join in with their own tiny “workouts,” which usually involve mimicking my movements with a broom or very light weights. The kids now see fitness as a natural part of daily life, not some chore dad does in a faraway building. It’s teaching them early on that staying active can be both fun and a natural part of daily life.&lt;/p&gt;

&lt;figure&gt;
&lt;div class=&quot;post__gallery&quot;&gt; 
&lt;video muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; autoplay=&quot;&quot; loading=&quot;lazy&quot; style=&quot;width: calc(33.33% - 5.3px); aspect-ratio: 405 / 720;&quot;&gt;
&lt;source data-src=&quot;/img/2024/gym-hangups.mp4&quot; type=&quot;video/mp4&quot; src=&quot;/img/2024/gym-hangups.mp4&quot; /&gt;Your browser does not support the video tag.
&lt;/video&gt;
&lt;img loading=&quot;lazy&quot; alt=&quot;&quot; style=&quot;width: calc(33.33% - 5.3px); aspect-ratio: 700 / 1242;&quot; src=&quot;/img/2024/gym-child.webp&quot; /&gt;
&lt;video muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; autoplay=&quot;&quot; loading=&quot;lazy&quot; style=&quot;width: calc(33.33% - 5.3px); aspect-ratio: 405 / 720;&quot;&gt;
&lt;source data-src=&quot;/img/2024/swing.mp4&quot; type=&quot;video/mp4&quot; src=&quot;/img/2024/swing.mp4&quot; /&gt;Your browser does not support the video tag.
&lt;/video&gt;
&lt;/div&gt;
&lt;figcaption&gt;The gym as family space&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;the-never-ending-project&quot;&gt;&lt;strong&gt;The never-ending project&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Every home gym owner knows the perpetual itch to upgrade—that constant mental wishlist of “what if” additions. But after eight years of building this space, I’ve learned something crucial: the best equipment isn’t always the newest or most expensive—it’s what you’ll actually use consistently. Sure, I still catch myself browsing adjustable dumbbells online at 2 AM, or sketching plans for a custom cable system. I’ve even measured the perfect spot for a treadmill about dozen times. But I’ve learned to sit with these impulses rather than act on them immediately.&lt;/p&gt;

&lt;p&gt;The truth is, my current setup already delivers everything I need for effective training. These “dream additions” are just that: dreams that are fun to entertain but not essential to my progress. It’s a lesson that took years to learn: sometimes the best upgrade isn’t new equipment at all, but finding a creative new way to use what you already have.&lt;/p&gt;

&lt;h3 id=&quot;top-tips-for-anyone-building-a-home-gym&quot;&gt;&lt;strong&gt;Top Tips for Anyone Building a Home Gym&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Here’s what I wish I’d known from the start:&lt;/p&gt;

&lt;h4 id=&quot;1-buy-quality-equipment&quot;&gt;1. Buy Quality Equipment&lt;/h4&gt;

&lt;p&gt;“Buy once, cry once.” Cheap equipment will frustrate you and waste your money in the long run. I’ve never regretted investing in high-quality gear, and some of my equipment will likely outlive me. Most of my equipment is from Eleiko - one of the premier producers of strength training equipment in the world. Their reputation for quality is well-earned, and while the initial investment was significant, the durability and performance have more than justified the cost. My experience training in various CrossFit gyms taught me early on to recognize quality equipment, which helped inform my purchases. In fact, the only equipment I’ve ever sold was that first wobbly squat rack, and ironically, I got more for it used than I paid new.&lt;/p&gt;

&lt;h4 id=&quot;2-have-a-training-program&quot;&gt;2. Have a Training Program&lt;/h4&gt;

&lt;p&gt;Don’t just wing it. Following a program keeps your workouts intentional and progressive. For years, my go-to has been &lt;a href=&quot;https://www.chalkperformancetraining.com/?via=hauken&quot;&gt;Chalk programs&lt;/a&gt; — they’re effective and flexible enough to prevent boredom. Other great options are &lt;a href=&quot;https://www.garagegymathlete.com/&quot;&gt;Garage Gym Athlete&lt;/a&gt; and &lt;a href=&quot;https://functional-bodybuilding.com/&quot;&gt;Functional Bodybuilding&lt;/a&gt;, both of which cater to home gym setups. Switching up programs once in a while keeps things fresh and ensures you don’t plateau or get too bored.&lt;/p&gt;

&lt;h4 id=&quot;3-upgrade-gradually&quot;&gt;3. Upgrade Gradually&lt;/h4&gt;

&lt;p&gt;Remember that spare bedroom setup? I started with just a barbell, plates, and determination. Each addition came from a real need discovered through training, not from a preconceived shopping list. When I finally added a rowing machine six months in, it wasn’t because it was on some “essential equipment” list—it was because I needed some kind of cardio as well. This gradual evolution meant every piece of equipment had purpose and got used regularly.&lt;/p&gt;

&lt;h4 id=&quot;4-build-for-your-style-of-training&quot;&gt;4. Build for Your Style of Training&lt;/h4&gt;

&lt;p&gt;Design your gym to align with your workouts. If you love cardio, prioritize machines like the rower, bike or treadmill. If strength is your focus, invest more in weights and racks.&lt;/p&gt;

&lt;h4 id=&quot;5-use-your-space-wisely&quot;&gt;5. Use Your Space Wisely&lt;/h4&gt;

&lt;p&gt;Storage solutions like wall-mounted racks and hooks aren’t just for organization—they’re space-saving essentials. My golden rule is that every piece of equipment has to earn its floor space. If something can be mounted on a wall, it should be: plate storage, bands, ropes, and even racks. I’ve mounted as much as possible to the wall, leaving the precious floor space for movement and training. Think of floor space as premium real estate—if equipment isn’t actively being used, it shouldn’t be taking up valuable floor space. This mindset has helped me create a surprisingly spacious training area even in what others might consider a tight space (only 15 square meters)&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
  &lt;img src=&quot;/img/2024/gym-bw.webp&quot; alt=&quot;Home gym&quot; /&gt; 
  &lt;figcaption&gt;My current Home gym setup. The image in front of the squat rack is a screen print saying &quot;Don&apos;t give up. Give everything!&quot; by &lt;a href=&quot;https://www.staalegerhardsen.com/butikk/ikke-gi-opp-gi-alt&quot;&gt;Ståle Gerhardsen&lt;/a&gt;&lt;/figcaption&gt;  
&lt;/figure&gt;

&lt;h3 id=&quot;coming-full-circle&quot;&gt;Coming Full Circle&lt;/h3&gt;

&lt;p&gt;Eight years ago, I started with a simple barbell in a spare bedroom. Today, I train in a custom-built space with heated flooring that I literally dug out of a hillside. Your path won’t look exactly like mine. And it shouldn’t! The six months I spent digging with a shovel and wheelbarrow might seem extreme (my wife certainly thought so), but that’s the beauty of building your own gym: it becomes a reflection of your commitment and creativity. Some people convert their garage, others transform a basement, and yes, some of us dig into hillsides. But through all of this, I’ve learned something fundamental: the best home gym isn’t the one with the most equipment or the fanciest setup. It’s the one that gets used!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>The coolest person I’ve ever known</title>
   <link href="https://hauken.no/mormor/"/>
   <updated>2024-11-20T00:00:00+00:00</updated>
   <id>https://hauken.no/mormor/</id>
   <content type="html">&lt;p&gt;This weekend I said goodbye to one of the most remarkable women I’ve ever known.
My grandmother wasn’t just another elderly person watching the world change from the sidelines – she was actively sprinting alongside it, even at 92.&lt;/p&gt;

&lt;p&gt;While her friends were wary of smartphones, she was busy mastering Snapchat.
She didn’t hesitate to try things out.
Years before I even thought about it, she was ordering groceries online. Sometimes though, it led to funny moments:
Like when she ordered what she thought was a bag of potatoes but received a single potato instead.
Did she get frustrated?
No.
She laughed at the absurdity and kept exploring.&lt;/p&gt;

&lt;p&gt;Even when her mobility became limited, she refused to be defined by it.
She redecorated her entire apartment, scooting from room to room on a wheeled kitchen chair, determined to keep things fresh.
Just days before she passed, she was shopping for new white shoes.
The concept of “being too old” for anything simply didn’t exist in her world.&lt;/p&gt;

&lt;p&gt;But what strikes me most wasn’t just her fearlessness with technology or her refusal to act her age. It was her approach to failure.
Every mishap was met with laughter, every setback with a “why not try again?” attitude.&lt;/p&gt;

&lt;p&gt;Perhaps the greatest gift she left us wasn’t her recipe for flatbread (though those were legendary), but rather her blueprint for navigating change:
Stay curious.
Don’t take yourself too seriously.&lt;/p&gt;

&lt;p&gt;She wasn’t just my grandmother.
She was the coolest person I’ve ever known!
And in my heart, that’s who she’ll always be.​​​​​​​​​​​​​​​&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Building an AI board of advisors</title>
   <link href="https://hauken.no/ai-board/"/>
   <updated>2024-11-10T00:00:00+00:00</updated>
   <id>https://hauken.no/ai-board/</id>
   <content type="html">&lt;p&gt;What if you could have detailed conversations with Tim Ferriss, Derek Sivers, and other mentors whenever you wanted? 
Using AI, I’ve built a system that turns the classic ‘What would [person] do?’ thought experiment into dynamic, actionable conversations. 
Here’s how it works:&lt;/p&gt;

&lt;p&gt;A couple of months ago I was stuck on a technical problem with one of my &lt;a href=&quot;/made&quot;&gt;side projects&lt;/a&gt;. 
I’d been tinkering with it for weeks, trying to figure out the perfect solution. 
When I brought this to my AI board, “Tim Ferriss” immediately challenged my approach: 
“What’s the minimum viable solution here? Could you outsource this and ship faster?”.
“Derek Sivers” chimed in with his characteristic simplicity: 
“If you’re not enjoying this part, delegate it. 
Focus on what brings you energy.”&lt;/p&gt;

&lt;p&gt;Their perspectives helped me see I was caught in a perfectionist loop. Within a week, I had hired a freelancer who solved the problem in a few hours — something that would have taken me weeks to figure out on my own.&lt;/p&gt;

&lt;h3 id=&quot;how-ive-set-it-up&quot;&gt;How I’ve set it up&lt;/h3&gt;

&lt;p&gt;At the end of each month, I gather three things:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;What I’ve done&lt;/strong&gt;—everything from features I’ve shipped, blog posts I’ve written, to ideas I kicked to the curb.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Numbers&lt;/strong&gt;—how my projects are performing (visitors, conversions, revenue… the essentials).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Braindumps&lt;/strong&gt;—my uncensored thoughts about the month, the highs, the lows, whatever’s swimming in my head.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I feed these notes into an AI along with context about my projects and previous months’ records. 
With specific instructions, the AI takes on the role of each board member, offering advice that’s surprisingly consistent with their known philosophies.&lt;/p&gt;

&lt;figure&gt;  
&lt;img src=&quot;/img/2024/monthly-note.png&quot; alt=&quot;Monthly note&quot; /&gt;
&lt;figcaption&gt;An example of my montly reflection document&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;creating-your-ai-advisors&quot;&gt;Creating your AI advisors&lt;/h3&gt;

&lt;p&gt;Creating these AI advisors is surprisingly straightforward. 
I use a simple prompt template:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Write instructions for an AI that will act and give advice like [Person’s name]. 
I should be able to copy and paste the instructions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This gives me a character that I can reuse in future conversations. 
For example, a Tim Ferriss advisor would focus on testing assumptions, eliminating bottlenecks, and finding leverage points. 
A Derek Sivers advisor emphasizes simplicity, following joy, and making binary decisions.&lt;/p&gt;

&lt;p&gt;These distinct perspectives create a well-rounded advisory board that challenges my thinking from multiple angles.&lt;/p&gt;

&lt;h3 id=&quot;getting-started&quot;&gt;Getting Started&lt;/h3&gt;

&lt;p&gt;The beauty of this system is that you can start small. 
Pick just one advisor whose thinking resonates with you, create their AI character, and have a conversation about a current challenge you’re facing. 
You might be surprised by the clarity that emerges when you step outside your own perspective.&lt;/p&gt;

&lt;p&gt;As you get comfortable with the process, add more advisors to your board. 
Each new perspective brings another angle to your decision-making toolkit. 
While these AI advisors won’t replace real mentors, they’re available 24/7 to help you think through your challenges in new and productive ways.&lt;/p&gt;

&lt;p&gt;In my board I have Tim Ferriss, Derek Sivers, Jesse Itzler, Shaan Puri and a few random guests. 
Who would you put on your board, and what’s the first challenge you’d bring to them?&lt;/p&gt;

&lt;figure&gt;  
&lt;img src=&quot;/img/2024/board-notes.png&quot; alt=&quot;Board notes&quot; /&gt;
&lt;figcaption&gt;I like to add the board notes in Obsidian Canvas afterwards to structure the process visually as well. Here you see a zoomed out version of my  initial note, the feedback from each board member and my conclusion at the bottom.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;useful-links-for-achieving-this&quot;&gt;Useful links for achieving this&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://store.typingmind.com/?aff=rAkjk&quot;&gt;Typing mind&lt;/a&gt;&lt;/strong&gt; (affiliate link) - I use this to easily switch between AI-models and different characters.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.anthropic.com/news/projects&quot;&gt;Claude projects&lt;/a&gt;&lt;/strong&gt; - I also use this for adding a larger context and talking with different characters.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://caretplugin.ai/&quot;&gt;Caret for Obsidian&lt;/a&gt;&lt;/strong&gt; - I’ve also played with this plugin extensively to add prompt chains and different characters.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://gist.github.com/mhauken/6a0e35ee16d2e1463adb3fabd9e535c5&quot;&gt;Example characters&lt;/a&gt;&lt;/strong&gt; - Example of some of the charaters I’ve used&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>The perfect routine</title>
   <link href="https://hauken.no/perfect-routine/"/>
   <updated>2024-11-05T00:00:00+00:00</updated>
   <id>https://hauken.no/perfect-routine/</id>
   <content type="html">&lt;p&gt;Here’s something they don’t tell you in all those productivity books: 
Your perfect routine is temporary. 
Always!&lt;/p&gt;

&lt;p&gt;For months, I had this beautiful system going - weekend mornings were my designated time slots for &lt;a href=&quot;/made&quot;&gt;side projects&lt;/a&gt;.
I was getting incredible amounts of work done in those quiet morning hours. 
Then our youngest decided that those precise hours were perfect for quality time. 
Just like that, my perfect routine evaporated.&lt;/p&gt;

&lt;p&gt;Same for my workout routine: 
For years, I’ve relied on that 8 to 9 PM window to get my exercise in.
Kids asleep, house quiet — ideal workout time. 
But last month that has changed. 
Bedtime has stretched into this endless negotiation, and suddenly my reliable workout hour has vanished.&lt;/p&gt;

&lt;p&gt;I’m beginning to realize that the real skill here isn’t in building perfect routines. 
It’s in adapting when they inevitably break. 
It’s about becoming an improv artist with your time.
It’s about saying: “well, that doesn’t work anymore… what might?”&lt;/p&gt;

&lt;p&gt;Life doesn’t care about your routines. 
Kids definitely don’t care about your routines. 
The sooner you embrace this reality, the better.&lt;/p&gt;

&lt;p&gt;The only constant routine is change itself. 
Might as well get comfortable with it.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Pockets of time</title>
   <link href="https://hauken.no/pockets/"/>
   <updated>2024-11-02T00:00:00+00:00</updated>
   <id>https://hauken.no/pockets/</id>
   <content type="html">&lt;p&gt;There aren’t enough hours in the day!
Between full-time work, family responsibilities, and even some downtime, it’s hard to imagine where you can fit in anything extra.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But here’s a secret:&lt;/strong&gt;
You don’t need huge blocks of free time to make progress.
Your biggest growth can happen in the smallest moments.
Those little “pockets of time” throughout your day that are often wasted.&lt;/p&gt;

&lt;h2 id=&quot;pockets-of-time&quot;&gt;Pockets of time&lt;/h2&gt;

&lt;p&gt;I first learned the utility of these small moments from Matthew Dicks in his book, &lt;em&gt;Someday is Today.&lt;/em&gt;
The premise is simple:
Those “dead spaces” in your day — the ones when you’re waiting for a meeting to start, commuting, or waiting for your daughters dancing lesson to be done — are golden opportunities for being productive.&lt;/p&gt;

&lt;p&gt;I’m not talking about setting up a laptop to work in tese short moments.
I’m talking about &lt;strong&gt;thinking&lt;/strong&gt; and planning.
To use these pockets to brainstorm ideas, organize your thoughts, sketch app ideas mentally, or logic out how to tackle a tricky problem later.&lt;/p&gt;

&lt;p&gt;With AI tools like voice transcription and note-taking apps, you now can capture ideas on the go with almost zero friction.
Voice-to-text has been my friend more than once when a great thought strikes.
As an example this very blog post has been written while:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;…biking to work&lt;/li&gt;
  &lt;li&gt;…waiting at an indoor play center as my kids run around&lt;/li&gt;
  &lt;li&gt;…standing outside a store while my youngest naps in her stroller&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In these little moments, I could be mindlessly scrolling through social media, but instead, I’m actively creating.
(Don’t get me wrong — I do my fair share of accidental browsing, especially when putting the kids to bed)
But when I’m intentional about these pockets of time, real progress happens.&lt;/p&gt;

&lt;h2 id=&quot;carving-out-structured-time&quot;&gt;Carving out structured time&lt;/h2&gt;

&lt;p&gt;While using these pockets of time are a great productivity hack, I also make a point to carve out larger blocks that work for me.
Saturday and Sunday mornings, from around 6 to 9, are my &lt;a href=&quot;/side-projects&quot;&gt;golden hours for side projects&lt;/a&gt;.
That’s when the kids are watching their favorite TV shows, and I can dive into my projects with little distraction.
By sticking to this routine, I consistently get ~six focused hours each weekend.
This is often just enough to push a side project forward without overload.&lt;/p&gt;

&lt;p&gt;The key, however, is preparation.
By using those pockets of time throughout the week to think and plan, I know &lt;em&gt;exactly&lt;/em&gt; what I need to do when those early morning sessions arrive.
There is no time wasted in those two/three-hour windows — it’s pure creative execution, powered by thoughtful preparation during the week’s scattered moments.&lt;/p&gt;

&lt;h2 id=&quot;progress-not-perfection&quot;&gt;Progress, not perfection&lt;/h2&gt;

&lt;p&gt;Life will always be busy, and there will never be a perfect time to pursue your goals.
But by leveraging these pockets of time you can make consistent progress without overwhelming your schedule.
Let those small pockets of time work for you!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>The power of side projects</title>
   <link href="https://hauken.no/side-projects/"/>
   <updated>2024-10-29T00:00:00+00:00</updated>
   <id>https://hauken.no/side-projects/</id>
   <content type="html">&lt;p&gt;In a world where everyone demands your time, it seems strange to actively take on more projects. But for some of us, side projects aren’t just extra work - they’re invigorating.&lt;/p&gt;

&lt;h2 id=&quot;a-professional-playground&quot;&gt;A professional playground&lt;/h2&gt;
&lt;p&gt;I’m currently working on four side projects, which may sound like a burden. But they give me something no client work ever could. One of them, &lt;a href=&quot;/pie-menu&quot;&gt;Pie Menu&lt;/a&gt;, even &lt;a href=&quot;/255-million&quot;&gt;grew from research into a viral Twitter account&lt;/a&gt; with 255 million impressions. Call it a creative playground, a sandbox for self-expression, or just pure joy. These projects let me work on skills, launch new ideas, and explore passions that don’t always fit neatly into my day job. And having multiple of them ensure that I’m never stuck - I can always just jump onto another one.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“There is something special about working on a project of your own. I wouldn’t say exactly that you’re happier. A better word would be excited, or engaged. &lt;a href=&quot;https://paulgraham.com/own.html&quot;&gt;- Paul Graham&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Side projects are also a no-pressure zone for experimentation. I can test new technologies or push my design boundaries in ways real-world client work doesn’t always allow. It’s a space where failing is safe. Whether I’m coding, designing, or learning how SEO really works, I don’t worry about immediate success. I’m free to experiment and explore, so when I do head back to client work, I’m a stronger contributor.&lt;/p&gt;

&lt;h2 id=&quot;a-creative-outlet&quot;&gt;A creative outlet&lt;/h2&gt;
&lt;p&gt;It’s easy to assume that creative people &lt;strong&gt;start&lt;/strong&gt; creative. But creativity doesn’t work like that. Creativity isn’t spontaneous; it comes from action. The more you work on your craft, the more ideas flow.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“You are not creative and then create something, you become creative by working on something.”&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.linkedin.com/posts/tante_festival-crowd-boos-at-video-of-conference-activity-7175401061241778176-F012/?utm_source=share&amp;amp;utm_medium=member_desktop&quot;&gt;Jürgen Geuter&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;For me, there’s never been a time when I’ve had so many ideas bubbling up, waiting to be turned into reality. My mind is constantly spinning with new concepts, features, and entire projects I want to bring to life. I currently have 289 documents tagged #idea, which is a small or large idea I would like create.&lt;/p&gt;

&lt;h2 id=&quot;an-energy-source&quot;&gt;An energy source&lt;/h2&gt;
&lt;blockquote&gt;
  &lt;p&gt;“Creating something amazing is a form of self-care.”&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://x.com/ormanclark/status/1832844316827374044&quot;&gt;Orman Clark&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;What might surprise people who are not into side projects is how much energy they actually bring. Instead of draining me, they pump me full of energy and excitement. There’s something fulfilling about seeing an idea that was once just in your head materialize into something real and tangible.&lt;/p&gt;

&lt;p&gt;Yes, it may look like work from the outside, but to me, engaging in these personal projects actually &lt;em&gt;fuels&lt;/em&gt; me. Like I’m filling up my creativity tank.&lt;/p&gt;

&lt;p&gt;So, next time you feel overwhelmed or uninspired by routine, maybe it’s time to pick up a side project? They’re not “extra work” - they are the fuel that keeps our creative engines running.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Sawdust</title>
   <link href="https://hauken.no/sawdust/"/>
   <updated>2024-09-19T00:00:00+00:00</updated>
   <id>https://hauken.no/sawdust/</id>
   <content type="html">&lt;p&gt;We love to talk about “thinking outside the box.”&lt;br /&gt;
But what about thinking inside the bin?&lt;/p&gt;

&lt;p&gt;When Ford started cranking out the Model T, they were left with mountains of wood scraps. 
Rather than tossing them, someone had the bright idea to turn those leftover bits into Kingsford Charcoal — now a brand that owns 80% of the BBQ charcoal market.&lt;/p&gt;

&lt;p&gt;The idea taking byproducts and turning them into businesses — is essentially the framework for what we now call the circular economy.
There are loads of examples of companies that are turning waste into wealth:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Brewers Spent Grain&lt;/strong&gt;: Craft breweries are turning their used grains into everything from dog treats to pizza dough.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Coffee Grounds&lt;/strong&gt;: Companies like &lt;a href=&quot;https://grocycle.com/&quot;&gt;GroCycle&lt;/a&gt; are using spent coffee grounds to grow gourmet mushrooms. I even have a &lt;a href=&quot;https://www.storiedhats.com/pages/ourmaterials&quot;&gt;caps created by Coffee grounds&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Textile Scraps&lt;/strong&gt;: Fashion brands are recycling fabric remnants into new clothing lines, addressing waste in one of the world’s most polluting industries.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;digital-sawdust&quot;&gt;Digital sawdust?&lt;/h3&gt;
&lt;p&gt;But the concept doesn’t just apply to physical waste. 
Digital sawdust can be just as valuable.&lt;/p&gt;

&lt;p&gt;Take when I was working on &lt;a href=&quot;https://www.pie-menu.com&quot;&gt;Pie Menu&lt;/a&gt;, for example. 
I realized that some of the code I’d written for detecting mouse movement and identifying apps could be reused in another context. 
That code ended up forming the foundation for &lt;a href=&quot;https://www.hot-corners.com&quot;&gt;Hot Corners&lt;/a&gt; — an app that launches other apps when you move your cursor to the corners of the screen.
What looked like scrap turned out to be the basis for something new.&lt;/p&gt;

&lt;h3 id=&quot;whats-in-your-bin&quot;&gt;What’s in your bin?&lt;/h3&gt;
&lt;p&gt;That app feature you cut? 
That might be a standalone product.&lt;/p&gt;

&lt;p&gt;Those blog post drafts you never published? 
Maybe they’re the seeds of your next book.&lt;/p&gt;

&lt;p&gt;The code you didn’t end up using? 
That could become the backbone of something entirely new.&lt;/p&gt;

&lt;p&gt;Innovation doesn’t always mean starting from zero. 
Your next big breakthrough might be hidden in plain sight, pretending to be waste.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>From mundane to Magical</title>
   <link href="https://hauken.no/mundane-to-magical/"/>
   <updated>2024-09-09T00:00:00+00:00</updated>
   <id>https://hauken.no/mundane-to-magical/</id>
   <content type="html">&lt;p&gt;Today, I brought my oldest child to work. What I expected to be a routine day turned into an adventure, all thanks to her perspective.&lt;/p&gt;

&lt;p&gt;The clothes-drying room? A marvel of technology. &lt;br /&gt;
Running between buildings in the rain? An exhilarating sprint together.&lt;br /&gt;
Sparkling water on tap? Pure magic.&lt;br /&gt;
Beeping ourselves into the office? A fun adventure!&lt;/p&gt;

&lt;p&gt;Everything we encountered was a source of joy and wonder for her. 
And in turn, her enthusiasm shifted my own perspective.&lt;/p&gt;

&lt;p&gt;It’s easy to become numb to our surroundings, to see the everyday as mundane. 
But children have this incredible ability to see the extraordinary in what we consider routine.&lt;/p&gt;

&lt;p&gt;Our environments are filled with potential for joy and discovery. 
We just need to look at them with fresh eyes.&lt;/p&gt;

&lt;p&gt;Today, my daughter didn’t just visit my workplace; &lt;br /&gt;
she helped me rediscover it.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>A Designer's quest to create a Pie Menu navigation for macOS</title>
   <link href="https://hauken.no/pie-menu/"/>
   <updated>2024-08-11T00:00:00+00:00</updated>
   <id>https://hauken.no/pie-menu/</id>
   <content type="html">&lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css&quot; /&gt;

&lt;p&gt;&lt;!-- Demo styles --&gt;&lt;/p&gt;
&lt;style&gt;
    .swiper {
      width: 100%;
      height: auto;
      aspect-ratio: 16 / 9;
    }

    @media only screen and (min-width: 550px) and (max-width: 720px) {
      .swiper {
        width: 500px;
      }
    }

    @media only screen and (max-width: 550px) {
      .swiper {
        width: 300px;
      }
      .swiper-pagination {
        display: none;
      }
    }

    .swiper-slide {
      text-align: center;
      font-size: 18px;
      background: #000;
    }

    .swiper-slide img {
      width: auto;
      height: auto;
      max-width: 100%;
      max-height: 100%;
      -ms-transform: translate(-50%, -50%);
      -webkit-transform: translate(-50%, -50%);
      -moz-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      position: absolute;
      left: 50%;
      top: 50%;
    }
  &lt;/style&gt;

&lt;p&gt;I hadn’t heard from my developer in over three weeks. My budget was dwindling. And all I had to show for a year’s work was a TestFlight app that only my friends and I could use. Was this the end of my attempt to rethink app-navigation for macOS apps?&lt;/p&gt;

&lt;p&gt;This is the story of Pie Menu — how a designer with no app development experience ventured into creating a radial menu app for macOS. It’s a tale of Ukrainian bomb shelters, user feedback and the importance of resilience. But most importantly, it’s a crash course in turning a side project into a viable product.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;&lt;video muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; autoplay=&quot;&quot; class=&quot;&quot; poster=&quot;/img/2024/pie-menu-video-splash.webp&quot;&gt;&lt;source data-src=&quot;https://video.pie-menu.com/pie-menu-video.mp4&quot; type=&quot;video/mp4&quot; src=&quot;https://video.pie-menu.com/pie-menu-video.mp4&quot; /&gt;Your browser does not support the video tag.&lt;/video&gt;&lt;/figure&gt;

&lt;details class=&quot;post__table-of-contents&quot;&gt;
  &lt;summary&gt;Table of Contents&lt;/summary&gt;
  &lt;div&gt; 
    &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;#the-idea&quot;&gt;The idea&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;#the-brief&quot;&gt;The brief&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;#developing-the-app&quot;&gt;Developing the app&lt;/a&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;a href=&quot;#app-onboarding&quot;&gt;App Onboarding&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;#choosing-launch-platforms&quot;&gt;Choosing Launch Platforms&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;#learnings-from-creating-pie-menu&quot;&gt;Learnings from creating Pie Menu&lt;/a&gt;
                &lt;ul&gt;
                    &lt;li&gt;&lt;a href=&quot;#learning-1-people-hate-subscription&quot;&gt;Learning 1: People hate subscription&lt;/a&gt;&lt;/li&gt;
                    &lt;li&gt;&lt;a href=&quot;#learning-2-dont-assume-a-perfect-setup&quot;&gt;Learning 2: Don’t assume a perfect setup&lt;/a&gt;&lt;/li&gt;
                    &lt;li&gt;&lt;a href=&quot;#learning-3-people-love-localization&quot;&gt;Learning 3: People love localization&lt;/a&gt;&lt;/li&gt;
                    &lt;li&gt;&lt;a href=&quot;#learning-4-people-become-angry-if-it-doesnt-work-as-they-expect&quot;&gt;Learning 4: People become angry if it doesn’t work as they expect&lt;/a&gt;&lt;/li&gt;
                    &lt;li&gt;&lt;a href=&quot;#learning-5-user-feedback-is-invaluable&quot;&gt;Learning 5: User feedback is invaluable&lt;/a&gt;&lt;/li&gt;
                    &lt;li&gt;&lt;a href=&quot;#learning-6-create-an-in-app-news-system&quot;&gt;Learning 6: Create an in-app news system&lt;/a&gt;&lt;/li&gt;
                &lt;/ul&gt;
            &lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;#pie-menu-website&quot;&gt;Pie Menu Website&lt;/a&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;a href=&quot;#website-design&quot;&gt;Website Design&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;#remix-vs-nextjs&quot;&gt;Remix vs Next.js&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;#ai-to-enhance-the-website&quot;&gt;AI to enhance the website&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;#marketing-video&quot;&gt;Marketing video&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;#minimum-viable-pie&quot;&gt;Minimum Viable Pie&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;#looking-ahead&quot;&gt;Looking ahead&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/details&gt;

&lt;h2 id=&quot;the-idea&quot;&gt;The idea&lt;/h2&gt;
&lt;p&gt;It all began when I opened FigJam and clicked on the stamp icon. I immediately thought, “Why isn’t there a radial menu available in macOS?” Radial menus are powerful tools for expert users, and the success of apps like &lt;a href=&quot;https://www.raycast.com/&quot;&gt;Raycast&lt;/a&gt;, &lt;a href=&quot;https://www.alfredapp.com/&quot;&gt;Alfred&lt;/a&gt; proves there’s a market for niche productivity tools.&lt;/p&gt;

&lt;figure class=&quot;post__right&quot;&gt;&lt;img class=&quot;post__img-round&quot; alt=&quot;radial menu in figjam&quot; src=&quot;/img/2024/FigJamMenu.png&quot; /&gt;&lt;figcaption&gt;Radial menu in Figjam&lt;/figcaption&gt;&lt;/figure&gt;

&lt;p&gt;My initial research into developing such an app quickly dampened my enthusiasm. Creating macOS apps was well outside my comfort zone as a designer and front-end developer. But fate had other plans: my holding company received some unexpected dividends. Was this a sign to take the plunge? What did I have to lose?&lt;/p&gt;

&lt;div class=&quot;clearfix&quot;&gt;&lt;/div&gt;

&lt;h2 id=&quot;the-brief&quot;&gt;The brief&lt;/h2&gt;
&lt;p&gt;This side project offered me something I craved: complete creative control. Such freedom is rare in my day job as a design consultant, as I mostly need to adhere to other companies style guides. Realizing this was an opportunity I couldn’t pass up, I dove into Figma to sketch out my vision. You can explore my initial brief here:&lt;/p&gt;

&lt;div style=&quot;--swiper-navigation-color: #333; --swiper-pagination-color: #333&quot; class=&quot;swiper mySwiper&quot;&gt;
  &lt;div class=&quot;swiper-wrapper&quot;&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/01.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/02.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/03.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/04.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/05.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/06.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/07.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/08.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/09.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/10.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/11.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/12.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/13.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/14.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/15.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/16.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/17.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/18.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/19.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/20.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/21.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/22.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/23.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/24.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/25.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
      
      
      &lt;div class=&quot;swiper-slide&quot;&gt;
        &lt;img src=&quot;/img/2024/pie-menu-brief/26.webp&quot; loading=&quot;lazy&quot; /&gt;
        &lt;div class=&quot;swiper-lazy-preloader swiper-lazy-preloader-white&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;
    
  &lt;/div&gt;
  &lt;div class=&quot;swiper-button-next&quot;&gt;&lt;/div&gt;
  &lt;div class=&quot;swiper-button-prev&quot;&gt;&lt;/div&gt;
  &lt;div class=&quot;swiper-pagination&quot;&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;This exercise was crucial in defining the project’s scope. It identified essential features, what could be postponed, and what needed to be perfect for the first release.&lt;/p&gt;

&lt;h2 id=&quot;developing-the-app&quot;&gt;Developing the app&lt;/h2&gt;
&lt;p&gt;Armed with my brief, I searched for a Swift developer and, after some research, turned to Lemon.io. They quickly matched me with an experienced Ukrainian developer within my budget, and our collaboration began. We had a quick video-call, and after that we managed the whole project with a Kanban board in GitHub Projects, a DM thread in Discord and a Figma file.&lt;/p&gt;

&lt;p&gt;The collaboration went smoothly, but the ongoing war in Ukraine presented significant challenges. My developer faced numerous obstacles, including bomb threats, power outages, unreliable internet, and closed kindergartens. There were periods where I didn’t hear from him for weeks, and I found myself more concerned for his safety than the project timeline. His resilience was remarkable. Despite the dire circumstances, he adapted impressively, even securing a Starlink system and generator to keep operations running. This situation was a stark reminder that behind every remote collaboration, there are real people dealing with real-life challenges. This collaboration gave me a personal connection to the ongoing situation in Ukraine, making the global crisis feel much closer to home as we got to know each other.&lt;/p&gt;

&lt;p&gt;Despite these challenges, our work continued. The extended timeline allowed for extensive product testing and continuous feedback from a select group of beta testers. Their response ranged from excitement to indifference, highlighting the challenges and unpredictability of product creation.&lt;/p&gt;

&lt;h3 id=&quot;app-onboarding&quot;&gt;App Onboarding&lt;/h3&gt;
&lt;p&gt;As we moved from development to launch preparation, we focused on one of the most critical aspects: the user’s first interaction with Pie Menu. If we couldn’t effectively communicate the app’s value and functionality right from the start, we risked losing users before they even had a chance to experience the product’s benefits. This realization led us to put significant effort into crafting an intuitive and informative onboarding process. Here’s what we landed on for the first version:&lt;/p&gt;

&lt;figure class=&quot;post__video&quot;&gt;



&lt;lite-youtube videoid=&quot;zMJwr6vVwN4&quot; style=&quot;background-image: url(&apos;https://i.ytimg.com/vi_webp/zMJwr6vVwN4/maxresdefault.webp&apos;);&quot;&gt;
  &lt;a href=&quot;https://youtube.com/watch?v=zMJwr6vVwN4&quot; class=&quot;lty-playbtn&quot; title=&quot;Play Video&quot;&gt;
    &lt;span class=&quot;lyt-visually-hidden&quot;&gt;Play Video: Pie Menu onboarding&lt;/span&gt;
  &lt;/a&gt;
&lt;/lite-youtube&gt;
&lt;figcaption&gt;Pie Menu onboarding (without the subscription-flow)&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The onboarding process was crucial, and it was just the beginning of our journey. With this key component in place, we then faced another important decision: where to launch Pie Menu?&lt;/p&gt;

&lt;h3 id=&quot;choosing-launch-platforms&quot;&gt;Choosing Launch Platforms&lt;/h3&gt;

&lt;p&gt;The App Store was the obvious choice due to its massive user base and built-in trust factor for macOS users. This was crucial as we had to be trustworthy accessing the accessibility features on users Mac and running in the background. The App Store also provided a straightforward way to handle payments and updates. However, we were aware of its limitations, such as Apple’s strict review process and the 15% commission (&lt;a href=&quot;https://developer.apple.com/app-store/small-business-program/&quot;&gt;App Store Small Business Program&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;A short while after we launched on the App Store, multiple users requested us to launch in &lt;a href=&quot;https://apps.apple.com/app/apple-store/id1631568126?pt=124155388&amp;amp;ct=pie-menu-website&amp;amp;mt=8&quot;&gt;Setapp&lt;/a&gt;, an interesting alternative. It aligned well with our target audience of productivity-focused users as a curated subscription service for Mac applications. Setapp’s model of bundling high-quality apps appealed to us, potentially exposing Pie Menu to a dedicated user base willing to pay for premium tools.&lt;/p&gt;

&lt;p&gt;After launching on both platforms, I can confidently say that it’s hard to find a more engaged audience than &lt;a href=&quot;https://apps.apple.com/app/apple-store/id1631568126?pt=124155388&amp;amp;ct=pie-menu-website&amp;amp;mt=8&quot;&gt;Setapp&lt;/a&gt;. In the couple of weeks we’ve been there, we’ve gotten more feedback and ideas than we’ve ever received from the quieter App Store audience, making it a perfect platform for apps like Pie Menu.&lt;/p&gt;

&lt;p&gt;We decided to launch on both platforms to maximize visibility and provide users with options. This dual approach also allowed us to compare performance and user feedback across different distribution channels, providing valuable insights for future development and marketing strategies.&lt;/p&gt;

&lt;h3 id=&quot;learnings-from-creating-pie-menu&quot;&gt;Learnings from creating Pie Menu&lt;/h3&gt;

&lt;p&gt;Building on the insights gained from our launch experiences, we continued to learn and adapt. Every phase of Pie Menu’s development has been a learning opportunity, from the first lines of code to the latest user review. Looking back, there are several key decisions and approaches I would reconsider if I were to start over:&lt;/p&gt;

&lt;h4 id=&quot;learning-1-people-hate-subscription&quot;&gt;Learning 1: People hate subscription&lt;/h4&gt;

&lt;p&gt;Setting up subscriptions and getting that working was the most time-consuming task. My initial idea was that people should be able to use it for free for 10 invocations per day and then needed to pay. It was also important that they didn’t have to pay upfront but had some initial trial to test it. In the App Store, a subscription is the only option if you want to add a trial period before it starts running, so I opted for that in the MVP. In hindsight, I wish I had flipped the script—starting with a one-time payment and introducing subscriptions later, if at all. Some people get rashes on their backs when they see a subscription in an app.&lt;/p&gt;

&lt;h4 id=&quot;learning-2-dont-assume-a-perfect-setup&quot;&gt;Learning 2: Don’t assume a perfect setup&lt;/h4&gt;

&lt;p&gt;A couple of weeks after launch, we received reports that people couldn’t use Pie Menu on certain apps. After investigating, we discovered that the apps were located in subfolders of the Applications folder or in other locations, and that Pie Menu didn’t detect them. This oversight highlighted the complexity of macOS file structures and user preferences. We promptly implemented a fix to scan all potential locations, ensuring Pie Menu could detect and interact with applications regardless of their storage path.&lt;/p&gt;

&lt;h4 id=&quot;learning-3-people-love-localization&quot;&gt;Learning 3: People love localization&lt;/h4&gt;

&lt;p&gt;We also experienced users having issues with getting apps to work because of localization. We detected the current active apps based on their file names, but all the native Mac apps like Notes and Email have different names based on the language of macOS, causing Pie Menu to think it is different programs. During beta testing, we didn’t encounter this problem, but when the app was distributed all over the world the problem suddenly became apparent. We identified a solution using bundle-ids instead of app names. However, this fix is currently in our backlog, as we need to balance it against other highly requested features.&lt;/p&gt;

&lt;h4 id=&quot;learning-4-people-become-angry-if-it-doesnt-work-as-they-expect&quot;&gt;Learning 4: People become angry if it doesn’t work as they expect&lt;/h4&gt;

&lt;p&gt;User experience can be challenging. In a niche productivity tool like this, people have a lot of preferences. If it doesn’t work as they expect, they delete it or you get an angry review or mail. In our case, the main learning was that they wanted one click of the shortcut to show the menu, and a click outside it (or in it) to remove it, not as it worked in our first release where you had to hold the shortcut and release the shortcut over the Pie Menu for it to invoke. We had no issues with this during our beta-test period or our silent launch in App Store, but after a while this preference started to pour in. We quickly turned around and actually made this the new preferred way for the app to work, while the old option was still available. The great thing about this is that you could remap a hot-key on your mouse and use the mouse to trigger it!&lt;/p&gt;

&lt;h4 id=&quot;learning-5-user-feedback-is-invaluable&quot;&gt;Learning 5: User feedback is invaluable&lt;/h4&gt;

&lt;p&gt;The continuous stream of user feedback we received post-launch was a goldmine of insights. It helped us identify and prioritize improvements, from minor bug fixes to major feature enhancements. This experience reinforced the importance of maintaining an open line of communication with users and actively seeking their input.&lt;/p&gt;

&lt;p&gt;We implemented &lt;a href=&quot;https://www.pie-menu.com/help/roadmap&quot;&gt;a public roadmap with voting&lt;/a&gt; on the website and asked users to report issues or suggest improvements. This proactive approach not only helped us refine Pie Menu but also fostered a sense of community among our users. They felt heard and valued, which in turn increased their engagement and loyalty to the app. As we continue to evolve Pie Menu, we remain committed to this user-centric development approach, ensuring that each update brings meaningful improvements based on real-world usage and feedback.&lt;/p&gt;

&lt;h4 id=&quot;learning-6-create-an-in-app-news-system&quot;&gt;Learning 6: Create an in-app news system&lt;/h4&gt;

&lt;p&gt;After launch, I regretted that we hadn’t implemented an unobtrusive in-app news system where I could communicate new features that were launched, the roadmap they could vote on, or they should update their app. Some of the issues people have been reporting could have easily been avoided with an update. And often when you get feedback there is a large silent majority that feels the same.&lt;/p&gt;

&lt;h2 id=&quot;pie-menu-website&quot;&gt;Pie Menu Website&lt;/h2&gt;
&lt;h3 id=&quot;website-design&quot;&gt;Website Design&lt;/h3&gt;
&lt;p&gt;I knew early on that the app’s website would be essential. It would explain the app, provide a resource for users to easily add shortcuts, and provide shortcuts for popular Mac apps while serving as a long-tail SEO solution.&lt;/p&gt;

&lt;figure&gt;&lt;img class=&quot;post__img-round&quot; src=&quot;/img/2024/pie-menu-website-sketch.gif&quot; alt=&quot;Draft of Pie Menu website&quot; /&gt;&lt;figcaption&gt;The initial sketch of the website.&lt;/figcaption&gt;&lt;/figure&gt;

&lt;p&gt;My initial sketch was a simple one-pager showing how it worked with a couple of examples. But as we created and used the app, I realized it became too limiting.&lt;/p&gt;

&lt;figure&gt;&lt;img src=&quot;/img/2024/pie-menu-v1.webp&quot; alt=&quot;V1 of Pie Menu website&quot; /&gt;&lt;figcaption&gt;Take 2 of the front page&lt;/figcaption&gt;&lt;/figure&gt;

&lt;p&gt;After sketching out multiple solutions, I settled on a colorful hero showing the Pie Menu and how it changed when different apps were active. However, I questioned its effectiveness. Then, I used &lt;a href=&quot;https://www.roastmylandingpage.com/&quot;&gt;roastmylandingpage&lt;/a&gt; to get feedback on my landing page. Getting expert input from someone outside the project is always valuable. In this case, it resulted in an idea of showing how the Pie Menu works with a demo on the website and more precise wording.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;&lt;img src=&quot;/img/2024/pie-menu-v3.webp&quot; alt=&quot;V3 of Pie Menu website&quot; /&gt;&lt;figcaption&gt;The front-page I launched with&lt;/figcaption&gt;&lt;/figure&gt;

&lt;p&gt;One of my most memorable facepalm moments came post-launch. I showcased the simplicity of launching the Pie Menu on the website with the shortcut Shift + Z. It seemed foolproof. Who would already use that combo? After all, it’s just an uppercase Z.&lt;/p&gt;

&lt;p&gt;But when users downloaded the app, they often tried to use that combination and discovered that Shift + Z couldn’t be used as a shortcut. Because every time you type a capital Z, the app interprets it as a command to launch the Pie Menu. Imagine trying to type “Zebra” or “Zoom” only to have the app jump in uninvited. It was a glaring oversight, revealing how easily a tiny detail can disrupt the entire user experience.&lt;/p&gt;

&lt;p&gt;I later tried changing it to another keyboard shortcut on the website, but Shift is one of the modifier keys that can be used safely on a webpage like this. Command, option, or control won’t work in combination with another key without risking other keyboard shortcut collisions. Shift + Z is a safe bet that will always work, even though some users downloading the app will be confused.&lt;/p&gt;

&lt;h3 id=&quot;remix-vs-nextjs&quot;&gt;Remix vs Next.js&lt;/h3&gt;
&lt;p&gt;When I was developing the website, I used &lt;a href=&quot;https://remix.run/&quot;&gt;Remix&lt;/a&gt; to broaden my horizons, as I usually rely on &lt;a href=&quot;https://nextjs.org/&quot;&gt;Next.js&lt;/a&gt; for web development. Initially, everything seemed smooth, but things quickly took a turn when I tried migrating from Remix 1 to Remix 2. The process was riddled with hydration errors, a common issue with no clear solution. Adding to the frustration, the documentation was a tangled web, bouncing between MDN, React Router, and Remix docs.&lt;/p&gt;

&lt;p&gt;After wrestling with these issues, I migrated the entire site to Next.js. The transition was quick, and retrospectively, it was a smart move. Next.js offered much better documentation and abundant resources, making problem-solving a breeze compared to Remix. This experience reinforced why Next.js is my go-to framework for creating robust and reliable websites.&lt;/p&gt;

&lt;h3 id=&quot;ai-to-enhance-the-website&quot;&gt;AI to enhance the website&lt;/h3&gt;

&lt;figure class=&quot;post__wide&quot;&gt;&lt;img src=&quot;/img/2024/pie-menu-shortcuts.webp&quot; alt=&quot;The shortcuts page&quot; /&gt;&lt;figcaption&gt;&lt;a href=&quot;https://www.pie-menu.com/shortcuts&quot; target=&quot;_blank&quot;&gt;The shortcut page for Pie Menu&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;

&lt;p&gt;One important part of the website for &lt;a href=&quot;https://www.pie-menu.com/shortcuts&quot;&gt;PieMenu.com&lt;/a&gt; has been the pages for &lt;a href=&quot;https://www.pie-menu.com/shortcuts&quot;&gt;shortcuts for different apps&lt;/a&gt;. There are two reasons for this webpage:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;To add shortcuts to Pie Menu via data URIs. This way, users can find the shortcuts in one location and add them to the app. (On many apps, there is also a link to the webpage for that app in Pie Menu)&lt;/li&gt;
  &lt;li&gt;Hopefully, I can get some SEO traffic to these pages, as they are a one-stop shop for finding keyboard shortcuts for many Mac apps.&lt;/li&gt;
&lt;/ol&gt;

&lt;figure class=&quot;post__wide&quot;&gt;&lt;img src=&quot;/img/2024/pie-menu-slack.webp&quot; alt=&quot;Page for app&quot; /&gt;&lt;figcaption&gt;&lt;a href=&quot;https://www.pie-menu.com/shortcuts/slack&quot; target=&quot;_blank&quot;&gt;The page for Slack&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;

&lt;p&gt;The basis for these shortcuts is a JSON file for each app consisting of the keyboard shortcuts, categorization, etc. I’ve created a trained AI Agent to structure this data to make these shortcuts in &lt;a href=&quot;https://store.typingmind.com/?aff=rAkjk&quot;&gt;typingmind.com&lt;/a&gt; (affiliate link), which I use for using chatGTP and other AI models. This way, I can paste the shortcuts (or a screenshot of shortcuts) for a specific app and get the JSON data I need to create the page. This has considerably sped up the creation of these keyboard-shortcut pages, especially given that finding keyboard shortcuts for each app is a task in itself. Some companies have them on their website, some only make them available directly in the app, and for others, I’ve had to rely on various keyboard shortcut directories across the web. The process still involves downloading every app to extract the app icon in the correct format, which remains a time-consuming aspect of the project.&lt;/p&gt;

&lt;figure class=&quot;post__gallery&quot;&gt;  
  &lt;img src=&quot;/img/2024/typing-mind-1.webp&quot; style=&quot;width: calc(50% - 4px); aspect-ratio: 862/759;&quot; /&gt;
  &lt;img src=&quot;/img/2024/typing-mind-2.webp&quot; style=&quot;width: calc(50% - 4px); aspect-ratio: 862/787;&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;I ran the JSON output from chatGPT through a script I’ve created to ensure the IDs are unique and lint the JSON file. This way, adding new apps and shortcuts isn’t as time-consuming as it could have been.&lt;/p&gt;

&lt;h2 id=&quot;marketing-video&quot;&gt;Marketing video&lt;/h2&gt;
&lt;p&gt;A marketing video was necessary to visually demonstrate Pie Menu’s functionality. This allowed potential users to quickly grasp its concept and benefits in action. This was an exciting challenge that allowed me to blend creativity with technology. To get started, I turned to ChatGPT for some initial ideas. I thought it could help spark some creativity and give me a jumping-off point for brainstorming ad concepts. Armed with these ideas, I dove into Figma to think visually, creating a storyboard that mapped out the video’s flow and key visuals. Here’s a glimpse of my final Figma storyboard:&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;&lt;img src=&quot;/img/2024/storyboard.webp&quot; alt=&quot;Storyboard Pie Menu marketing video&quot; /&gt;&lt;figcaption&gt;Storyboard for marketing video&lt;/figcaption&gt;&lt;/figure&gt;

&lt;p&gt;To bring this storyboard to life, I used a combination of tools and technologies. I used Midjourney to create high-quality imagery, refined the script to ensure it conveyed our message clearly, and experimented with Elevenlabs AI voice to create an engaging voiceover.&lt;/p&gt;

&lt;p&gt;I then created a storyboard video using CapCut, synchronizing the visuals with the voiceover and adding sound effects to enhance the presentation’s impact.&lt;/p&gt;

&lt;figure class=&quot;post__video&quot;&gt;



&lt;lite-youtube videoid=&quot;MHtAMIpCzAY&quot; style=&quot;background-image: url(&apos;https://i.ytimg.com/vi_webp/MHtAMIpCzAY/maxresdefault.webp&apos;);&quot;&gt;
  &lt;a href=&quot;https://youtube.com/watch?v=MHtAMIpCzAY&quot; class=&quot;lty-playbtn&quot; title=&quot;Play Video&quot;&gt;
    &lt;span class=&quot;lyt-visually-hidden&quot;&gt;Play Video: The storyboard video&lt;/span&gt;
  &lt;/a&gt;
&lt;/lite-youtube&gt;
&lt;figcaption&gt;The storyboard video&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;While I was tempted to dive deeper into the video production process, I recognized the importance of maintaining focus on the primary goal: to launch Pie Menu and start gathering real-world feedback, not to become a video production expert. After all, this was just a side project. To that end, I collaborated with a talented 3D artist from Upwork to transform my storyboard into a polished, professional video. This decision allowed me to leverage expert skills while keeping the project moving forward.&lt;/p&gt;

&lt;figure class=&quot;post__video&quot;&gt;
  


&lt;lite-youtube videoid=&quot;Nu_fD8woc8g&quot; style=&quot;background-image: url(&apos;https://i.ytimg.com/vi_webp/Nu_fD8woc8g/maxresdefault.webp&apos;);&quot;&gt;
  &lt;a href=&quot;https://youtube.com/watch?v=Nu_fD8woc8g&quot; class=&quot;lty-playbtn&quot; title=&quot;Play Video&quot;&gt;
    &lt;span class=&quot;lyt-visually-hidden&quot;&gt;Play Video: The final version&lt;/span&gt;
  &lt;/a&gt;
&lt;/lite-youtube&gt;
  &lt;figcaption&gt;The final version&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;With the marketing video complete and the app refined based on initial feedback, Pie Menu was ready for a broader audience. The next phase would focus on expanding our reach and continuing to improve the product based on user insights.&lt;/p&gt;

&lt;h2 id=&quot;minimum-viable-pie&quot;&gt;Minimum Viable Pie&lt;/h2&gt;
&lt;blockquote&gt;
  &lt;p&gt;If you want to see if something works, make it. The whole thing. The simplest version of the whole thing – that’s what version 1.0 is supposed to be. But make that, put it out there, and learn. If you want answers, you have to ask the question, and the question is: Market, what do you think of this completed version 1.0 of our product?&lt;/p&gt;

  &lt;p&gt;&lt;a href=&quot;https://x.com/jasonfried/status/1740797413349331170?s=46&amp;amp;t=bv0aMZpRXpOEi2cK30MYOw&quot;&gt;– Jason Fried&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Any new product must start by being helpful to yourself. When I launch Figma (and especially creative apps) and I don’t have &lt;a href=&quot;https://www.pie-menu.com/&quot;&gt;Pie Menu&lt;/a&gt; available, I get frustrated. So, how is the market reacting so far?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The app has over 2 000 active users from &lt;a href=&quot;https://apps.apple.com/app/apple-store/id1631568126?pt=124155388&amp;amp;ct=pie-menu-website&amp;amp;mt=8&quot;&gt;Setapp&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;~800 people have downloaded Pie Menu from the App Store and ~60 have paid for a subscription or lifetime. That is a 5% conversion rate from trial to paid, which is solid, but has room for improvement.&lt;/li&gt;
  &lt;li&gt;The click-through rate from the website to the App Store is 14.2%. (The average here is typically 2% to 5%, with anything above 5% considered good.)&lt;/li&gt;
  &lt;li&gt;My conversion rate in the app store is 31,95%, which is well above the 75th percentile in the App Store (~7.16%).&lt;/li&gt;
  &lt;li&gt;I’ve received detailed feedback from many users raving that this app is something they’ve wanted for a long time and requesting more features.&lt;/li&gt;
  &lt;li&gt;Someone has made a cracked version circulating on Chinese web pages. 🙈&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Based on this data, there clearly is some kind of Product Market Fit with Pie Menu, though the feedback and usage indicate that the initial subscription model was wrong. Luckily the new version with a lifetime-price is now also launched!&lt;/p&gt;

&lt;h2 id=&quot;looking-ahead&quot;&gt;Looking ahead&lt;/h2&gt;
&lt;p&gt;So far, I’ve shared the app on my &lt;a href=&quot;https://www.x.com/mhauken&quot;&gt;X account&lt;/a&gt;, in a Slack community, in a newsletter and on &lt;a href=&quot;https://apps.apple.com/app/apple-store/id1631568126?pt=124155388&amp;amp;ct=pie-menu-website&amp;amp;mt=8&quot;&gt;Setapp&lt;/a&gt;. And last week I got a huge traffic spike after sharing it on &lt;a href=&quot;https://news.ycombinator.com/item?id=41160268&quot;&gt;Hacker News&lt;/a&gt;. After we’ve fixed our bundle-id issue, it is time to market the app more, launch it on Product Hunt, as well as continuing the work on &lt;a href=&quot;https://www.pie-menu.com/help/roadmap&quot;&gt;the roadmap&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I’m hopeful that I, in time, can break even on Pie Menu.
Based on the income the last months it certainly seems possible.
But without this project I wouldn’t have:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;created &lt;a href=&quot;https://www.isecrets.io/?ref=hauken.no&quot;&gt;iSecrets&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hauken.no/255-million/&quot;&gt;built an audience on Twitter and newsletter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hauken.no/255-million/&quot;&gt;received a tweet from Elon Musk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;designed &lt;a href=&quot;https://hauken.no/made&quot;&gt;two Mac apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;created a fun marketing video&lt;/li&gt;
  &lt;li&gt;designed and developed an extensive website&lt;/li&gt;
  &lt;li&gt;met a lot of interesting people online&lt;/li&gt;
  &lt;li&gt;started to learn SwiftUI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Compared to studying formally, the money spent on learning this has been tremendously worth it, and I still have the potential upside to earn back the money used. I still have a lot of plans for building out Pie Menu &lt;a href=&quot;https://www.pie-menu.com/help/roadmap&quot;&gt;(help me prioritize by voting on the roadmap)&lt;/a&gt;, and for the next half year will slowly build out features while I work more on marketing the app.&lt;/p&gt;

&lt;p&gt;If you’ve come so far and haven’t tested out Pie Menu yet I highly recommend you to &lt;a href=&quot;https://www.pie-menu.com?ref=noio/pie-menu&quot;&gt; download it&lt;/a&gt; and try it out! And please reach out if you have any ideas or feature suggestions!&lt;/p&gt;

&lt;!-- Swiper JS --&gt;
&lt;script src=&quot;https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js&quot;&gt;&lt;/script&gt;

&lt;p&gt;&lt;!-- Initialize Swiper --&gt;
  &lt;script&gt;
    var swiper = new Swiper(&quot;.mySwiper&quot;, {
      lazy: true,
      pagination: {
        el: &quot;.swiper-pagination&quot;,
        clickable: true,
      },
      navigation: {
        nextEl: &quot;.swiper-button-next&quot;,
        prevEl: &quot;.swiper-button-prev&quot;,
      },
    });
  &lt;/script&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Time travelling for parents</title>
   <link href="https://hauken.no/time-travelling/"/>
   <updated>2024-07-16T00:00:00+00:00</updated>
   <id>https://hauken.no/time-travelling/</id>
   <content type="html">&lt;p&gt;&lt;img class=&quot;post__img-round post__right post__right--pop&quot; src=&quot;/img/2024/parent-perspective.avif&quot; /&gt; 
Parenthood is the ultimate paradox. Nothing is more wonderful, nothing is more challenging. My third child is now 2 months old, and we’re drowning in sleepless nights and endless cries where we don’t know what to do.&lt;/p&gt;

&lt;p&gt;But I’ve found two perspective shifters that reveal the magic in the mayhem:&lt;/p&gt;

&lt;h2 id=&quot;1-the-80-year-old-you&quot;&gt;1. The 80-Year-Old You&lt;/h2&gt;
&lt;p&gt;Close your eyes. You’re 80. Your joints creak and your kids are grown. Suddenly, you’re time travelling back to now. This moment, with a crying baby and bags under your eyes. How much wouldn’t you give to be back in this exact moment?&lt;/p&gt;

&lt;h2 id=&quot;2-the-last-time-illusion&quot;&gt;2. The Last Time Illusion&lt;/h2&gt;
&lt;p&gt;One day, you’ll pick up your child for the last time. You’ll change the last diaper, give the last piggyback ride, read the last bedtime story. But this is the crucial point: &lt;strong&gt;You will never know it’s the last time when it happens&lt;/strong&gt;. It’ll slip by, unnoticed.&lt;/p&gt;

&lt;h2 id=&quot;embracing-the-chaos&quot;&gt;Embracing the Chaos&lt;/h2&gt;
&lt;p&gt;Night wakenings have become my trigger for these perspective shifts. When the 2 AM cry jolts me awake, I pause and imagine my 80-year-old self, cherishing this fleeting moment of midnight connection. It doesn’t magically erase the exhaustion, but it does make those hushed, drowsy moments feel more meaningful.&lt;/p&gt;

&lt;p&gt;One day, you’ll miss these endless crying sessions. You’ll long for reading that same book for the 20th time. These chaotic moments are the good old days in disguise.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>The bar is lower than you think!</title>
   <link href="https://hauken.no/bar/"/>
   <updated>2024-01-23T00:00:00+00:00</updated>
   <id>https://hauken.no/bar/</id>
   <content type="html">&lt;p&gt;A story about how 200 students turned down earning $250 an hour.&lt;/p&gt;

&lt;p&gt;Annually, we host a student recruitment seminar, attracting a diverse audience ranging from 100 to 300 attendees. While most focus on web development, we also welcome participants with design, economics, and business development backgrounds.&lt;/p&gt;

&lt;p&gt;Before the event, students can tackle an optional coding challenge. During the seminar, we award the top-performing solution with the latest iPhone.&lt;/p&gt;

&lt;p&gt;An example of the coding challenges we’ve given out:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;consume a specific API and show the data in a helpful way
&lt;em&gt;(i.e., filtering, searching)&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Solve sudoku programmatically&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’ve always encouraged candidates to approach the tasks in their own way, allowing them to leverage the technologies they feel most comfortable with and showcasing their skills.&lt;/p&gt;

&lt;p&gt;One year, we stopped giving out the assignment. &lt;em&gt;Why?&lt;/em&gt;&lt;br /&gt;
Only 3% of the attendees provided a solution.&lt;/p&gt;

&lt;p&gt;Consider this: If they invested around 10 hours crafting an impressive assignment, they could earn $100 per hour — five times more than a typical part-time job. Yet, only 6 out of 200 graduate students looking for a job embraced this chance.&lt;/p&gt;

&lt;p&gt;The potential downside? Even if they didn’t win, they set themselves apart as part of the 3% who took the initiative in the job application process.&lt;/p&gt;

&lt;p&gt;The bar is lower than you think!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>GitHub Codespaces for Jekyll and Next.js</title>
   <link href="https://hauken.no/codespaces/"/>
   <updated>2024-01-17T00:00:00+00:00</updated>
   <id>https://hauken.no/codespaces/</id>
   <content type="html">&lt;p&gt;A quick step-by-step setup guide on how to set up GitHub Codespaces for Jekyll and Next.js.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#jekyll&quot;&gt;Jump to the instructions for &lt;strong&gt;Jekyll&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#nextjs&quot;&gt;Jump to the instructions for &lt;strong&gt;Next.js&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;why-github-codespaces&quot;&gt;Why GitHub Codespaces?&lt;/h2&gt;
&lt;p&gt;I wrote about &lt;a href=&quot;/github-codespaces&quot;&gt;why Codespaces is the future&lt;/a&gt; back in 2020. Four years later, I’m still convinced — and now I actually use it daily.&lt;/p&gt;

&lt;p&gt;I’ve used &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; for my blog since I started it in 2014. I loved the idea of the easy liquid templating language and the ease of dropping a new Markdown file into a GitHub repo with &lt;a href=&quot;https://pages.github.com/&quot;&gt;GitHub pages&lt;/a&gt;, and suddenly, it was published online for free. Over the years, I’ve redesigned it multiple times but never steered away from Jekyll since it just worked out of the box.&lt;/p&gt;

&lt;p&gt;But when I got a MacBook M1, it started getting more challenging to set up a Jekyll development environment locally for someone who doesn’t understand the Ruby ecosystem. I then came across &lt;a href=&quot;https://github.com/features/codespaces&quot;&gt;GitHub Codespaces&lt;/a&gt; and the possibility of running a development environment like it was run locally. I could also run GitHub Codespaces to develop on my iPad as an added benefit! All for free (or at least I’ve never touched the 60 hours you get for free every month).&lt;/p&gt;

&lt;h2 id=&quot;jekyll&quot;&gt;How to set up GitHub Codespaces for Jekyll&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;Create a folder called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.devcontainer&lt;/code&gt; at the root of your GitHub project.&lt;/li&gt;
  &lt;li&gt;Inside that folder, create a file called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;devcontainer.json&lt;/code&gt; and fill it with the &lt;a href=&quot;https://github.com/jekyll/jekyll/blob/master/.devcontainer/devcontainer.json&quot;&gt;content found at the Jekyll repo.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Create a file called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Dockerfile&lt;/code&gt; &lt;a href=&quot;https://github.com/jekyll/jekyll/blob/master/.devcontainer/Dockerfile&quot;&gt;and fill it with this content&lt;/a&gt; also from Jekyll main repo.&lt;/li&gt;
  &lt;li&gt;Commit this to your current repo. It shouldn’t change anything else.&lt;/li&gt;
  &lt;li&gt;Now, you can go to GitHub and click code. In the tab that appears, click Codespaces and create a new one. &lt;img src=&quot;/img/2024/codespaces-create.png&quot; alt=&quot;codespaces&quot; class=&quot;post__img-round&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Now, VSCode should open in your browser, and you should see your full repository.&lt;/li&gt;
  &lt;li&gt;Open the Terminal inside VSCode and write: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bundle install&lt;/code&gt; to install all dependencies.&lt;/li&gt;
  &lt;li&gt;When that is done, write: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bundle exec jekyll serve --drafts&lt;/code&gt; and hit Enter&lt;/li&gt;
  &lt;li&gt;The code should now run, and you should get a popup asking if you want to open another window with your Jekyll instance running. You now have a local instance of Jekyll running on GitHub CodeSpaces!&lt;/li&gt;
&lt;/ol&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
    &lt;img src=&quot;/img/2024/codespaces-ipad.webp&quot; alt=&quot;codespaces on ipad&quot; class=&quot;post__img-round&quot; /&gt;
    &lt;figcaption&gt;GitHub Codespaces even runs on an iPad&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;nextjs&quot;&gt;How to set up GitHub Codespaces for Next.js&lt;/h2&gt;
&lt;p&gt;Setting up &lt;a href=&quot;https://github.com/features/codespaces&quot;&gt;GitHub Codespaces&lt;/a&gt; for Next.js is much simpler:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Go to your GitHub repo and click code. In the tab that appears, click Codespaces and create a new one. &lt;figure&gt;&lt;img src=&quot;/img/2024/codespaces-create.png&quot; alt=&quot;Create new codespace&quot; class=&quot;post__img-round&quot; /&gt;&lt;/figure&gt;&lt;/li&gt;
  &lt;li&gt;Everything should now auto-install. Type &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;npm run dev&lt;/code&gt; in your terminal to run your app.&lt;/li&gt;
  &lt;li&gt;The code should now run!&lt;/li&gt;
&lt;/ol&gt;
</content>
 </entry>
 
 <entry>
   <title>2023 year in review</title>
   <link href="https://hauken.no/2023/"/>
   <updated>2024-01-11T00:00:00+00:00</updated>
   <id>https://hauken.no/2023/</id>
   <content type="html">&lt;p&gt;This is a look back on some of the highlights and lowlights of my 2023. I’ve written these yearly in private for 9 years, but as I reached the end of 2023, I decided to share what has happened during the year with whoever is interested, and because I know this will be fun to review in a decade.&lt;/p&gt;

&lt;h2 id=&quot;consulting&quot;&gt;Consulting&lt;/h2&gt;
&lt;p&gt;In previous years, I’ve written about what we’ve done at Stacc X (&lt;a href=&quot;https://hauken.no/year-in-review-2022/&quot;&gt;2021&lt;/a&gt;, &lt;a href=&quot;https://hauken.no/stacc-x-year-in-review-2020/&quot;&gt;2020&lt;/a&gt;). A lot has happened since we were 3 persons in a group of 3 companies with 15 persons. Stacc now consists of over 230 employees in 3 countries, and the companies work more like different departments. As Stacc expands, I find it hard to write about just the yearly accomplishments of one department in Stacc, so instead, I’m going to write about what I’ve been up to this year:&lt;/p&gt;

&lt;h3 id=&quot;morrow&quot;&gt;Morrow&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://morrowbank.no/&quot; rel=&quot;nofollow&quot;&gt;Morrow Bank&lt;/a&gt; came to us when they were still known as Komplett Bank with a proposal for a complete rebrand of their public pages. They had previously worked with another firm to establish the brand identity but needed help with expanding the visual profile for the web and developing their new website. With a small team from Stacc, I helped design and develop brand-new web pages, a visual style guide, and a design system that will be used in years to come. I sure learned a lot about gradients on the web.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;  
&lt;img src=&quot;/img/2024/2023-morrow.webp&quot; alt=&quot;Morrow&quot; /&gt; 
&lt;/figure&gt;

&lt;h3 id=&quot;kassa&quot;&gt;Kassa&lt;/h3&gt;
&lt;p&gt;For the last year, one of my main projects has been &lt;a href=&quot;https://kassa.no/&quot; rel=&quot;nofollow&quot;&gt;Kassa&lt;/a&gt;, a digital and automated end-to-end mortgage solution that streamlines the mortgage process at every stage. The solution automatically gathers information about the loan customer from various sources within seconds and helps to ensure that the loan applicant can receive a response to their application within a few minutes. I have been the lead UX designer on the solution and worked a lot on streamlining the customer journey for borrowers and co-borrowers and the daily work of caseworkers and financial advisors.&lt;/p&gt;

&lt;figure&gt;  
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/2023-kassa.webp&quot; alt=&quot;Kassa&quot; /&gt; 
&lt;/figure&gt;

&lt;h3 id=&quot;sensor-bachelor-students-in-design&quot;&gt;Sensor Bachelor students in design&lt;/h3&gt;
&lt;p&gt;In May, I was privileged to serve as an external sensor for the Visual Communication students taking a bachelor at &lt;a href=&quot;https://kmd.uib.no/no/studier/institutt-for-design&quot;&gt;the University of Bergen&lt;/a&gt;. Reviewing various projects, from speculative design and AI as a design tool to board games, was inspiring and intense.&lt;/p&gt;

&lt;h3 id=&quot;presentations&quot;&gt;Presentations&lt;/h3&gt;
&lt;p&gt;I’ve also held a few presentations. Among others, I presented Norwegian Fintech trends for &lt;a href=&quot;https://www.vest.studio/&quot;&gt;Vest Studio&lt;/a&gt; (and friends) in Ålesund and held a talk for students about how to build a career and why Fintech is an exciting industry to bet on. A highlight of the year was touring Scandinavia in together with my good friend &lt;a href=&quot;https://bento.me/ivanito&quot;&gt;Ivan Hjelmeland&lt;/a&gt; from Shortcut. We delivered a talk on a report we (and some of our colleagues) had created where we analyzed all the banking apps in Scandinavia. &lt;a href=&quot;https://hauken.no/img/2024/Nordic-Banking-Apps.pdf&quot;&gt;You can read the report here.&lt;/a&gt;&lt;/p&gt;

&lt;figure class=&quot;post__gallery&quot;&gt;  
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/2023-students.webp&quot; alt=&quot;Presentation for students&quot; style=&quot;width: 29.57%; aspect-ratio: 220 / 250;&quot; /&gt; 
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/2023-preso-banking-apps.webp&quot; alt=&quot;Marius Hauken presenting scandinavian banking apps. foto: Studio Elisenberg&quot; style=&quot;width: 22.45%; aspect-ratio: 167 / 250;&quot; /&gt; 
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/2023-vest.webp&quot; alt=&quot;Presentation at Vest&quot; style=&quot;width: 47.98%; aspect-ratio: 357 / 250;&quot; /&gt; 
&lt;/figure&gt;

&lt;h3 id=&quot;feasibility-studies-and-pocs&quot;&gt;Feasibility studies and POCs&lt;/h3&gt;
&lt;p&gt;Much of my time is spent on feasibility studies, creating Proof of Concepts, and sales, and unfortunately, this is not something I can share more about. If you want to read more about my regular work-day you can read this interview from when I was &lt;a href=&quot;https://hauken.no/ux-norway/&quot;&gt;Designer of the Week at UX Norway&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;side-projects&quot;&gt;Side projects&lt;/h2&gt;
&lt;p&gt;Over the last two years, I’ve built several side projects on evenings and weekends.&lt;/p&gt;

&lt;h3 id=&quot;xtwitter&quot;&gt;X/Twitter&lt;/h3&gt;
&lt;p&gt;I’ve slowly built a following on &lt;a href=&quot;https://twitter.com/mhauken&quot;&gt;Twitter&lt;/a&gt; by sharing hidden features on iOS and macOS, but in 2023, it grew and stabilized at around 145k followers. My most absurd moment last year was when I woke up and saw that Elon Musk had replied to one of my Tweets. &lt;a href=&quot;https://hauken.no/255-million/&quot;&gt;I wrote about some of my learnings in this blog post.&lt;/a&gt; My tweets were viewed by someone over 98 million times last year! (Strangely, it was down from 171 million in 2022, so it might be safe to say that the algorithm changed in 2023).&lt;/p&gt;

&lt;figure&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/2023-twitter.webp&quot; alt=&quot;Twitter&quot; /&gt; 
&lt;/figure&gt;

&lt;h3 id=&quot;isecrets&quot;&gt;iSecrets&lt;/h3&gt;
&lt;p&gt;Over time, I’ve added these tips to a daily email called &lt;a href=&quot;https://isecrets.io&quot;&gt;iSecrets&lt;/a&gt;. It consists of an automation with over 100 emails that are automatically sent out ever weekday. Over 8 000 have subscribed! You can subscribe below to check it out:&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;a href=&quot;https://www.isecrets.io&quot; class=&quot;post__img-link&quot;&gt;
&lt;img class=&quot;post__img-round&quot; src=&quot;/img/2023/isecrets.webp&quot; alt=&quot;isecrets.io&quot; style=&quot;aspect-ratio: 1166 / 512;&quot; loading=&quot;lazy&quot; /&gt;
&lt;/a&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;blog-and-newsletter&quot;&gt;Blog and newsletter&lt;/h3&gt;
&lt;p&gt;I have written &lt;a href=&quot;https://hauken.no/blog/&quot;&gt;4 blogpost&lt;/a&gt; and &lt;a href=&quot;https://newsletter.stacc.com/&quot;&gt;14 Fintech newsletters&lt;/a&gt; in 2023. This feels disappointing considering I currently have 315 blog ideas (?!), 15 blog drafts and 2 blog edits in my Obsidian vault.&lt;/p&gt;

&lt;h3 id=&quot;mac-app&quot;&gt;Mac App&lt;/h3&gt;
&lt;p&gt;My main side project for the last year has been a productivity macOS app I’m creating with a contractor. I’m looking forward to releasing it at the start of this year! You can subscribe here if you want to be &lt;a href=&quot;https://hauken.ck.page/pie-menu&quot;&gt;notified when it launches&lt;/a&gt;. This might be one of the reasons why my blog have stagnated a bit lately.&lt;/p&gt;

&lt;h2 id=&quot;the-good-parts&quot;&gt;The Good Parts&lt;/h2&gt;
&lt;p&gt;Day-to-day is hectic with a 6-year-old (Just started at school!) and a 3-year-old. Next year will be even more hectic as we welcome another family member in May!&lt;/p&gt;

&lt;h3 id=&quot;travel&quot;&gt;Travel&lt;/h3&gt;
&lt;h4 id=&quot;kristiansand-zoo-and-amusement-park&quot;&gt;Kristiansand zoo and amusement park&lt;/h4&gt;
&lt;p&gt;In 2023, we started something I’m sure will be a staple in our year: a precation. A shorter vacation before our summer vacation. I highly recommend it! This year, we visited Kristiansand Zoo and Amusement Park with my parents-in-law, and everyone from 3 to 60 had a great time!&lt;/p&gt;

&lt;figure class=&quot;post__gallery&quot;&gt; 
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/2023-kristiansand-2.webp&quot; alt=&quot;Kristiansand Dyrepark&quot; style=&quot;width: 33%; aspect-ratio: 262 / 350;&quot; /&gt; 
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/2023-kristiansand-3.webp&quot; alt=&quot;Kristiansand Dyrepark&quot; style=&quot;width: 33%; aspect-ratio: 262 / 350;&quot; /&gt; 
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/2023-kristiansand-1.webp&quot; alt=&quot;Kristiansand Dyrepark&quot; style=&quot;width: 33%; aspect-ratio: 262 / 350;&quot; /&gt; 
&lt;/figure&gt;

&lt;h4 id=&quot;south-england&quot;&gt;South England&lt;/h4&gt;
&lt;p&gt;Our real vacation was spent in the south of England. We first had a lovely week in Greatstone with my parents (A bit bummed about the tides and extremely shallow depth of the beach), and then a week on the Isle of Wight. We fell in love with the Isle of Wight, the ease of cycling around, and the fun amusement parks. Highly recommended!&lt;/p&gt;

&lt;figure class=&quot;post__gallery&quot;&gt; 
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/2023-england-2.webp&quot; alt=&quot;england&quot; style=&quot;width: 33%; aspect-ratio: 262 / 350;&quot; /&gt; 
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/2023-england-3.webp&quot; alt=&quot;england&quot; style=&quot;width: 33%; aspect-ratio: 262 / 350;&quot; /&gt; 
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/2023-england-1.webp&quot; alt=&quot;england&quot; style=&quot;width: 33%; aspect-ratio: 262 / 350;&quot; /&gt; 
&lt;/figure&gt;

&lt;h3 id=&quot;health&quot;&gt;Health&lt;/h3&gt;
&lt;h4 id=&quot;weekly-ice-bath&quot;&gt;Weekly ice bath&lt;/h4&gt;
&lt;p&gt;A weekly staple for the last two years has been a bath in the ocean before work (or during lunch) with a couple of colleagues. It is incredible what people do just because we have a leaderboard. The average temperature of all the baths last year was 8,3 degrees celcius.&lt;/p&gt;

&lt;figure&gt;
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/Bading.webp&quot; alt=&quot;Ice bath&quot; /&gt; 
&lt;/figure&gt;

&lt;h4 id=&quot;styrkeprøven-rett-vest&quot;&gt;Styrkeprøven rett Vest&lt;/h4&gt;
&lt;p&gt;Last year, one of my most memorable experiences was when my wife and I “ran” Styrkeprøven Rett Vest. It is a 45km trail (feels like 50) over 3 100 m in height and 8 mountains. We were pretty nervous about whether we would actually be able to finish, but after finishing 7-fjellsturen earlier in the spring and training fairly structured during the summer, we believed it was doable.&lt;/p&gt;

&lt;p&gt;The first 5 mountains went okay, but then I lost all energy on the 6th mountain. I pushed on, but when I finally had my energy back and filled up my Camelbak with energy drinks, it started pouring down, with thunder and lightning close by. The organizer made the wise decision of canceling the rest of the run because of the risk of being struck by lightning at the mountaintops. We therefore didn’t get to go over the last two mountains, which was a bummer.&lt;/p&gt;

&lt;figure class=&quot;post__gallery&quot;&gt; 
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/styrkeproven-1.webp&quot; alt=&quot;styrkeprøven rett vest&quot; style=&quot;width: calc(25% - 6px); aspect-ratio: 262 / 350;&quot; /&gt; 
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/styrkeproven-2.webp&quot; alt=&quot;styrkeprøven rett vest&quot; style=&quot;width: calc(25% - 6px); aspect-ratio: 262 / 350;&quot; /&gt; 
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/styrkeproven-3.webp&quot; alt=&quot;styrkeprøven rett vest&quot; style=&quot;width: calc(25% - 6px); aspect-ratio: 262 / 350;&quot; /&gt; 
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/styrkeproven-4.webp&quot; alt=&quot;styrkeprøven rett vest&quot; style=&quot;width: calc(25% - 6px); aspect-ratio: 262 / 350;&quot; /&gt; 
&lt;/figure&gt;

&lt;h4 id=&quot;toughest&quot;&gt;Toughest&lt;/h4&gt;
&lt;p&gt;A yearly tradition for my wife and I has been running the obstacle course Toughest together in Oslo! It is amusing with a lot of challenging obstacles and about 10km of running. This year, the entire family traveled over and we also ran the family race together.&lt;/p&gt;

&lt;p&gt;On race day, I, however, had an accident that has haunted me for the whole autumn. I was on the “spinning wheels” obstacle where you hang by your hands on wheels mounted on a rig. You must gain momentum from one wheel to the next to reach them. At the last wheel, I suddenly felt a jolt in my shoulder and fell. Later, after scanning my shoulder, I learned that I dislocated my shoulder at that moment, and it apparently popped back again immediately. I didn’t know, so I continued the race (and even climbed a rope 5 minutes later)&lt;/p&gt;

&lt;figure class=&quot;post__gallery&quot;&gt; 
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/toughest-1.webp&quot; alt=&quot;Toughest Oslo&quot; style=&quot;width: calc(64% - 4px); aspect-ratio: 654 / 360;&quot; /&gt; 
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/toughest-2.webp&quot; alt=&quot;Toughest Oslo&quot; style=&quot;width: calc(36% - 4px); aspect-ratio: 368 / 360;&quot; /&gt; 
&lt;/figure&gt;

&lt;h4 id=&quot;shoulder-surgery&quot;&gt;Shoulder surgery&lt;/h4&gt;
&lt;p&gt;My shoulder never became better during the autumn, so after finding out it had been dislocated and I had some loose cartilage there, we decided on surgery to remove the cartilage and to suture the labrum in the shoulder to reduce the risk of the shoulder dislocating again. I have, therefore, spent my entire Christmas with my arm in a sling while my shoulder recovered. This whole post has been typed with one arm or with the help of different text-to-speech solutions I’m testing.&lt;/p&gt;

&lt;figure&gt; 
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/shoulder.webp&quot; alt=&quot;Shoulder surgery&quot; /&gt; 
&lt;/figure&gt;

&lt;h2 id=&quot;some-wonderful-things-from-2023&quot;&gt;Some wonderful things from 2023&lt;/h2&gt;

&lt;h3 id=&quot;purchases&quot;&gt;Purchases&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Ice bath&lt;/strong&gt; Yes! I bought an ice bath outside our bedroom this year. Nothing wakes you up like a sub-10-degree bath in the dark. It feels like training without training and gives much energy throughout the day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mercedes Benz EQB 300&lt;/strong&gt; The most expensive purchase this year was without a doubt a car. Our &lt;a href=&quot;https://hauken.no/why-selling-car-buying-bike-best-investment/&quot;&gt;biking days&lt;/a&gt; are not over, but becoming a family of five certainly has its own challenges when it comes to transportation. We, therefore, saw no other option than buying a car. We wanted an electric car with at least 400km reach, 7 seats, and a 4-wheel drive to get to our cabin. We are pleased so far!&lt;/p&gt;

&lt;h3 id=&quot;favorite-meal&quot;&gt;Favorite meal&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Pizza with Apple and Bacon&lt;/strong&gt;: In 2023, we used our Ooni Koda oven almost weekly. Our go-to staple pizza became Pizza with white sauce, tart apples, and bacon (and sometimes a drizzle of honey).&lt;/p&gt;

&lt;figure class=&quot;post__gallery&quot;&gt; 
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/Water.webp&quot; alt=&quot;Ice Bath&quot; style=&quot;width: calc(50% - 4px) ; aspect-ratio: 1 / 1;&quot; /&gt; 
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/Pizza.webp&quot; alt=&quot;Pizza&quot; style=&quot;width: calc(50% - 4px) ; aspect-ratio: 1 / 1;&quot; /&gt; 
&lt;/figure&gt;

&lt;h3 id=&quot;new-habits&quot;&gt;New habits&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Dream team practice&lt;/strong&gt;: I’ve started a habit of reflecting every morning on how I will be my best and move the needle today for work, my health, and my family. It might sound cheesy, but it doesn’t take much time, and I’ve noticed it helps me focus on what is essential that day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shutdown ritual&lt;/strong&gt;: I’ve also started with a shutdown ritual at the end of the workday to unwind and plan the next day. It’s a checklist where I go through what I’ve done, log my hours at work, review the next day’s calendar, and list the top 3 things for tomorrow. It’s simple but helps immensely in controlling things and preparing to end the workday.&lt;/p&gt;

&lt;h3 id=&quot;media&quot;&gt;Media&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.amazon.com/PARA-Method-Simplify-Organize-Digital-ebook/dp/B0C2QPWBP4&quot;&gt;&lt;strong&gt;The PARA Method&lt;/strong&gt;&lt;/a&gt; I’ve been following Tiago Forte for quite a while, but this way of organizing my digital life really came to fruition after reading this book. &lt;span class=&quot;tag&quot;&gt;Book&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.amazon.com/Abandon-Novel-Blake-Crouch-ebook/dp/B09X536547?crid=2V3GH2QOB86J2&amp;amp;keywords=abandon&amp;amp;qid=1704441328&amp;amp;s=digital-text&amp;amp;sprefix=abandom,digital-text,198&amp;amp;sr=1-1&quot;&gt;&lt;strong&gt;Abandon&lt;/strong&gt;&lt;/a&gt; Over the last few years Blake Crouch has become one of my favorite fiction writers. Abandon is a fascinating thriller about an entire Western town that suddenly disappeared along with a large amount of gold and the people trying to find the treasure later on. &lt;span class=&quot;tag&quot;&gt;Book&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.amazon.com/Comfort-Crisis-Embrace-Discomfort-Reclaim-ebook/dp/B08FZLLPJX?crid=3CMJ3UI4I86PC&amp;amp;keywords=comfort+crisis&amp;amp;qid=1704441728&amp;amp;s=digital-text&amp;amp;sprefix=comfort+crisis,digital-text,184&amp;amp;sr=1-1&quot;&gt;The Comfort Crisis&lt;/a&gt;&lt;/strong&gt; This is probably the book I have referred most back to, and thought most about, in the last year. Michael Easter argues why comfort might be one of the leading causes of many of our most urgent physical and mental health issues. &lt;span class=&quot;tag&quot;&gt;Book&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://open.spotify.com/album/7re8T0K3s8v3S3xeiQcOYi?si=M5175EHfRjikBNzt0VXJ9A&quot;&gt;Laugh Track&lt;/a&gt;&lt;/strong&gt; by The National was my favorite album from last year.  &lt;span class=&quot;tag&quot;&gt;Album&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://open.spotify.com/album/2Pbcjuwfr1fqtmxeQdGu6D?si=JtpMe7jBS9uPybSD3dSUdw&quot;&gt;Aftermath - EP&lt;/a&gt;&lt;/strong&gt; by Alfonso Peduto is a piano-only album I’ve enjoyed listening to when working.  &lt;span class=&quot;tag&quot;&gt;Album&lt;/span&gt;&lt;/p&gt;

&lt;figure class=&quot;post__gallery&quot;&gt; 
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/Para.webp&quot; style=&quot;width: calc(18.84% - 7px); aspect-ratio: 188 / 244;&quot; alt=&quot;PARA&quot; /&gt; 
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/Abandon.webp&quot; style=&quot;width: calc(16.03% - 7px); aspect-ratio: 160 / 244;&quot; alt=&quot;Abandon&quot; /&gt; 
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/ComfortCrisis.webp&quot; style=&quot;width: calc(16.03% - 7px); aspect-ratio: 160 / 244;&quot; alt=&quot;Comfort Crisis&quot; /&gt; 
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/LaughTrack.webp&quot; style=&quot;width: calc(24.55% - 7px); aspect-ratio: 244 / 244;&quot; alt=&quot;Laugh Track&quot; /&gt; 
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/After.webp&quot; style=&quot;width: calc(24.55% - 7px); aspect-ratio: 244 / 244;&quot; alt=&quot;After&quot; /&gt; 
&lt;/figure&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://letterboxd.com/film/the-art-of-the-steal-2013/&quot;&gt;The Art of the Steal&lt;/a&gt;&lt;/strong&gt; What can I say? I’m a sucker for bank robber films and endings with a twist.  &lt;span class=&quot;tag&quot;&gt;Movie&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://letterboxd.com/film/dexter-new-blood/&quot;&gt;Dexter: New Blood&lt;/a&gt;&lt;/strong&gt; Dexter is the TV show I’ve seen most times (I never rewatch stuff), and this sequel did not disappoint. Highly recommended if you’ve seen the previous seasons.  &lt;span class=&quot;tag&quot;&gt;TV show&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.imdb.com/title/tt5348176/&quot;&gt;Barry&lt;/a&gt;&lt;/strong&gt; is a dark comedy-drama series about a disillusioned hitman who tries to start a new life as an actor. We quite enjoyed these 4 seasons.  &lt;span class=&quot;tag&quot;&gt;TV show&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.imdb.com/title/tt4270492/&quot;&gt;Billions&lt;/a&gt;&lt;/strong&gt; This year, we watched the last of the 7 seasons with the billionaire Axelrod and his nemesis Chuck Rhoades. If you enjoyed &lt;a href=&quot;https://www.imdb.com/title/tt1632701/&quot;&gt;Suits&lt;/a&gt;, this is a must-watch!  &lt;span class=&quot;tag&quot;&gt;TV show&lt;/span&gt;&lt;/p&gt;

&lt;figure class=&quot;post__gallery&quot;&gt; 
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/ArtSteal.webp&quot; alt=&quot;Art of the steal&quot; style=&quot;width: calc(25% - 6px); aspect-ratio: 230 / 344;&quot; /&gt; 
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/Dexter.webp&quot; alt=&quot;Dexter&quot; style=&quot;width: calc(25% - 6px); aspect-ratio: 230 / 344;&quot; /&gt; 
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/Barry.webp&quot; alt=&quot;Barry&quot; style=&quot;width: calc(25% - 6px); aspect-ratio: 230 / 344;&quot; /&gt; 
&lt;img loading=&quot;lazy&quot; src=&quot;/img/2024/Billions.webp&quot; alt=&quot;Billions&quot; style=&quot;width: calc(25% - 6px); aspect-ratio: 230 / 344;&quot; /&gt; 
&lt;/figure&gt;

&lt;h3 id=&quot;apps&quot;&gt;Apps&lt;/h3&gt;

&lt;div class=&quot;flag flag--responsive&quot;&gt;
  &lt;div class=&quot;flag__image&quot;&gt;
    &lt;img loading=&quot;lazy&quot; width=&quot;100&quot; src=&quot;/img/2024/TypingMind.webp&quot; alt=&quot;Typing Mind&quot; style=&quot;max-width: minmax(80px, 30%); aspect-ratio: 1 / 1;&quot; /&gt; 
  &lt;/div&gt;
  &lt;div class=&quot;flag__body&quot;&gt;
  &lt;p&gt;&lt;a href=&quot;https://www.typingmind.com&quot;&gt;Typing Mind&lt;/a&gt; Chat GPT became a staple in my work process last year. Typing Mind is my preferred way to interact with Chat GPT on desktop and mobile. You just add your Open AI API key to use it, and you can add custom instructions and characters very quickly.
  &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;flag flag--responsive&quot;&gt;
  &lt;div class=&quot;flag__image&quot;&gt;
    &lt;img loading=&quot;lazy&quot; width=&quot;100&quot; src=&quot;/img/2024/Funnel.webp&quot; alt=&quot;Funnel&quot; style=&quot;max-width: minmax(80px, 30%); aspect-ratio: 1 / 1;&quot; /&gt; 
  &lt;/div&gt;
  &lt;div class=&quot;flag__body&quot;&gt;
  &lt;p&gt;&lt;a href=&quot;https://apps.apple.com/app/id6466168248&quot;&gt;Funnel&lt;/a&gt; is a way to take quick notes and add them to your preferred apps with speed. It is handy for adding notes to Obsidian without waiting for sync.  &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;flag flag--responsive&quot;&gt;
  &lt;div class=&quot;flag__image&quot;&gt;
    &lt;img loading=&quot;lazy&quot; width=&quot;100&quot; src=&quot;/img/2024/Snipd.webp&quot; alt=&quot;Snipd&quot; style=&quot;max-width: minmax(80px, 30%); aspect-ratio: 1 / 1;&quot; /&gt; 
  &lt;/div&gt;
  &lt;div class=&quot;flag__body&quot;&gt;
  &lt;p&gt;&lt;a href=&quot;https://apps.apple.com/app/id1557206126&quot;&gt;Snipd&lt;/a&gt; is my new preferred podcast app this year. What separates it from other podcast apps is that you can take snips from the podcast to automatically transcribe and create notes that I can store in Obsidian.  &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;flag flag--responsive&quot;&gt;
  &lt;div class=&quot;flag__image&quot;&gt;
    &lt;img loading=&quot;lazy&quot; width=&quot;100&quot; src=&quot;/img/2024/Obsidian.webp&quot; alt=&quot;Snipd&quot; style=&quot;max-width: minmax(80px, 30%); aspect-ratio: 1 / 1;&quot; /&gt; 
  &lt;/div&gt;
  &lt;div class=&quot;flag__body&quot;&gt;
  &lt;p&gt;&lt;a href=&quot;https://obsidian.md&quot;&gt;Obsidian&lt;/a&gt; has been my most used tool last year. I actually added over 1 400 files to my Obsidian notes this year. On average, it&apos;s 13 lines per file, so it&apos;s quite a lot of information. But by using the PARA structure I wrote about earlier, I find it reasonably easy to find what I&apos;m looking for at any minute.  &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h2 id=&quot;plans-and-goals-for-2024&quot;&gt;Plans and goals for 2024&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;New kid in town – this is definitely going to be the theme of the year&lt;/li&gt;
  &lt;li&gt;Recovery of my shoulder&lt;/li&gt;
  &lt;li&gt;Launch the Mac app&lt;/li&gt;
  &lt;li&gt;Write more regularly on the blog&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>Lindy effect</title>
   <link href="https://hauken.no/lindy/"/>
   <updated>2023-08-16T00:00:00+00:00</updated>
   <id>https://hauken.no/lindy/</id>
   <content type="html">&lt;figure class=&quot;post__wide&quot;&gt;
	&lt;svg width=&quot;672&quot; height=&quot;300&quot; viewBox=&quot;0 0 672 300&quot; style=&quot;width: 100%; height: auto;&quot; fill=&quot;none&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
&lt;style type=&quot;text/css&quot;&gt;

    :root {
            --svg-color: #000;
        }
    @media (prefers-color-scheme: dark) {
        :root {
            --svg-color: #fafafa;
        }
    }
&lt;/style&gt;
&lt;path d=&quot;M49.8086 1.46833C49.5375 1.19715 49.0978 1.19715 48.8266 1.46833L44.4074 5.88749C44.1363 6.15867 44.1363 6.59835 44.4074 6.86953C44.6786 7.14071 45.1183 7.14071 45.3895 6.86953L49.3176 2.94139L53.2458 6.86953C53.517 7.14071 53.9566 7.14071 54.2278 6.86953C54.499 6.59835 54.499 6.15867 54.2278 5.88749L49.8086 1.46833ZM671.305 272.776C671.576 272.505 671.576 272.065 671.305 271.794L666.886 267.375C666.614 267.104 666.175 267.104 665.904 267.375C665.632 267.646 665.632 268.086 665.904 268.357L669.832 272.285L665.904 276.213C665.632 276.484 665.632 276.924 665.904 277.195C666.175 277.466 666.614 277.466 666.886 277.195L671.305 272.776ZM50.012 269.507V1.95935H48.6232V269.507H50.012ZM52.0952 272.979H670.814V271.591H52.0952V272.979ZM48.6232 269.507C48.6232 271.425 50.1777 272.979 52.0952 272.979V271.591C50.9447 271.591 50.012 270.658 50.012 269.507H48.6232Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M653.761 8.22072C654.079 7.52301 653.772 6.69911 653.074 6.38049L641.704 1.1882C641.007 0.869577 640.183 1.17688 639.864 1.87459C639.546 2.5723 639.853 3.39619 640.551 3.71482L650.657 8.33019L646.042 18.4367C645.723 19.1344 646.03 19.9583 646.728 20.2769C647.426 20.5955 648.25 20.2882 648.568 19.5905L653.761 8.22072ZM62.5815 259.779C168.796 259.779 268.955 214.684 366.21 160.856C463.581 106.964 557.938 44.3957 652.983 8.94504L652.012 6.34256C556.71 41.8891 461.948 104.693 364.865 158.426C267.669 212.221 168.042 257.001 62.5815 257.001L62.5815 259.779Z&quot; fill=&quot;#08A9E0&quot; /&gt;
&lt;path d=&quot;M26.192 237.646L35.9774 237.646L35.9774 238.867L27.2906 238.867L27.2906 243.586L26.192 243.586L26.192 237.646Z&quot; fill=&quot;var(--svg-color)&quot; fill-opacity=&quot;0.2&quot; /&gt;
&lt;path d=&quot;M25.9615 249.242C25.9615 248.306 26.1694 247.504 26.5854 246.835C27.0058 246.166 27.6003 245.65 28.3688 245.289C29.1374 244.931 30.0416 244.753 31.0814 244.753L31.0949 244.753C32.1438 244.753 33.0502 244.934 33.8142 245.295C34.5782 245.661 35.1682 246.179 35.5841 246.848C36 247.522 36.208 248.32 36.208 249.242C36.208 250.169 36 250.967 35.5841 251.636C35.1682 252.309 34.576 252.827 33.8074 253.189C33.0434 253.55 32.1392 253.731 31.0949 253.731L31.0814 253.731C30.0416 253.731 29.1374 253.55 28.3688 253.189C27.6048 252.832 27.0126 252.316 26.5921 251.643C26.1717 250.973 25.9615 250.173 25.9615 249.242ZM27.0872 249.242C27.0872 249.911 27.2522 250.487 27.5822 250.971C27.9122 251.455 28.3756 251.828 28.9724 252.09C29.5736 252.352 30.2766 252.483 31.0814 252.483L31.0949 252.483C31.9087 252.483 32.6139 252.352 33.2107 252.09C33.8074 251.828 34.2686 251.455 34.5941 250.971C34.9196 250.487 35.0823 249.911 35.0823 249.242C35.0823 248.577 34.9196 248.003 34.5941 247.52C34.2686 247.036 33.8074 246.661 33.2107 246.394C32.6139 246.132 31.9087 246.001 31.0949 246.001L31.0814 246.001C30.2766 246.001 29.5736 246.129 28.9724 246.387C28.3756 246.645 27.9122 247.015 27.5822 247.499C27.2522 247.983 27.0872 248.564 27.0872 249.242Z&quot; fill=&quot;var(--svg-color)&quot; fill-opacity=&quot;0.2&quot; /&gt;
&lt;path d=&quot;M26.192 257.468L35.9774 254.803L35.9774 256.078L28.023 258.024L28.023 258.105L35.9774 260.295L35.9774 261.53L28.023 263.72L28.023 263.801L35.9774 265.748L35.9774 267.023L26.192 264.357L26.192 263.205L33.9159 260.953L33.9159 260.872L26.192 258.621L26.192 257.468Z&quot; fill=&quot;var(--svg-color)&quot; fill-opacity=&quot;0.2&quot; /&gt;
&lt;path d=&quot;M23.8866 61.031L35.6291 61.031L35.6291 62.4958L25.2049 62.4958L25.2049 68.1595L23.8866 68.1595L23.8866 61.031Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M23.8866 70.5031L35.6291 70.5031L35.6291 71.9679L23.8866 71.9679L23.8866 70.5031Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M23.8866 74.9625L35.6291 74.9625L35.6291 82.091L34.3108 82.091L34.3108 76.4272L30.2746 76.4272L30.2746 81.6271L28.9726 81.6271L28.9726 76.4272L23.8866 76.4272L23.8866 74.9625Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M23.8866 84.4997L35.6291 84.4997L35.6291 91.7747L34.3108 91.7747L34.3108 85.9644L30.5431 85.9644L30.5431 91.4736L29.2411 91.4736L29.2411 85.9644L25.2049 85.9644L25.2049 91.7747L23.8866 91.7747L23.8866 84.4997Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M23.8866 99.1147L35.6291 99.1147L35.6291 106.39L34.3108 106.39L34.3108 100.579L30.5431 100.579L30.5431 106.089L29.2411 106.089L29.2411 100.579L25.2049 100.579L25.2049 106.39L23.8866 106.39L23.8866 99.1147Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M23.8866 108.269L30.299 112.623L29.1679 112.273L29.8189 112.273L35.6291 108.318L35.6291 110.084L30.9012 113.225L30.9012 113.893L30.3804 112.924L35.6291 116.448L35.6291 118.116L29.7456 114.055L29.0946 114.055L30.2258 113.705L23.8866 118.026L23.8866 116.269L28.5738 113.144L28.5738 112.477L29.0865 113.445L23.8866 109.93L23.8866 108.269Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M28.0774 121.086L29.3794 121.086L29.3794 124.406C29.3794 125.247 29.5964 125.898 30.0304 126.359C30.4699 126.82 31.0748 127.051 31.8451 127.051L31.8614 127.051C32.6372 127.051 33.2421 126.82 33.6761 126.359C34.1101 125.898 34.3271 125.247 34.3271 124.406L34.3271 121.086L35.6291 121.086L35.6291 124.781C35.6291 125.518 35.4718 126.169 35.1571 126.734C34.8425 127.298 34.403 127.74 33.8388 128.06C33.2746 128.385 32.6209 128.548 31.8777 128.548L31.8614 128.548C31.1182 128.548 30.4617 128.385 29.8921 128.06C29.3225 127.74 28.8776 127.298 28.5576 126.734C28.2375 126.169 28.0774 125.518 28.0774 124.781L28.0774 121.086ZM23.8866 120.354L35.6291 120.354L35.6291 121.818L23.8866 121.818L23.8866 120.354Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M23.8866 130.949L35.6291 130.949L35.6291 138.224L34.3108 138.224L34.3108 132.414L30.5431 132.414L30.5431 137.923L29.2411 137.923L29.2411 132.414L25.2049 132.414L25.2049 138.224L23.8866 138.224L23.8866 130.949Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M23.6099 145.605C23.6099 144.541 23.8595 143.622 24.3586 142.846C24.8577 142.07 25.5656 141.471 26.4825 141.048C27.3993 140.63 28.487 140.421 29.7456 140.421L29.7619 140.421C31.0259 140.421 32.1164 140.63 33.0332 141.048C33.95 141.471 34.658 142.067 35.1571 142.838C35.6562 143.614 35.9058 144.533 35.9058 145.596C35.9058 146.421 35.743 147.17 35.4175 147.842C35.0974 148.52 34.6499 149.079 34.0748 149.519C33.5052 149.958 32.846 150.235 32.0974 150.349L32.0811 150.341L32.0811 148.868L32.0974 148.86C32.6019 148.729 33.0359 148.51 33.3994 148.2C33.7683 147.891 34.0531 147.514 34.2538 147.069C34.4546 146.63 34.5549 146.139 34.5549 145.596C34.5549 144.848 34.3596 144.197 33.969 143.643C33.5784 143.095 33.0251 142.672 32.309 142.374C31.5929 142.076 30.7438 141.926 29.7619 141.926L29.7456 141.926C28.7691 141.926 27.9228 142.076 27.2067 142.374C26.4906 142.672 25.9373 143.095 25.5467 143.643C25.1561 144.197 24.9608 144.85 24.9608 145.605C24.9608 146.152 25.0476 146.649 25.2212 147.094C25.4002 147.539 25.6524 147.913 25.978 148.217C26.3089 148.52 26.6995 148.732 27.1498 148.851L27.166 148.868L27.166 150.349L27.1498 150.349C26.4337 150.219 25.8098 149.936 25.2781 149.502C24.7519 149.068 24.3423 148.518 24.0494 147.85C23.7564 147.189 23.6099 146.44 23.6099 145.605Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M23.8866 155.451L34.3108 155.451L34.3108 151.667L35.6291 151.667L35.6291 160.7L34.3108 160.7L34.3108 156.916L23.8866 156.916L23.8866 155.451Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M23.8866 160.643L35.6291 164.972L35.6291 166.095L33.733 166.095L33.733 165.631L23.8866 162.181L23.8866 160.643ZM27.2474 162.604L28.4925 163.06L28.4925 168.365L27.2474 168.821L27.2474 162.604ZM23.8866 169.212L33.733 165.761L35.6291 165.761L35.6291 166.42L23.8866 170.75L23.8866 169.212Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M23.8866 172.808L35.6291 172.808L35.6291 174.232L25.9779 180.962L26.4906 179.986L26.4906 180.734L35.6291 180.734L35.6291 182.183L23.8866 182.183L23.8866 180.759L33.5052 174.029L32.9925 175.005L32.9925 174.257L23.8866 174.257L23.8866 172.808Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M23.6099 189.905C23.6099 188.842 23.8595 187.922 24.3586 187.147C24.8577 186.371 25.5656 185.771 26.4825 185.348C27.3993 184.931 28.487 184.722 29.7456 184.722L29.7619 184.722C31.0259 184.722 32.1164 184.931 33.0332 185.348C33.95 185.771 34.658 186.368 35.1571 187.139C35.6562 187.914 35.9058 188.834 35.9058 189.897C35.9058 190.722 35.743 191.47 35.4175 192.143C35.0974 192.821 34.6499 193.38 34.0748 193.819C33.5052 194.259 32.846 194.536 32.0974 194.65L32.0811 194.641L32.0811 193.168L32.0974 193.16C32.6019 193.03 33.0359 192.81 33.3994 192.501C33.7683 192.192 34.0531 191.815 34.2538 191.37C34.4546 190.931 34.5549 190.44 34.5549 189.897C34.5549 189.149 34.3596 188.498 33.969 187.944C33.5784 187.396 33.0251 186.973 32.309 186.675C31.5929 186.376 30.7438 186.227 29.7619 186.227L29.7456 186.227C28.7691 186.227 27.9228 186.376 27.2067 186.675C26.4906 186.973 25.9373 187.396 25.5467 187.944C25.1561 188.498 24.9608 189.151 24.9608 189.905C24.9608 190.453 25.0476 190.95 25.2212 191.395C25.4002 191.839 25.6524 192.214 25.9779 192.517C26.3089 192.821 26.6995 193.033 27.1498 193.152L27.166 193.168L27.166 194.65L27.1498 194.65C26.4337 194.519 25.8098 194.237 25.2781 193.803C24.7519 193.369 24.3423 192.819 24.0494 192.151C23.7564 191.489 23.6099 190.741 23.6099 189.905Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M23.8866 200.094L28.94 200.094L35.6291 195.927L35.6291 197.595L30.4129 200.761L30.4129 200.891L35.6291 204.057L35.6291 205.725L28.94 201.558L23.8866 201.558L23.8866 200.094Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M16.1417 106.756L0.957087 103.045L0.957087 101.686L16.1417 105.397L16.1417 106.756Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M3.8866 116.342L15.6291 112.013L15.6291 113.551L5.78265 117.001L5.78265 117.131L15.6291 120.582L15.6291 122.12L3.8866 117.79L3.8866 116.342Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M3.8866 122.185L15.6291 126.514L15.6291 127.637L13.733 127.637L13.733 127.173L3.8866 123.723L3.8866 122.185ZM7.24741 124.146L8.49246 124.602L8.49246 129.907L7.24741 130.363L7.24741 124.146ZM3.8866 130.754L13.733 127.303L15.6291 127.303L15.6291 127.962L3.8866 132.292L3.8866 130.754Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M3.8866 134.35L15.6291 134.35L15.6291 135.815L5.20489 135.815L5.20489 141.479L3.8866 141.479L3.8866 134.35Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M3.60992 148.07C3.60992 147.099 3.79166 146.264 4.15514 145.564C4.51862 144.869 5.02315 144.335 5.66873 143.961C6.31973 143.586 7.0711 143.399 7.92283 143.399L15.6291 143.399L15.6291 144.864L8.02048 144.864C7.11992 144.864 6.38483 145.143 5.8152 145.702C5.24557 146.266 4.96076 147.056 4.96076 148.07C4.96076 149.09 5.24557 149.877 5.8152 150.43C6.38483 150.983 7.11992 151.26 8.02048 151.26L15.6291 151.26L15.6291 152.725L7.92282 152.725C7.07109 152.725 6.31973 152.538 5.66873 152.163C5.02315 151.794 4.51862 151.263 4.15514 150.568C3.79166 149.874 3.60992 149.041 3.60992 148.07Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M3.8866 155.703L15.6291 155.703L15.6291 162.978L14.3108 162.978L14.3108 157.168L10.5431 157.168L10.5431 162.677L9.24111 162.677L9.24111 157.168L5.20489 157.168L5.20488 162.978L3.8866 162.978L3.8866 155.703Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M26.192 1.2478L35.9774 1.2478L35.9774 2.46843L31.7459 2.46843L31.7459 7.83922L35.9774 7.83922L35.9774 9.05985L26.192 9.05985L26.192 7.83921L30.6474 7.83922L30.6474 2.46843L26.192 2.46843L26.192 1.2478Z&quot; fill=&quot;var(--svg-color)&quot; fill-opacity=&quot;0.2&quot; /&gt;
&lt;path d=&quot;M26.192 11.5554L35.9774 11.5554L35.9774 12.776L26.192 12.776L26.192 11.5554Z&quot; fill=&quot;var(--svg-color)&quot; fill-opacity=&quot;0.2&quot; /&gt;
&lt;path d=&quot;M25.9615 19.3267C25.9615 18.4271 26.1694 17.645 26.5854 16.9804C27.0058 16.3158 27.6003 15.8004 28.3688 15.4343C29.1374 15.0726 30.0416 14.8918 31.0814 14.8918L31.0949 14.8918C32.1257 14.8918 33.0231 15.0749 33.7871 15.441C34.5556 15.8072 35.1501 16.3226 35.5706 16.9872C35.9955 17.6563 36.208 18.4361 36.208 19.3267C36.208 20.0501 36.0792 20.6943 35.8215 21.2594C35.5683 21.829 35.2112 22.2969 34.75 22.6631C34.2889 23.0338 33.7487 23.2825 33.1293 23.4091L33.0615 23.4226L33.0615 22.1884L33.1293 22.1681C33.7622 21.9692 34.246 21.6278 34.5805 21.1441C34.915 20.6604 35.0823 20.0546 35.0823 19.3267C35.0823 18.6802 34.9173 18.1174 34.5873 17.6382C34.2618 17.1635 33.8006 16.795 33.2039 16.5328C32.6071 16.2706 31.9041 16.1395 31.0949 16.1395L31.0814 16.1395C30.2631 16.1395 29.5533 16.2684 28.952 16.526C28.3553 16.7883 27.8941 17.1567 27.5686 17.6314C27.2477 18.1106 27.0872 18.678 27.0872 19.3335C27.0872 19.9167 27.2025 20.4275 27.433 20.8661C27.6681 21.3091 27.9936 21.6527 28.4095 21.8968C28.8254 22.141 29.3092 22.263 29.8607 22.263L30.0981 22.263L30.0981 19.5166L31.1695 19.5166L31.1695 23.4836L29.976 23.4836C29.1713 23.4836 28.4683 23.3096 27.867 22.9615C27.2657 22.6179 26.7978 22.1342 26.4633 21.5103C26.1288 20.8909 25.9615 20.1631 25.9615 19.3267Z&quot; fill=&quot;var(--svg-color)&quot; fill-opacity=&quot;0.2&quot; /&gt;
&lt;path d=&quot;M26.192 25.6469L35.9774 25.6469L35.9774 26.8675L31.7459 26.8675L31.7459 32.2383L35.9774 32.2383L35.9774 33.4589L26.192 33.4589L26.192 32.2383L30.6473 32.2383L30.6473 26.8675L26.192 26.8675L26.192 25.6469Z&quot; fill=&quot;var(--svg-color)&quot; fill-opacity=&quot;0.2&quot; /&gt;
&lt;path d=&quot;M210.457 296.306V285.881H206.673V284.563H215.706V285.881H211.922V296.306H210.457Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M217.968 296.306V284.563H219.433V296.306H217.968Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M222.427 296.306V284.563H224.128L228.148 294.361H228.278L232.298 284.563H233.999V296.306H232.632V287.338H231.916L233.56 284.889L228.832 296.306H227.595L222.875 284.889L224.511 287.338H223.794V296.306H222.427Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M236.994 296.306V284.563H244.269V285.881H238.458V289.649H243.967V290.951H238.458V294.987H244.269V296.306H236.994Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M255.458 296.582C254.601 296.582 253.852 296.444 253.212 296.167C252.577 295.885 252.072 295.5 251.698 295.012C251.329 294.518 251.115 293.954 251.055 293.319L251.047 293.23H252.512L252.52 293.319C252.558 293.71 252.707 294.049 252.968 294.336C253.233 294.618 253.586 294.838 254.025 294.995C254.47 295.153 254.975 295.231 255.539 295.231C256.071 295.231 256.543 295.147 256.955 294.979C257.373 294.806 257.701 294.567 257.94 294.263C258.178 293.959 258.298 293.609 258.298 293.213V293.205C258.298 292.717 258.119 292.307 257.761 291.976C257.403 291.64 256.819 291.382 256.011 291.203L254.709 290.918C253.532 290.658 252.675 290.257 252.138 289.714C251.606 289.166 251.34 288.466 251.34 287.615V287.606C251.346 286.955 251.522 286.38 251.869 285.881C252.222 285.382 252.707 284.992 253.326 284.71C253.95 284.427 254.666 284.286 255.474 284.286C256.255 284.286 256.947 284.427 257.549 284.71C258.151 284.986 258.629 285.361 258.981 285.833C259.339 286.304 259.537 286.833 259.575 287.419L259.583 287.533H258.119L258.102 287.427C258.048 287.08 257.907 286.774 257.679 286.508C257.451 286.237 257.148 286.022 256.768 285.865C256.388 285.708 255.943 285.632 255.433 285.637C254.945 285.637 254.506 285.713 254.115 285.865C253.724 286.017 253.412 286.237 253.179 286.524C252.951 286.806 252.837 287.154 252.837 287.566V287.574C252.837 288.04 253.011 288.434 253.358 288.754C253.705 289.074 254.278 289.321 255.075 289.494L256.377 289.787C257.603 290.059 258.479 290.452 259.006 290.967C259.532 291.483 259.795 292.164 259.795 293.01V293.018C259.795 293.75 259.616 294.382 259.258 294.914C258.9 295.446 258.395 295.858 257.744 296.151C257.093 296.438 256.331 296.582 255.458 296.582Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M267.168 296.582C266.045 296.582 265.082 296.333 264.279 295.834C263.476 295.329 262.857 294.616 262.423 293.693C261.995 292.771 261.781 291.686 261.781 290.438V290.422C261.781 289.163 261.998 288.076 262.432 287.159C262.871 286.242 263.492 285.534 264.295 285.035C265.103 284.536 266.061 284.286 267.168 284.286C268.28 284.286 269.237 284.536 270.04 285.035C270.848 285.534 271.47 286.245 271.904 287.167C272.338 288.084 272.555 289.169 272.555 290.422V290.438C272.555 291.686 272.338 292.771 271.904 293.693C271.475 294.61 270.857 295.321 270.048 295.825C269.245 296.33 268.285 296.582 267.168 296.582ZM267.168 295.231C267.971 295.231 268.662 295.033 269.243 294.637C269.823 294.241 270.271 293.685 270.585 292.969C270.9 292.248 271.057 291.404 271.057 290.438V290.422C271.057 289.446 270.9 288.599 270.585 287.883C270.271 287.167 269.823 286.614 269.243 286.223C268.662 285.833 267.971 285.637 267.168 285.637C266.37 285.637 265.681 285.833 265.101 286.223C264.52 286.614 264.07 287.167 263.75 287.883C263.435 288.599 263.278 289.446 263.278 290.422V290.438C263.278 291.404 263.432 292.248 263.742 292.969C264.051 293.685 264.496 294.241 265.076 294.637C265.657 295.033 266.354 295.231 267.168 295.231Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M275.094 296.306V284.563H276.794L280.814 294.361H280.944L284.964 284.563H286.665V296.306H285.298V287.338H284.582L286.226 284.889L281.498 296.306H280.261L275.541 284.889L277.177 287.338H276.461V296.306H275.094Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M289.66 296.306V284.563H296.935V285.881H291.125V289.649H296.634V290.951H291.125V294.987H296.935V296.306H289.66Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M302.639 296.306V285.881H298.855V284.563H307.888V285.881H304.104V296.306H302.639Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M310.15 296.306V284.563H311.615V289.641H318.06V284.563H319.525V296.306H318.06V290.959H311.615V296.306H310.15Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M322.519 296.306V284.563H323.984V296.306H322.519Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M326.979 296.306V284.563H328.403L335.132 294.214L334.156 293.702H334.905V284.563H336.353V296.306H334.929L328.199 286.687L329.176 287.2H328.427V296.306H326.979Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M344.214 296.582C343.134 296.582 342.196 296.333 341.398 295.834C340.601 295.329 339.982 294.616 339.543 293.693C339.109 292.771 338.892 291.686 338.892 290.438V290.422C338.892 289.185 339.112 288.108 339.551 287.191C339.991 286.269 340.609 285.556 341.406 285.051C342.209 284.541 343.145 284.286 344.214 284.286C345.082 284.286 345.855 284.441 346.533 284.75C347.217 285.054 347.778 285.483 348.218 286.036C348.662 286.589 348.961 287.238 349.113 287.981L349.129 288.062H347.648L347.624 287.981C347.385 287.221 346.975 286.641 346.395 286.239C345.814 285.838 345.087 285.637 344.214 285.637C343.438 285.637 342.763 285.835 342.188 286.231C341.618 286.622 341.176 287.175 340.861 287.891C340.547 288.607 340.389 289.451 340.389 290.422V290.438C340.389 291.42 340.544 292.272 340.853 292.994C341.168 293.71 341.61 294.263 342.18 294.654C342.755 295.039 343.435 295.231 344.222 295.231C344.922 295.231 345.535 295.093 346.061 294.816C346.593 294.534 347.005 294.144 347.298 293.645C347.591 293.145 347.737 292.565 347.737 291.903V291.618H344.442V290.333H349.202V291.765C349.202 292.73 348.993 293.574 348.576 294.296C348.163 295.017 347.583 295.579 346.834 295.98C346.091 296.381 345.218 296.582 344.214 296.582Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M356.485 296.306V284.563H357.95V289.641H364.395V284.563H365.86V296.306H364.395V290.959H357.95V296.306H356.485Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M367.919 296.306L372.248 284.563H373.371V286.459H372.907L369.457 296.306H367.919ZM369.88 292.945L370.335 291.7H375.641L376.097 292.945H369.88ZM376.487 296.306L373.037 286.459V284.563H373.696L378.025 296.306H376.487Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M383.933 296.582C383.076 296.582 382.327 296.444 381.687 296.167C381.053 295.885 380.548 295.5 380.174 295.012C379.805 294.518 379.591 293.954 379.531 293.319L379.523 293.23H380.987L380.996 293.319C381.034 293.71 381.183 294.049 381.443 294.336C381.709 294.618 382.062 294.838 382.501 294.995C382.946 295.153 383.45 295.231 384.015 295.231C384.546 295.231 385.018 295.147 385.431 294.979C385.848 294.806 386.177 294.567 386.415 294.263C386.654 293.959 386.773 293.609 386.773 293.213V293.205C386.773 292.717 386.594 292.307 386.236 291.976C385.878 291.64 385.295 291.382 384.487 291.203L383.185 290.918C382.007 290.658 381.15 290.257 380.613 289.714C380.082 289.166 379.816 288.466 379.816 287.615V287.606C379.821 286.955 379.997 286.38 380.345 285.881C380.697 285.382 381.183 284.992 381.801 284.71C382.425 284.427 383.141 284.286 383.95 284.286C384.731 284.286 385.422 284.427 386.025 284.71C386.627 284.986 387.104 285.361 387.457 285.833C387.815 286.304 388.013 286.833 388.051 287.419L388.059 287.533H386.594L386.578 287.427C386.524 287.08 386.383 286.774 386.155 286.508C385.927 286.237 385.623 286.022 385.243 285.865C384.864 285.708 384.419 285.632 383.909 285.637C383.421 285.637 382.981 285.713 382.591 285.865C382.2 286.017 381.888 286.237 381.655 286.524C381.427 286.806 381.313 287.154 381.313 287.566V287.574C381.313 288.04 381.487 288.434 381.834 288.754C382.181 289.074 382.753 289.321 383.551 289.494L384.853 289.787C386.079 290.059 386.955 290.452 387.481 290.967C388.007 291.483 388.271 292.164 388.271 293.01V293.018C388.271 293.75 388.092 294.382 387.734 294.914C387.375 295.446 386.871 295.858 386.22 296.151C385.569 296.438 384.807 296.582 383.933 296.582Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M396.131 296.306V295.012H399.761C400.645 295.012 401.315 294.835 401.771 294.483C402.226 294.13 402.454 293.617 402.454 292.945V292.928C402.454 292.478 402.349 292.101 402.137 291.797C401.925 291.494 401.608 291.266 401.185 291.114C400.767 290.962 400.246 290.886 399.622 290.886H396.131V289.625H399.207C400.097 289.625 400.764 289.467 401.209 289.153C401.66 288.838 401.885 288.371 401.885 287.753V287.737C401.885 287.14 401.681 286.679 401.274 286.353C400.873 286.022 400.309 285.857 399.582 285.857H396.131V284.563H399.891C400.613 284.563 401.231 284.682 401.746 284.921C402.267 285.16 402.666 285.499 402.943 285.938C403.225 286.372 403.366 286.888 403.366 287.484V287.501C403.366 287.908 403.274 288.29 403.089 288.648C402.91 289.006 402.669 289.307 402.365 289.551C402.061 289.795 401.719 289.953 401.339 290.023V290.154C401.877 290.219 402.34 290.379 402.731 290.634C403.122 290.889 403.423 291.22 403.634 291.626C403.851 292.028 403.96 292.486 403.96 293.002V293.018C403.96 293.702 403.8 294.29 403.48 294.784C403.165 295.272 402.712 295.649 402.121 295.915C401.529 296.175 400.816 296.306 399.981 296.306H396.131ZM395.399 296.306V284.563H396.864V296.306H395.399Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M406.352 296.306V284.563H413.627V285.881H407.817V289.649H413.326V290.951H407.817V294.987H413.627V296.306H406.352Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M416.28 296.306V284.563H423.555V285.881H417.745V289.649H423.254V290.951H417.745V294.987H423.555V296.306H416.28Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M426.208 296.306V284.563H427.632L434.362 294.214L433.385 293.702H434.134V284.563H435.582V296.306H434.158L427.428 286.687L428.405 287.2H427.656V296.306H426.208Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M442.328 296.306L446.657 284.563H447.78V286.459H447.317L443.866 296.306H442.328ZM444.289 292.945L444.745 291.7H450.051L450.507 292.945H444.289ZM450.897 296.306L447.447 286.459V284.563H448.106L452.435 296.306H450.897Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M454.494 296.306V284.563H458.978C459.732 284.563 460.388 284.71 460.947 285.002C461.511 285.29 461.948 285.694 462.257 286.215C462.566 286.736 462.721 287.349 462.721 288.054V288.07C462.721 288.884 462.512 289.589 462.094 290.186C461.677 290.783 461.099 291.198 460.361 291.431L463.079 296.306H461.362L458.848 291.659C458.837 291.659 458.823 291.659 458.807 291.659C458.791 291.659 458.777 291.659 458.766 291.659H455.959V296.306H454.494ZM455.959 290.357H458.848C459.602 290.357 460.182 290.164 460.589 289.779C461.001 289.389 461.207 288.835 461.207 288.119V288.103C461.207 287.403 460.993 286.855 460.565 286.459C460.136 286.063 459.542 285.865 458.782 285.865H455.959V290.357Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M470.313 296.582C469.19 296.582 468.227 296.333 467.424 295.834C466.622 295.329 466.003 294.616 465.569 293.693C465.141 292.771 464.926 291.686 464.926 290.438V290.422C464.926 289.163 465.143 288.076 465.577 287.159C466.017 286.242 466.638 285.534 467.441 285.035C468.249 284.536 469.207 284.286 470.313 284.286C471.425 284.286 472.383 284.536 473.186 285.035C473.994 285.534 474.615 286.245 475.049 287.167C475.483 288.084 475.7 289.169 475.7 290.422V290.438C475.7 291.686 475.483 292.771 475.049 293.693C474.621 294.61 474.002 295.321 473.194 295.825C472.391 296.33 471.431 296.582 470.313 296.582ZM470.313 295.231C471.116 295.231 471.808 295.033 472.388 294.637C472.969 294.241 473.416 293.685 473.731 292.969C474.046 292.248 474.203 291.404 474.203 290.438V290.422C474.203 289.446 474.046 288.599 473.731 287.883C473.416 287.167 472.969 286.614 472.388 286.223C471.808 285.833 471.116 285.637 470.313 285.637C469.516 285.637 468.827 285.833 468.246 286.223C467.666 286.614 467.216 287.167 466.896 287.883C466.581 288.599 466.424 289.446 466.424 290.422V290.438C466.424 291.404 466.578 292.248 466.887 292.969C467.197 293.685 467.642 294.241 468.222 294.637C468.802 295.033 469.5 295.231 470.313 295.231Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M482.894 296.582C481.923 296.582 481.087 296.4 480.388 296.037C479.693 295.674 479.159 295.169 478.785 294.523C478.41 293.872 478.223 293.121 478.223 292.269V284.563H479.688V292.172C479.688 293.072 479.967 293.807 480.526 294.377C481.09 294.947 481.88 295.231 482.894 295.231C483.914 295.231 484.701 294.947 485.254 294.377C485.807 293.807 486.084 293.072 486.084 292.172V284.563H487.549V292.269C487.549 293.121 487.362 293.872 486.987 294.523C486.618 295.169 486.087 295.674 485.392 296.037C484.698 296.4 483.865 296.582 482.894 296.582Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M490.527 296.306V284.563H491.951L498.681 294.214L497.704 293.702H498.453V284.563H499.901V296.306H498.477L491.748 286.687L492.724 287.2H491.975V296.306H490.527Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M502.896 296.306V284.563H506.924C508.085 284.563 509.078 284.796 509.902 285.263C510.733 285.724 511.367 286.391 511.807 287.265C512.246 288.138 512.466 289.191 512.466 290.422V290.438C512.466 291.67 512.246 292.725 511.807 293.604C511.367 294.477 510.735 295.147 509.911 295.614C509.086 296.075 508.091 296.306 506.924 296.306H502.896ZM504.361 294.987H506.827C507.7 294.987 508.446 294.808 509.064 294.45C509.683 294.092 510.155 293.574 510.48 292.896C510.806 292.218 510.969 291.404 510.969 290.455V290.438C510.969 289.484 510.803 288.667 510.472 287.989C510.147 287.305 509.675 286.785 509.056 286.427C508.438 286.063 507.695 285.881 506.827 285.881H504.361V294.987Z&quot; fill=&quot;var(--svg-color)&quot; /&gt;
&lt;path d=&quot;M63.8293 294.694V284.909H65.0161L70.6242 292.952L69.8104 292.524H70.4343V284.909H71.6414V294.694H70.4547L64.8465 286.679L65.6603 287.106H65.0364V294.694H63.8293Z&quot; fill=&quot;var(--svg-color)&quot; fill-opacity=&quot;0.2&quot; /&gt;
&lt;path d=&quot;M74.1369 294.694V284.909H80.1994V286.008H75.3575V289.147H79.9485V290.232H75.3575V293.596H80.1994V294.694H74.1369Z&quot; fill=&quot;var(--svg-color)&quot; fill-opacity=&quot;0.2&quot; /&gt;
&lt;path d=&quot;M84.4377 294.694L81.7726 284.909H83.0475L84.9937 292.863H85.0751L87.2655 284.909H88.4997L90.69 292.863H90.7714L92.7176 284.909H93.9925L91.3275 294.694H90.1747L87.9233 286.97H87.8419L85.5905 294.694H84.4377Z&quot; fill=&quot;var(--svg-color)&quot; fill-opacity=&quot;0.2&quot; /&gt;
&lt;path d=&quot;M615.537 294.925C614.601 294.925 613.799 294.717 613.13 294.301C612.461 293.881 611.945 293.286 611.584 292.518C611.227 291.749 611.048 290.845 611.048 289.805V289.792C611.048 288.743 611.229 287.836 611.591 287.072C611.957 286.308 612.474 285.718 613.144 285.302C613.817 284.886 614.615 284.678 615.537 284.678C616.464 284.678 617.262 284.886 617.931 285.302C618.605 285.718 619.122 286.31 619.484 287.079C619.846 287.843 620.027 288.747 620.027 289.792V289.805C620.027 290.845 619.846 291.749 619.484 292.518C619.127 293.282 618.611 293.874 617.938 294.294C617.269 294.715 616.469 294.925 615.537 294.925ZM615.537 293.799C616.206 293.799 616.783 293.634 617.267 293.304C617.75 292.974 618.123 292.511 618.385 291.914C618.648 291.313 618.779 290.61 618.779 289.805V289.792C618.779 288.978 618.648 288.273 618.385 287.676C618.123 287.079 617.75 286.618 617.267 286.292C616.783 285.967 616.206 285.804 615.537 285.804C614.873 285.804 614.299 285.967 613.815 286.292C613.331 286.618 612.956 287.079 612.689 287.676C612.427 288.273 612.296 288.978 612.296 289.792V289.805C612.296 290.61 612.425 291.313 612.682 291.914C612.94 292.511 613.311 292.974 613.795 293.304C614.278 293.634 614.859 293.799 615.537 293.799Z&quot; fill=&quot;var(--svg-color)&quot; fill-opacity=&quot;0.2&quot; /&gt;
&lt;path d=&quot;M622.142 294.694V284.909H623.363V293.596H628.083V294.694H622.142Z&quot; fill=&quot;var(--svg-color)&quot; fill-opacity=&quot;0.2&quot; /&gt;
&lt;path d=&quot;M630.036 294.694V284.909H633.392C634.36 284.909 635.187 285.103 635.874 285.492C636.566 285.876 637.095 286.433 637.461 287.16C637.827 287.888 638.01 288.765 638.01 289.792V289.805C638.01 290.831 637.827 291.711 637.461 292.443C637.095 293.171 636.568 293.729 635.881 294.118C635.194 294.502 634.364 294.694 633.392 294.694H630.036ZM631.256 293.596H633.311C634.039 293.596 634.661 293.447 635.176 293.148C635.691 292.85 636.085 292.418 636.356 291.853C636.627 291.288 636.763 290.61 636.763 289.819V289.805C636.763 289.009 636.625 288.329 636.349 287.764C636.078 287.194 635.685 286.76 635.169 286.462C634.654 286.159 634.034 286.008 633.311 286.008H631.256V293.596Z&quot; fill=&quot;var(--svg-color)&quot; fill-opacity=&quot;0.2&quot; /&gt;
&lt;/svg&gt;

&lt;/figure&gt;

&lt;p&gt;One fundamental principle often goes overlooked in a world obsessed with the latest trends, fads, and shiny new objects – the Lindy effect.&lt;/p&gt;

&lt;p&gt;The Lindy effect states that the future lifespan of something is proportional to its current lifespan. In simpler terms, the longer something has been around, the longer it will likely stick around. This principle can be a valuable guiding force when deciding what tools and technologies to adopt.&lt;/p&gt;

&lt;h2 id=&quot;future-proof&quot;&gt;Future proof&lt;/h2&gt;
&lt;p&gt;For years, I relied on Evernote as my primary note-taking app. It had a sleek interface, powerful features, and a dedicated user base. However, after a while I realized a significant drawback – it stored notes in a proprietary format, making them non-portable and creating challenges when I wanted to switch platforms.&lt;/p&gt;

&lt;p&gt;This is why I switched to &lt;a href=&quot;https://obsidian.md&quot;&gt;Obsidian&lt;/a&gt; for note-taking in recent years. Obsidian stores notes in simple, plain text files — a format that has been in use since the dawn of computing. By choosing a tool that respects the enduring nature of plain text files, I essentially future-proof parts of my digital life.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“If you want your writing to still be readable on a computer from the 2060s or 2160s, it’s important that your notes can be read on a computer from the 1960s.”
– &lt;a href=&quot;https://stephanango.com/file-over-app&quot;&gt;Stephan Ango&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Whether Obsidian exists or not in the future, I will always have control over my notes because they are stored in a universal format, building my digital life on a solid foundation. I can even publish them on my blog using the same file format.&lt;/p&gt;

&lt;h2 id=&quot;learning-from-experience&quot;&gt;Learning from Experience&lt;/h2&gt;
&lt;p&gt;I have encountered the pain of technological obsolescence before – inaccessible old Flash webpages, proprietary RAW files, obsolete Sketch documents, and webpages I’ve designed that no longer function. These experiences have emphasized the significance of prioritizing longevity and flexibility in our ever-evolving digital landscape.&lt;/p&gt;

&lt;h2 id=&quot;the-robustness-of-an-item-is-proportional-to-its-life&quot;&gt;The robustness of an item is proportional to its life&lt;/h2&gt;
&lt;p&gt;The Lindy effect can be seen in many other areas too. Books, movies, and music that stand the test of time have something important to offer that goes beyond just being popular in the moment.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“If a book has been in print for forty years, I can expect it to be in print for another forty years. (…) Every year that passes without extinction doubles the additional life expectancy. This is an indicator of some robustness. The robustness of an item is proportional to its life!”
– Nassim Nicholas Taleb, Antifragile&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;so-just-use-old-things-then&quot;&gt;So just use old things then?&lt;/h2&gt;
&lt;p&gt;While the Lindy effect emphasizes the value of longevity and the reliability of established practices, it doesn’t necessarily mean we should avoid embracing new technologies or ideas altogether. In that case, I would never have adapted Figma, React, or other great tools that significantly improved my work. But the Lindy effect simply encourages us to approach new technologies (and content) critically and consider their potential for enduring value. A good question for this is asking yourself, “How can I access this in decade (or two)”?&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>How to use Figma for presentations</title>
   <link href="https://hauken.no/figma-for-presentations/"/>
   <updated>2023-08-04T00:00:00+00:00</updated>
   <id>https://hauken.no/figma-for-presentations/</id>
   <content type="html">&lt;p&gt;Forget about PowerPoint. Here is how to use Figma for presentations instead.&lt;/p&gt;

&lt;div class=&quot;post__callout&quot; role=&quot;alert&quot;&gt;
    &lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;17&quot; height=&quot;16&quot; viewBox=&quot;0 0 17 16&quot; fill=&quot;none&quot;&gt;   &lt;g fill=&quot;#08A9E0&quot; clip-path=&quot;url(#a)&quot;&gt;&lt;path d=&quot;M7.88 15.76A7.89 7.89 0 1 0 7.9 0a7.89 7.89 0 0 0 0 15.77Zm0-1.48a6.38 6.38 0 1 1 0-12.8 6.4 6.4 0 1 1 0 12.8Z&quot; /&gt;&lt;path d=&quot;M6.56 12.2h3.1c.36 0 .64-.25.64-.6s-.28-.61-.63-.61H8.8V7.33c0-.47-.24-.78-.68-.78H6.71a.6.6 0 1 0 0 1.21h.71V11h-.86a.62.62 0 0 0-.63.6c0 .36.28.62.63.62ZM7.8 5.36c.62 0 1.1-.49 1.1-1.1 0-.62-.48-1.1-1.1-1.1-.6 0-1.1.48-1.1 1.1 0 .61.5 1.1 1.1 1.1Z&quot; /&gt;&lt;/g&gt;&lt;defs&gt;&lt;clipPath id=&quot;a&quot;&gt;&lt;path fill=&quot;#fff&quot; d=&quot;M0 0h16.13v15.77H0z&quot; /&gt;&lt;/clipPath&gt;&lt;/defs&gt;&lt;/svg&gt;
    &lt;div&gt;
        &lt;strong&gt;Things have changed&lt;/strong&gt;&lt;br /&gt;This is an old blogpost written before the launch of &lt;a href=&quot;https://www.figma.com/slides/&quot;&gt;Figma slides&lt;/a&gt;.
    &lt;/div&gt;
&lt;/div&gt;

&lt;h2 id=&quot;why-use-figma-for-presentations&quot;&gt;Why use Figma for presentations?&lt;/h2&gt;

&lt;p&gt;Figma offers several advantages over PowerPoint, making it a great choice for creating visually appealing and collaborative presentations:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Improved Collaboration and Feedback:&lt;/strong&gt; Figma allows multiple users to simultaneously work on the same presentation and leave real-time feedback and comments.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Enhanced Design Flexibility:&lt;/strong&gt; With Figma, you have more control over the design elements, enabling you to create visually appealing presentations. For anyone using Figma for design, PowerPoint feels like a straitjacket.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Interactive prototypes (and video)&lt;/strong&gt;: Figma allows you to create interactive prototypes within your presentations.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Easy sharing and compatibility&lt;/strong&gt;: You can easily share your Figma presentations with others without worrying about compatibility issues.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Infinite Canvas:&lt;/strong&gt; Move your slides around like you want on an infinite canvas.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Observation mode:&lt;/strong&gt; Others can &lt;a href=&quot;https://www.figma.com/blog/figma-feature-highlight-observation-mode/&quot;&gt;follow your presentation&lt;/a&gt; remotely without screen-sharing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;getting-started-with-figma-for-presentations&quot;&gt;Getting Started with Figma for Presentations&lt;/h2&gt;

&lt;h3 id=&quot;creating-your-first-slide-in-figma&quot;&gt;Creating Your First Slide in Figma&lt;/h3&gt;

&lt;p&gt;Fire up Figma and get started creating your first frame. To do that, click &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;F&lt;/code&gt; and select Presentation &amp;gt; Slide 16:9 (on the right side of Figma) as the size of your slides. Congrats! You now have your first slide!&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;/img/2023/figma-frame.webp&quot; alt=&quot;Select slide size&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;organizing-presentation-frames&quot;&gt;Organizing Presentation Frames&lt;/h3&gt;

&lt;p&gt;The key to working with presentations in Figma is organizing your presentation frames ordered from left to right, then top to bottom. Just like you would read a book. There is no need to create &lt;a href=&quot;https://help.figma.com/hc/en-us/articles/360040315773-Create-connections-and-flows&quot;&gt;connections and flows&lt;/a&gt;.&lt;/p&gt;
&lt;figure class=&quot;post__full&quot;&gt;
    &lt;img src=&quot;/img/2023/figma-organize.webp&quot; alt=&quot;How to organize figma presentations&quot; loading=&quot;lazy&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;simplifying-slide-naming-with-super-tidy-plugin&quot;&gt;Simplifying Slide Naming with Super Tidy Plugin&lt;/h3&gt;

&lt;p&gt;Pro-tip: You don’t have to waste your time giving names to your slides. Instead of manually renaming frames, I automate the process using the wonderful &lt;a href=&quot;https://www.figma.com/community/plugin/731260060173130163/Super-Tidy&quot;&gt;Super Tidy plugin&lt;/a&gt; when I want to clean things up. (As you can see in the above image).&lt;/p&gt;

&lt;h2 id=&quot;template-slides-in-figma&quot;&gt;Template Slides in Figma&lt;/h2&gt;

&lt;h3 id=&quot;creating-component-templates-for-reusability&quot;&gt;Creating Component Templates for Reusability&lt;/h3&gt;

&lt;p&gt;Often when creating presentations, you want to reuse templates for slides. In Figma, you can create components: Create the base of each slide type, like a title slide, a section break, a top title, and a blank slide, and &lt;a href=&quot;https://help.figma.com/hc/en-us/articles/360038663154-Create-components-to-reuse-in-designs&quot;&gt;convert the frame to a component&lt;/a&gt; (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;⌥ ⌘ K)&lt;/code&gt;. I like to create this on a separate page to make sure these don’t come up when I present. To use your template slides, return to your first frame and &lt;a href=&quot;https://help.figma.com/hc/en-us/articles/360039150173-Create-an-instance-of-a-component&quot;&gt;place an instance&lt;/a&gt; of your new component inside it.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
    &lt;img src=&quot;/img/2023/figma-templates.webp&quot; alt=&quot;Example of Figma prentation templates&quot; loading=&quot;lazy&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;Make sure to use text &lt;a href=&quot;https://help.figma.com/hc/en-us/articles/5579474826519-Explore-component-properties#h_01G2Q5G3FV0EQP9RZFZG7GVWEG&quot;&gt;component properties&lt;/a&gt;, or name your text layers the same across components to easily switch between templates and keep the same text.&lt;/p&gt;

&lt;figure&gt;
    &lt;img src=&quot;/img/2023/figma-templates.gif&quot; alt=&quot;Switching up presentation templates in Figma&quot; loading=&quot;lazy&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;sharing-templates-with-team-library&quot;&gt;Sharing Templates with Team Library&lt;/h3&gt;

&lt;p&gt;Pro tip: You can also publish your new components to your team library so that other people in your company can use your slide templates. To do this click on the title of your Figma file and select “Publish Library”. You’ll then open a Library publish dialog where you select which components you want to publish, and click “Publish”.&lt;/p&gt;

&lt;figure&gt;
    &lt;img src=&quot;/img/2023/figma-library-dialog.webp&quot; alt=&quot;The dialog you get when exporting a library&quot; loading=&quot;lazy&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;reusing-fonts-colors-and-spacing&quot;&gt;Reusing Fonts, Colors, and Spacing&lt;/h3&gt;

&lt;p&gt;You can also set styles for fonts and colors or variables for spacing to reuse and easily adjust choices across multiple slides.&lt;/p&gt;

&lt;figure class=&quot;post__video&quot;&gt;
    &lt;iframe loading=&quot;lazy&quot; width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/gtQ_A3imzsg&quot; title=&quot;Figma Tutorial: Creating Styles&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
    &lt;figcaption&gt;Figmas explanation of how to create styles&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;creating-grids-for-a-uniform-look&quot;&gt;Creating Grids for a Uniform Look&lt;/h3&gt;

&lt;p&gt;Figma also has a powerful grid solution to make your presentation more consistent. Figma has an excellent walkthrough on how you can use &lt;a href=&quot;https://help.figma.com/hc/en-us/articles/360040450513-Create-layout-grids-with-grids-columns-and-rows&quot;&gt;grids on Figma Learn&lt;/a&gt;.&lt;/p&gt;

&lt;figure class=&quot;post__full&quot;&gt;
    &lt;img src=&quot;/img/2023/figma-grids.webp&quot; alt=&quot;Example of use of grids in Figma presentations&quot; loading=&quot;lazy&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;animations-and-transitions&quot;&gt;Animations and Transitions&lt;/h3&gt;

&lt;p&gt;If you want to add animations and transitions, click on the prototype panel at the right of your screen and drag one of the dots from your start slide to your next slide. Now you get a dialog of transition options. You can customize the duration, delay, and easing of each animation. Choose “smart animate” for a solution similar to Keynote “Magic Move.” &lt;a href=&quot;https://help.figma.com/hc/en-us/articles/360040314193-Guide-to-prototyping-in-Figma&quot;&gt;Figma has a lot of great resources on how transitions work.&lt;/a&gt;&lt;/p&gt;

&lt;figure&gt;
    &lt;img src=&quot;/img/2023/figma-animate.gif&quot; alt=&quot;Transitions in Figma&quot; loading=&quot;lazy&quot; /&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;sharing-and-collaboration&quot;&gt;Sharing and Collaboration&lt;/h2&gt;

&lt;h3 id=&quot;generating-shareable-links&quot;&gt;Generating Shareable Links&lt;/h3&gt;

&lt;p&gt;By clicking the share button in the top right corner, you can enter an email address to invite others to collaborate or generate a shareable link. You can also password-protect the file if you want.&lt;/p&gt;

&lt;figure&gt;
    &lt;img src=&quot;/img/2023/figma-share.webp&quot; alt=&quot;Figma share dialog&quot; loading=&quot;lazy&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;collaborating-with-others-in-real-time&quot;&gt;Collaborating with Others in Real-Time&lt;/h3&gt;

&lt;p&gt;One of the greatest advantages of using Figma for presentations is collaborating with others in real-time. Multiple users can simultaneously work on the same presentation and provide real-time feedback and comments. If you want to see another collaborator’s current view, you can click on their avatar in the top-right corner to follow them. You could also hover your own avatar and click “Spotlight me” to force all the other users follow you.&lt;/p&gt;

&lt;figure&gt;
    &lt;img src=&quot;/img/2023/figma-follow.webp&quot; loading=&quot;lazy&quot; alt=&quot;Figma observe&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;using-comments-and-feedback&quot;&gt;Using Comments and Feedback&lt;/h3&gt;

&lt;p&gt;Within Figma, you can leave comments and feedback on specific presentation elements. This allows for clearer communication and easier collaboration. You can easily resolve comments and keep track of the changes made based on the feedback received. To do this, click on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;C&lt;/code&gt; (or the comment symbol) and add comments on relevant places. You can always see the comments and threads in the right column when you are in the comments view.&lt;/p&gt;

&lt;figure&gt;
    &lt;img src=&quot;/img/2023/figma-comments.webp&quot; loading=&quot;lazy&quot; alt=&quot;Comments in Figma&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;version-history-and-design-iterations&quot;&gt;Version History and Design Iterations&lt;/h3&gt;

&lt;p&gt;Figma also provides &lt;a href=&quot;https://help.figma.com/hc/en-us/articles/360038006754-View-a-file-s-version-history&quot;&gt;a version history feature&lt;/a&gt;, allowing you to view and restore previous presentation versions. This is helpful when you need to revisit an earlier design. To do this, click on the title of your Figma file (top middle of your screen) and select “Show version history.” You’ll get a timeline in the right column showing all your file changes. Click on any of them to rewind your project.&lt;/p&gt;

&lt;h2 id=&quot;presenting-your-figma-file&quot;&gt;Presenting Your Figma File&lt;/h2&gt;

&lt;h3 id=&quot;preparing-a-figma-file-for-presentations&quot;&gt;Preparing a Figma File for Presentations&lt;/h3&gt;

&lt;p&gt;To prepare your Figma file for a presentation, all you have to do is to open the prototype panel and select “Presentation” under “device.” (you could also add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;amp;hide-ui=1&lt;/code&gt; to the end of the URL if you want to hide the UI completely when embedding or sharing a presentation link)&lt;/p&gt;

&lt;h3 id=&quot;taking-advantage-of-fullscreen-and-figma-ui-options&quot;&gt;Taking Advantage of Fullscreen and Figma UI Options&lt;/h3&gt;

&lt;p&gt;When you will present, click the play icon in the top right corner of Figma. This will open your presentation in prototype mmode. You can then click the expand icon in the top right corner to make it fullscreen and select &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;options &amp;gt; Fill screen&lt;/code&gt; and make sure &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;options &amp;gt; Show Figma UI&lt;/code&gt; is unchecked. If your slide seems weird you can click &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Z&lt;/code&gt; to switch between all the different view states.&lt;/p&gt;

&lt;figure&gt;
    &lt;img src=&quot;/img/2023/figma-present.webp&quot; alt=&quot;Figma present&quot; loading=&quot;lazy&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;presenting-remotely&quot;&gt;Presenting remotely&lt;/h3&gt;
&lt;p&gt;If you are presenting remotely you could enter prototype mode (by pressing play), and click “Share prototype” and send the link to others. When you are starting to present you can click your own avatar and “Spotlight me”, and this way force the other spectators to follow you during your presentation.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&quot;/img/2023/figma-spotlight.png&quot; alt=&quot;Figma Spotlight&quot; loading=&quot;lazy&quot; /&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;sharing-presentations&quot;&gt;Sharing presentations&lt;/h2&gt;

&lt;h3 id=&quot;exporting-slides-as-pdf&quot;&gt;Exporting Slides as PDF&lt;/h3&gt;

&lt;p&gt;Export your slides as a single PDF by going to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;File &amp;gt; Export frames to PDF&lt;/code&gt;. Figma will then generate a PDF with every Frame on the page you are currently on. Your pdf will follow the same order as your slides in presentation mode: left-to-right, top-to-bottom. Note that these files can sometimes become huge depending on your presentations. I’ve found &lt;a href=&quot;https://www.ilovepdf.com/compress_pdf&quot;&gt;ilovepdf&lt;/a&gt; great at compressing these into a manageable file size.&lt;/p&gt;

&lt;h3 id=&quot;embedding-presentations-on-websites-and-social-media&quot;&gt;Embedding Presentations on Websites and Social Media&lt;/h3&gt;

&lt;p&gt;Another useful feature is the ability to embed your presentation. This is great for showcasing your presentations on your website or sharing them on social media. Check out the &lt;a href=&quot;https://help.figma.com/hc/en-us/articles/360039827134-Embed-prototypes&quot;&gt;Embedding article&lt;/a&gt; in the Figma Help Center to learn how to embed your Figma files. Rember to share your prototype (Click “share prototype” after pressing the play button), and not your regular file. Here is an example of how an embedded presentation look out of the box:&lt;/p&gt;

&lt;figure class=&quot;post__video&quot;&gt;
    &lt;iframe loading=&quot;lazy&quot; style=&quot;border: 1px solid rgba(0, 0, 0, 0.1);&quot; width=&quot;800&quot; height=&quot;450&quot; src=&quot;https://www.figma.com/embed?embed_host=share&amp;amp;url=https%3A%2F%2Fwww.figma.com%2Fproto%2FLBH1O9AxQLxp0ixZBd1Pxk%2FUntitled%3Fpage-id%3D0%253A1%26type%3Ddesign%26node-id%3D4-144%26viewport%3D899%252C596%252C0.21%26t%3DpevRWzyXC3YRDvuj-1%26scaling%3Dcontain%26mode%3Ddesign&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/figure&gt;
</content>
 </entry>
 
 <entry>
   <title>Designer of the week - UX Norge</title>
   <link href="https://hauken.no/ux-norway/"/>
   <updated>2023-03-01T00:00:00+00:00</updated>
   <id>https://hauken.no/ux-norway/</id>
   <content type="html">&lt;p&gt;I was interviewed by &lt;a href=&quot;https://uxnorge.no/marius-hauken/&quot;&gt;UX-Norge as designer of the week&lt;/a&gt;. This is a translation of this interview to english:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; Marius Hauken&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Age:&lt;/strong&gt; 34 years&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Residence:&lt;/strong&gt; Bergen, Norway&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Education:&lt;/strong&gt; Master’s in Design from Bergen Academy of Art and Design&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Job:&lt;/strong&gt; Designer at &lt;a href=&quot;https://stacc.com&quot;&gt;Stacc&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Years as a designer:&lt;/strong&gt; 13 years&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Listening to now:&lt;/strong&gt; Imagine Dragons&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Watching now:&lt;/strong&gt; Dexter - New Blood&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Reading now:&lt;/strong&gt; The Humans by Matt Haig&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;how-has-your-journey-been-to-where-you-are-now&quot;&gt;How has your journey been to where you are now?&lt;/h2&gt;

&lt;p&gt;It has mostly been characterized by doing what I found most interesting at any given time. In junior high, I made a lot of movies and spent lots of time with both Photoshop and Premiere. When it was time to choose a path in high school, it was an easy choice to start on Media and Communication which at the time was a brand academic track. There I learned the unique combination of printing with a Heidelberg machine and HTML and CSS for the first time. I still remember the magic of transferring some files to an FTP server and suddenly a website was accessible to the whole world.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/2023/khib.webp&quot; alt=&quot;Hauken projects at khib&quot; /&gt;
&lt;figcaption&gt;Some of the projects from my time at KHiB&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;After high school, I wanted more of the same and got directly into KHiB (Bergen Academy of Art and Design) in Visual Communication. I ended up staying at KHiB for 5 years to take a Master’s in Design. The way the program was structured was perfect for me, with 2-3 week-long projects with new themes such as illustration, typography, Motion Graphics, and interaction design, etc. As I got further into my studies, I also focused more on screen design.&lt;/p&gt;

&lt;figure class=&quot;post__video&quot;&gt;
&lt;iframe src=&quot;https://drive.google.com/file/d/1V0oOM9EpNQTnE2PS9IfkxQsFmxSJ9Vpp/preview&quot; width=&quot;640&quot; height=&quot;480&quot; allow=&quot;autoplay&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;One of the projects we had was to create idents for NRK3. This was my contribution that NRK later put a logo on.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;While I was doing my master’s, I ran a design agency with some former classmates: Kassett. There we honed our skills on real customers while studying, which I recommend to everyone studying design. We delivered projects for large and small clients, everything from Bygdalarm and Oslo Lux to Helse Vest. But when I heard that Netlife was coming to Bergen, I immediately got in touch and started there six months before Netlife’s Bergen office became a reality.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;&lt;img src=&quot;/img/2023/kassett.webp&quot; alt=&quot;designed by kassett&quot; /&gt; &lt;figcaption&gt;Some of the projects we delivered at Kassett&lt;/figcaption&gt;&lt;/figure&gt;

&lt;p&gt;My first client at Netlife was a small startup with a dream of helping parents coordinate all children’s leisure activities in a simple way: &lt;a href=&quot;https://www.spond.com/&quot;&gt;Spond&lt;/a&gt;. It has been fun to see their journey afterward!&lt;/p&gt;

&lt;p&gt;At the same time, I was gradually phased into a team that commuted to Bergen to help Skandiabanken become responsive online. I ended up working at Skandiabanken/Sbanken as a consultant for almost 5 years and was involved in everything from payment screens, mortgage flows, development of a savings robot, and two rebrandings.&lt;/p&gt;

&lt;figure&gt;
&lt;img src=&quot;/img/2023/skandiabanken.webp&quot; alt=&quot;Design Skandiabanken&quot; /&gt;
&lt;figcaption&gt;Some older screenshots from Skandiabanken before rebranding to Sbanken.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;One of the things I’m most proud of in Sbanken is the impressive prototype we made of the entire bank. It was a PHP rig (this was after all years before anyone had heard of React) where we simulated an entire online banking experience and could load simple customer data so that customers would recognize themselves when we user-tested the banking solution on them. The CSS and markup in the prototype were taken forward into the production of the bank. Now there are thankfully better rigs for this with reusable components in React/Vue/etc, but I think that the prototype in context with monthly user tests of this over 5 years has played an important role in Sbanken’s position in the Norwegian banking market for many years.&lt;/p&gt;

&lt;p&gt;While working at Sbanken, Robin Sandborg, who I’ve worked with since we studied together, and I became acquainted with Espen Sæverud. We quickly realized that a skilled developer and two coding designers were a good combination. Together, among other things, we won a hackathon hosted by Sbanken, which resulted in us integrating Coinbase into the online bank as a PR stunt. We all agreed that things were going a little too slowly in the banking industry, so with the fintech company Stacc behind us, we started Stacc X. We believed there was a market for themeable frontend components for banks (there wasn’t 😅), but there was a market for delivering complete application flows and UX consulting for banks.&lt;/p&gt;

&lt;p&gt;At Stacc, I have been on a fantastic exciting journey from when we were a total of about 15 people in the conglomerate to now being 200+ with offices in several countries. There are a lot of skilled people here, and if we have a technical challenge or other issue within finance, there is definitely someone in the organization who can help with the answer or has encountered it before.&lt;/p&gt;

&lt;figure&gt;
&lt;img src=&quot;/img/2023/stacc-x.webp&quot; alr=&quot;stacc x&quot; /&gt;
&lt;figcaption&gt;Some of the skilled people in Stacc X from our summer party&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;During my time at Stacc, I have among other things been involved in designing the first version of Bulder Bank, a car loan solution for Danske Bank, a communication platform between car dealer Nordea Finans and the car buyer, several mortgage solutions, a platform for underwriting for Tryg, and feasibility studies for various banks.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/portfolio/Bulder.webp&quot; alt=&quot;bulder bank&quot; /&gt;
&lt;figcaption&gt;Some of the work I did for Bulder Bank together with Eivind Kjellevold.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;It’s really fun to be in the position that we are now in Stacc, where in very many projects we can work with (and deliver) the entire customer journey, from someone starting to apply for a loan, to a case worker looking at the case and until it is paid out and the loan is followed up. This also means that my role as a designer often blends just as much into business development and the technical landscape when it comes to what data we get from various APIs, etc.&lt;/p&gt;

&lt;figure&gt;
&lt;img src=&quot;/img/2023/process.webp&quot; /&gt;
&lt;figcaption&gt;Process for mortgage&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;what-are-you-currently-working-on&quot;&gt;What are you currently working on?&lt;/h2&gt;

&lt;p&gt;One of the disadvantages of working at a company that helps banks and other fintech companies is that I can very rarely share what I’m working on at the moment. But I can reveal that we are about to deliver our first end-to-end mortgage solution and an exciting rebranding of a bank. This is actually the sixth time I’m involved in rebranding/designing a bank and defining how the profile should be carried out on digital surfaces.&lt;/p&gt;

&lt;h2 id=&quot;what-does-a-typical-workday-look-like-for-you&quot;&gt;What does a typical workday look like for you?&lt;/h2&gt;

&lt;p&gt;It is mostly chaos from when I get up until I come home from work (and often after work too 😅). I typically juggle multiple projects and deliveries for different customers while involved in sales processes. This means that no two days are alike, which I really enjoy.&lt;/p&gt;

&lt;p&gt;During a typical week I will often do this:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Have a workshop with a customer&lt;/li&gt;
  &lt;li&gt;Work concentrated in Figma&lt;/li&gt;
  &lt;li&gt;Work closely with business developer and architect on how a flow should look and function&lt;/li&gt;
  &lt;li&gt;Possibly sales meetings&lt;/li&gt;
  &lt;li&gt;Interview potential people for the team&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://newsletter.stacc.com/&quot;&gt;Write a newsletter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Attend a standup with a customer team&lt;/li&gt;
  &lt;li&gt;Follow up part-time students or employees&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;what-tools-cant-you-live-without&quot;&gt;What tools can’t you live without?&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Figma for sketching, designing flows, and thinking&lt;/li&gt;
  &lt;li&gt;Obsidian for writing and thinking&lt;/li&gt;
  &lt;li&gt;Things to avoid thinking&lt;/li&gt;
  &lt;li&gt;I also have an extensive list of tools I use regularly at &lt;a href=&quot;https://hauken.no/uses/&quot;&gt;Hauken.no/uses&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;who-or-what-inspires-you&quot;&gt;Who or what inspires you?&lt;/h2&gt;

&lt;p&gt;I am inspired by a lot, but especially by designers who master code as their tool and have a playful and exploratory approach to what they create, such as:
&lt;a href=&quot;https://twitter.com/raunofreiberg&quot;&gt;Rauno Freiberg&lt;/a&gt;, &lt;a href=&quot;https://ibuildmyideas.com/&quot;&gt;Jordan Singer&lt;/a&gt;, &lt;a href=&quot;https://www.alyssax.com/&quot;&gt;Alyssa X&lt;/a&gt;, &lt;a href=&quot;https://anthonyhobday.com/&quot;&gt;Anthony Hobday&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/ivanhjel&quot;&gt;Ivan Hjelmeland&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/destroytoday&quot;&gt;Jonnie Hallman&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/twholman&quot;&gt;Tim Holman&lt;/a&gt;, &lt;a href=&quot;https://brianlovin.com/&quot;&gt;Brian Lovin&lt;/a&gt;, &lt;a href=&quot;https://rafaelconde.net/&quot;&gt;Rafael Conde&lt;/a&gt;, &lt;a href=&quot;https://www.steveruiz.me/&quot;&gt;Steve Ruiz&lt;/a&gt; +++&lt;/p&gt;

&lt;h2 id=&quot;what-would-you-like-to-learn-more-about-in-the-future&quot;&gt;What would you like to learn more about in the future?&lt;/h2&gt;

&lt;p&gt;I want to learn more about TypeScript. I certainly see the value and have ended up using it in some side projects, but I do not quite understand what I am doing.&lt;/p&gt;

&lt;h2 id=&quot;what-do-you-find-most-challenging-in-your-job-as-a-designer&quot;&gt;What do you find most challenging in your job as a designer?&lt;/h2&gt;

&lt;p&gt;Selling the value of design. No one I talk to disagrees about the value of design, but why is it so much harder to sell than a developer hour? This despite the fact that the developer hour can be worthless if a good design job isn’t done first.&lt;/p&gt;

&lt;h2 id=&quot;what-do-you-think-designers-in-norway-should-get-better-at&quot;&gt;What do you think designers in Norway should get better at?&lt;/h2&gt;

&lt;p&gt;We should more widely acknowledge that domain expertise in an industry is important as a designer. Too often, design consultants are sold as designers regardless of industry, and that they can jump from healthcare providers, to finance and further to the maritime industry without this being a problem. In my opinion, that is utopia and not least very frustrating for designers to have to handle a fairly broad field while constantly jumping between industries.&lt;/p&gt;

&lt;p&gt;Yes, a designer can definitely deliver value in new industries, but it’s not comparable to how much value a designer who knows the industry can deliver. Therefore, I would like to advocate for specializing towards an industry for designers.&lt;/p&gt;

&lt;h2 id=&quot;what-do-you-do-when-you-are-not-working&quot;&gt;What do you do when you are not working?&lt;/h2&gt;

&lt;p&gt;Most of the time is spent with the family with 2 small girls (soon to be 3 and 5 years). We have two outdoor girls, so the time is mostly used outside.&lt;/p&gt;

&lt;figure&gt;
&lt;img src=&quot;/img/2023/family.webp&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;In the evenings, I’m regularly at our home gym, which luckily was ready long before the pandemic. Having it available right outside the house drastically lowers the threshold to get started, and not least the luxury of not having to wait for someone to finish with the equipment you need. I don’t really train for anything specific, but we’ve usually taken part in one obstacle course during the year. Last year, the eldest also got to participate – that was great!&lt;/p&gt;

&lt;figure&gt;
&lt;img src=&quot;/img/2023/obstacle.webp&quot; alt=&quot;obstacle course&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;In the evenings, I work on some side projects to test out new ideas, technologies, and to simply have fun. So far, this has resulted in a daily newsletter with hidden iPhone features (&lt;a href=&quot;https://www.isecrets.io&quot;&gt;iSecrets.io&lt;/a&gt;), a bunch of followers on &lt;a href=&quot;https://twitter.com/mhauken&quot;&gt;Twitter&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/elonmusk/status/1619577150058954754&quot;&gt;a response from Elon Musk&lt;/a&gt; 😮 and soon a macOS app 🤞.&lt;/p&gt;

&lt;h2 id=&quot;do-you-have-a-short-tip-for-students-or-those-new-to-the-field&quot;&gt;Do you have a short tip for students or those new to the field?&lt;/h2&gt;

&lt;p&gt;Document what you create for clients for your own sake. If you’ve designed a website, for example – take screenshots and videos of it after launch for documentation for later in dumb formats (.jpg/png and .mov). Make it a habit!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>How a side project to a side project lead to 255 Million impressions in 9 months</title>
   <link href="https://hauken.no/255-million/"/>
   <updated>2023-02-08T00:00:00+00:00</updated>
   <id>https://hauken.no/255-million/</id>
   <content type="html">&lt;p&gt;Last year I had an idea for a side project &lt;a href=&quot;https://www.pie-menu.com&quot;&gt;(which is now launched)&lt;/a&gt;. I approached the subject methodically and realized I would get next to no traction on the idea unless I had an audience.&lt;/p&gt;

&lt;p&gt;I, therefore, started diving deeper into how to build an audience and grow on Twitter (as a side-project to the original side-project). I took a course, got to know many like-minded peers, and started getting some reps in publishing content on Twitter.&lt;/p&gt;

&lt;p&gt;Fast forward to today, nine months later, I have:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;255 Million impressions of my tweets 🤯&lt;/li&gt;
  &lt;li&gt;149 000 followers&lt;/li&gt;
  &lt;li&gt;19 000 newsletter subscribers&lt;/li&gt;
  &lt;li&gt;1 800 tweets&lt;/li&gt;
&lt;/ul&gt;

&lt;figure&gt;
&lt;img class=&quot;post__img-round&quot; src=&quot;/img/2023/followers.png&quot; alt=&quot;Twitter followers&quot; loading=&quot;lazy&quot; /&gt;
&lt;figcaption&gt;Most of my followers came from &lt;a href=&quot;https://twitter.com/mhauken/status/1568585131073634304&quot;&gt;two&lt;/a&gt; &lt;a href=&quot;https://twitter.com/mhauken/status/1619334514060443648&quot;&gt;threads.&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;starting-point&quot;&gt;Starting point&lt;/h2&gt;
&lt;p&gt;These numbers are rather mind-boggling. Especially considering my starting point: I had about 400 followers and tried publishing thread after thread without any traction. Suddenly one of my threads hit a nerve, and my phone started to burn. 100 likes, 500 likes, 1 000 likes. I woke up the next morning and had 20 000 new followers. I stumbled upon a topic that combined my interest in UX with what users found useful: Features on iPhone that are hidden but practical.&lt;/p&gt;

&lt;p&gt;I continued digging up interesting tidbits hidden in iOS and new features released in the next iOS version. After diligently publishing a thread every Saturday for half a year, I suddenly had amassed 75 000 followers. I guess you could say I found a Product Market Fit.&lt;/p&gt;

&lt;p&gt;This lead me to start a newsletter with one daily iOS tip covering a new hidden feature in iOS. The perfect guide for anyone new (and experienced) to the device. Check it out at &lt;a href=&quot;http://isecrets.io&quot;&gt;isecrets.io&lt;/a&gt;&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;a href=&quot;https://www.isecrets.io&quot; class=&quot;post__img-link&quot;&gt;
&lt;img class=&quot;post__img-round&quot; src=&quot;/img/2023/isecrets.webp&quot; alt=&quot;isecrets.io&quot; style=&quot;aspect-ratio: 1166 / 512;&quot; loading=&quot;lazy&quot; /&gt;
&lt;/a&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;hello-elon-musk&quot;&gt;Hello Elon Musk!&lt;/h2&gt;
&lt;p&gt;I continued publishing one thread every week on hidden iOS features, but last week something special happened:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://twitter.com/elonmusk/status/1619577150058954754&quot; class=&quot;post__img-link&quot;&gt;
    &lt;img class=&quot;post__img-round&quot; src=&quot;/img/2023/elon.png&quot; alt=&quot;Elon musk replied: Useful&quot; loading=&quot;lazy&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A thread I had written had previously done quite well with over 1.5 million impressions and 2 500 new followers, but Elons comment catapulted it into a completely new life:&lt;/p&gt;

&lt;figure&gt;
&lt;img class=&quot;post__img-round&quot; src=&quot;/img/2023/impressions.png&quot; alt=&quot;Impressions&quot; loading=&quot;lazy&quot; /&gt;
&lt;figcaption&gt;All of these spikes are how the threads I&apos;ve written have performed. &lt;br /&gt; As you can see it varies a lot. The last two are from the Elon-comment.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I had set up notifications for every person subscribing to the newsletter. Suddenly my phone wouldn’t stop buzzing, and the followers poured in. After one week, I had gotten nearly 75 million impressions on the tweet and 70 000 new followers! It is funny how many people you can reach with what you create on your mobile phone while your kids watch TV in the morning.&lt;/p&gt;

&lt;figure&gt;
&lt;video muted=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; autoplay=&quot;&quot; class=&quot;post__img-round&quot;&gt;&lt;source data-src=&quot;/img/2024/notifications.mp4&quot; type=&quot;video/mp4&quot; src=&quot;/img/2024/notifications.mp4&quot; /&gt;Your browser does not support the video tag.&lt;/video&gt;
&lt;figcaption&gt;Every user subscribing to the newsletter&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;what-tactical-nuggets-have-i-learned&quot;&gt;What tactical nuggets have I learned?&lt;/h2&gt;
&lt;p&gt;This journey has been interesting, and I am lucky to have stumbled onto a topic that resonated that much with people. Twitter is a great platform for building an audience, and I grew a large one in a relatively short time with a couple of great pointers:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Provide value for others&lt;/li&gt;
  &lt;li&gt;If you want to grow on Twitter, you need to write threads (sorry all thread-haters 🙈)&lt;/li&gt;
  &lt;li&gt;Tuesday, Thursday, and Saturday are the highest-performing days for threads – Monday and Friday are horrible.&lt;/li&gt;
  &lt;li&gt;Everyone tells you you should tweet daily, but I got fatigued from that and ended up on a pattern of publishing one thread a week instead. I didn’t see any change in followers from that — quite the contrary.&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;
    &lt;img class=&quot;post__img-round&quot; src=&quot;/img/2023/streaks.png&quot; alt=&quot;Consistency&quot; loading=&quot;lazy&quot; /&gt;
    &lt;figcaption&gt;I started out writing every day, but landed on quality threads once&amp;nbsp;a&amp;nbsp;week.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;ul&gt;
  &lt;li&gt;Everything comes down to your hook: Will people click the “Show thread” button?&lt;/li&gt;
  &lt;li&gt;Your profile is important. It should tell what you write about and what they have to gain from following you. Pin your most valuable tweet, and clean your timeline now and then for new followers.&lt;/li&gt;
  &lt;li&gt;Avoid this:
    &lt;ul&gt;
      &lt;li&gt;Linking off platform&lt;/li&gt;
      &lt;li&gt;@mentioning at the beginning of a tweet (causes it not to be seen)&lt;/li&gt;
      &lt;li&gt;Hashtags&lt;/li&gt;
      &lt;li&gt;Give too much away in the hook&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;You need a crew to get through the cold-start problem that can promote each other and help give feedback to your threads. This is especially important for hooks.&lt;/li&gt;
  &lt;li&gt;It takes time. Crafting quality content that people enjoy is time-consuming. I usually spend at least two hours on each thread. (Based on this, my hourly rate has been 7 000 followers per hour worked on average)&lt;/li&gt;
  &lt;li&gt;Don’t fall into the trap of thinking that numbers are the only way to measure success. Sure, it’s fun to reach millions of people, but it doesn’t matter much in the big picture. I haven’t earned a single cent from it (&lt;a href=&quot;https://www.isecrets.io/advertise&quot;&gt;yet&lt;/a&gt;), but I’ve met many interesting people I wouldn’t have met otherwise, and even a few friends.&lt;/li&gt;
  &lt;li&gt;The implementation of double opt-in for email subscriptions is crucial in enhancing the open-rate of emails. However, it can be disheartening that almost half of the subscribers fail to engage with the double-opt in emails and are lost. (14k subscribed, 8.2k double opted-in )&lt;/li&gt;
  &lt;li&gt;As everything else in life, habits are important.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And if you’re sitting there at the end of the post and wondering: “What was that original side-project he wanted to launch?”. Add your mail below, and I’ll make sure you get a notification when it’s released!
 &lt;br /&gt;  &lt;br /&gt;&lt;/p&gt;
&lt;p class=&quot;post__meta&quot;&gt;
All of the statistics above are gathered from &lt;a href=&quot;https://typefully.com/?via=hauken&quot;&gt;Typefully&lt;/a&gt;, my favorite writing and publishing environment for Twitter&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Light comes from above</title>
   <link href="https://hauken.no/light-comes-from-above/"/>
   <updated>2022-06-28T00:00:00+00:00</updated>
   <id>https://hauken.no/light-comes-from-above/</id>
   <content type="html">&lt;p class=&quot;post__lead&quot;&gt;
One design tip you&apos;ll see everywhere once you know it:
&lt;/p&gt;

&lt;p&gt;Light comes from above.&lt;/p&gt;

&lt;p&gt;🙄&lt;/p&gt;

&lt;p&gt;Kind of obvious, but this means that:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Objects are lighter at the top&lt;/li&gt;
  &lt;li&gt;Shadows fall below elements&lt;/li&gt;
  &lt;li&gt;Elements closer to you are brighter&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why shadows spreading out evenly seem subtly wrong.&lt;/p&gt;
&lt;figure class=&quot;img--center&quot;&gt;
    &lt;img src=&quot;/img/2022/shadow.png&quot; alt=&quot;circle with shadow spreading out&quot; class=&quot;u-border-radius&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;This is why gradients that are darker on the top seem weird.&lt;/p&gt;
&lt;figure class=&quot;img--center&quot;&gt;
    &lt;img src=&quot;/img/2022/gradient.png&quot; alt=&quot;gradient that is darker on top&quot; class=&quot;u-border-radius&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;This is why darker cards on lighter backgrounds are off.&lt;/p&gt;
&lt;figure class=&quot;img--center&quot;&gt;
    &lt;img src=&quot;/img/2022/box.png&quot; alt=&quot;darker box on light background&quot; class=&quot;u-border-radius&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;Just remember: Light comes from above!&lt;/p&gt;
&lt;figure class=&quot;img--center&quot;&gt;
    &lt;img src=&quot;/img/2022/above.png&quot; alt=&quot;Box where light comes from above&quot; class=&quot;u-border-radius&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;As soon as you know this you’ll notice it everywhere!&lt;/p&gt;
&lt;figure class=&quot;img--center&quot;&gt;
    &lt;img src=&quot;/img/2022/everywhere.png&quot; alt=&quot;Example with components from Material UI and MacOs and iOS&quot; class=&quot;u-border-radius&quot; /&gt;
&lt;/figure&gt;
</content>
 </entry>
 
 <entry>
   <title>Use fewer words</title>
   <link href="https://hauken.no/fewer-words/"/>
   <updated>2022-06-21T00:00:00+00:00</updated>
   <id>https://hauken.no/fewer-words/</id>
   <content type="html">&lt;style&gt;
  .u-c-primary {
    color: #08a9e0
  }
&lt;/style&gt;

&lt;p class=&quot;post__lead&quot;&gt;
Use fewer words. &lt;br /&gt;
Reducing your message by 50% can DOUBLE its effectiveness without losing the meaning:
&lt;/p&gt;

&lt;p&gt;It is much easier to read the text (and way more efficient for the reader) if you avoid writing words that only serve as extra filler words in the text&lt;br /&gt;
&lt;span class=&quot;u-c-primary&quot;&gt;—&lt;br /&gt;
29 words&lt;/span&gt;
&lt;/p&gt;

&lt;p&gt;It is easier and more efficient for the end-user to read a text where you avoid writing unnecessary filler words in your text&lt;br /&gt;
&lt;span class=&quot;u-c-primary&quot;&gt;—&lt;br /&gt;
23 words&lt;/span&gt;
&lt;/p&gt;

&lt;p&gt;It is easier to read a text if you avoid writing words that act as filler words&lt;br /&gt;
&lt;span class=&quot;u-c-primary&quot;&gt;—&lt;br /&gt;
17 words&lt;/span&gt;
&lt;/p&gt;

&lt;p&gt;It is easier to read a text if you avoid writing filler words&lt;br /&gt;
&lt;span class=&quot;u-c-primary&quot;&gt;—&lt;br /&gt;
13 words&lt;/span&gt;
&lt;/p&gt;

&lt;p&gt;It&apos;s easier to read a text without filler words&lt;br /&gt;
&lt;span class=&quot;u-c-primary&quot;&gt;—&lt;br /&gt;
9 words&lt;/span&gt;
&lt;/p&gt;

&lt;p&gt;Drop filler words, increase readability&lt;br /&gt;
&lt;span class=&quot;u-c-primary&quot;&gt;—&lt;br /&gt;
5 words&lt;/span&gt;
&lt;/p&gt;

&lt;p&gt;Inspired by &lt;a href=&quot;https://www.linkedin.com/posts/hildekristoffersen_tekst-spraevk-formidling-activity-6929782608490815489-mjSa&quot;&gt;Hilde Kristoffersen&lt;/a&gt; and the article &lt;a href=&quot;https://www.bostonglobe.com/2020/12/19/opinion/write-shorter-messages/&quot;&gt;write shorter messages&lt;/a&gt;.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Layering makes you dangerous</title>
   <link href="https://hauken.no/layering/"/>
   <updated>2022-06-16T00:00:00+00:00</updated>
   <id>https://hauken.no/layering/</id>
   <content type="html">&lt;p&gt;&lt;img src=&quot;/img/2022/layering-feat.png&quot; class=&quot;img--center&quot; /&gt;&lt;/p&gt;

&lt;p class=&quot;post__lead&quot;&gt;
This untold career strategy will make you stand out from the crowd. &lt;br /&gt;
Here’s how to make yourself indispensable:
&lt;/p&gt;

&lt;p&gt;If you want success, you have two strategies:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Become the best in the world at one specific thing&lt;/li&gt;
  &lt;li&gt;Become the top 25% at two (or more) things&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The first path is very hard.
The second one is doable with some effort.&lt;/p&gt;

&lt;p&gt;By combining skills you get more unique — and valuable!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://twitter.com/jackbutcher/status/1237844109626204173&quot; alt=&quot;Layering makes you dangerous. A good designer - common. A good designer &amp;amp; writer - uncommon. A good designer, writer &amp;amp; marketer -  rare. Stay layered, my friends.&quot;&gt;
  &lt;img src=&quot;/img/2022/layering.png&quot; class=&quot;u-border-radius&quot; /&gt; 
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some skills are meta-skills that always will enhance your other skills:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Communication (writing/presenting/marketing)&lt;/li&gt;
  &lt;li&gt;Leadership&lt;/li&gt;
  &lt;li&gt;Technical&lt;/li&gt;
  &lt;li&gt;Business&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of your skills should always be at least one of these layers.&lt;/p&gt;

&lt;p&gt;Capitalism rewards things that are both unique and helpful.
The more layers you add, the rarer and more valuable you will become.
It is hard to find a successful person without multiple layers.&lt;/p&gt;

&lt;p&gt;I first heard about this concept from &lt;a href=&quot;https://dilbertblog.typepad.com/the_dilbert_blog/2007/07/career-advice.html&quot;&gt;Scott Adams&lt;/a&gt;, and have since thought about how to apply it to my career. My layers currently are:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Designer&lt;/li&gt;
  &lt;li&gt;(Front of the) Front-end developer&lt;/li&gt;
  &lt;li&gt;Fintech expert&lt;/li&gt;
  &lt;li&gt;Writer (Working on this)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which layers do you have?
Which layers are you working on?&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>7 things learned from publishing over 100 newsletters</title>
   <link href="https://hauken.no/newsletter-learnings/"/>
   <updated>2022-06-13T00:00:00+00:00</updated>
   <id>https://hauken.no/newsletter-learnings/</id>
   <content type="html">&lt;p class=&quot;post__lead&quot;&gt;
I just wrote my 100th newsletter. &lt;br /&gt;
100 weeks. 100 mistakes. &lt;br /&gt;
7 things I wish I knew before I started:
&lt;/p&gt;

&lt;h3 id=&quot;1-deadlines-are-crucial&quot;&gt;1. Deadlines are crucial&lt;/h3&gt;
&lt;p&gt;Without a weekly deadline, I wouldn’t have published anything. It keeps me accountable, and people nag me if I don’t post on time.
Lesson: Set deadlines to make things urgent&lt;/p&gt;

&lt;h3 id=&quot;2-consistency-is-key&quot;&gt;2. Consistency is key&lt;/h3&gt;
&lt;p&gt;A weekly cadence creates a habit of writing and sharing. By checking off the box every week, I am slowly getting better, and it gets easier to write.
Lesson: Habits are essential to get better!&lt;/p&gt;

&lt;h3 id=&quot;3-growth-will-be-slow-if-you-have-a-newsletter-in-a-vacuum&quot;&gt;3. Growth will be slow if you have a newsletter in a vacuum&lt;/h3&gt;
&lt;p&gt;I have written the newsletter by itself and just sent it out to readers. Growth is hard without an initial audience or referral program.
Lesson: Have a plan for marketing and distribution. Twitter is a powerful funnel!&lt;/p&gt;

&lt;h3 id=&quot;4-you-never-know-what-readers-will-appreciate&quot;&gt;4. You never know what readers will appreciate&lt;/h3&gt;
&lt;p&gt;It has been impossible to predict the outcome of each newsletter. Some issues are wildly popular, but I can’t find any patterns.
Lesson: You might be wrong about what your readers think is interesting! Talk with them!&lt;/p&gt;

&lt;h3 id=&quot;5-it-can-be-stressful&quot;&gt;5. It can be stressful&lt;/h3&gt;
&lt;p&gt;Writing newsletters take time. You don’t have infinite time, so something else will have to go. For me, it had meant less book reading and relaxation.
Lesson: Don’t bother if you aren’t motivated&lt;/p&gt;

&lt;h3 id=&quot;6-new-doors-will-open&quot;&gt;6. New doors will open&lt;/h3&gt;
&lt;p&gt;Writing regularly on a topic automatically makes you an authority. Other people might know more but don’t share. This puts you in a spot where people take contact for talks or consulting gigs.
Lesson: You never know what doors your next post will open&lt;/p&gt;

&lt;h3 id=&quot;7-time-is-your-best-friend&quot;&gt;7. Time is your best friend&lt;/h3&gt;
&lt;p&gt;I fumbled for a long time to find my pace and topics that resonated with my expertise and audience. The best part: most won’t see the fumbling start since they didn’t follow you!
Lesson: Finding your niche might take time, but don’t worry!&lt;/p&gt;

&lt;h3 id=&quot;tldr&quot;&gt;Tl;dr&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Set deadlines&lt;/li&gt;
  &lt;li&gt;Consistency is key&lt;/li&gt;
  &lt;li&gt;Have a marketing plan&lt;/li&gt;
  &lt;li&gt;Time is your best friend&lt;/li&gt;
  &lt;li&gt;You won’t know what will resonate&lt;/li&gt;
  &lt;li&gt;Don’t bother if you aren’t motivated&lt;/li&gt;
  &lt;li&gt;Posting regularly will open new doors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;(The &lt;a href=&quot;http://newsletter.stacc.com&quot;&gt;newsletter in question&lt;/a&gt; is about the Nordic fintech scene and the intersection of design and technology.)&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>The two device solution</title>
   <link href="https://hauken.no/two-device-solution/"/>
   <updated>2022-05-12T00:00:00+00:00</updated>
   <id>https://hauken.no/two-device-solution/</id>
   <content type="html">&lt;p class=&quot;post__lead&quot;&gt;
How I use multiple devices to boost my productivity and focus:
&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/2022/devices.svg&quot; alt=&quot;How I use multiple devices to boost my productivity and focus&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;We often use the same device for work as we use to relax.
What if you thought of your devices as a single-purpose environment for different activities?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Computer → Work&lt;/li&gt;
  &lt;li&gt;Tablet → Refine&lt;/li&gt;
  &lt;li&gt;Phone → Relax&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This way, you can use your devices to switch contexts.
The fresher your eyes, the easier it is to refine and edit.
A few examples:&lt;/p&gt;

&lt;h3 id=&quot;writing&quot;&gt;Writing&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Take notes in your notebook (or phone)&lt;/li&gt;
  &lt;li&gt;Write on your computer&lt;/li&gt;
  &lt;li&gt;Edit on your iPad
Pro tip: Use different fonts to see the text differently&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;designing&quot;&gt;Designing&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Sketch on paper&lt;/li&gt;
  &lt;li&gt;Design on computer&lt;/li&gt;
  &lt;li&gt;Refine / edit on iPad&lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/2022/design-ipad-process.jpg&quot; alt=&quot;How I use iPad to refine my designs&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;music&quot;&gt;Music&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Songwriting with an instrument&lt;/li&gt;
  &lt;li&gt;Create on computer&lt;/li&gt;
  &lt;li&gt;Listen to the music on a walk and refine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Switching devices and context is as refreshing as waiting a day between creation and editing.
Suddenly it is obvious what to remove or adjust!&lt;/p&gt;

&lt;h3 id=&quot;focus-on-primary-task&quot;&gt;Focus on primary task&lt;/h3&gt;

&lt;p&gt;An additional benefit is that you can set up each of your devices to enable focus for its primary task:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Computer → Work apps - no notifications&lt;/li&gt;
  &lt;li&gt;Tablet → Refine - no notifications&lt;/li&gt;
  &lt;li&gt;Phone → Relax - social notifications etc.&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>Stacc X year in review 2021</title>
   <link href="https://hauken.no/year-in-review-2022/"/>
   <updated>2022-02-09T00:00:00+00:00</updated>
   <id>https://hauken.no/year-in-review-2022/</id>
   <content type="html">&lt;p&gt;Daily we design and code things for our clients, but we’re not often as good at sharing what we’ve done during the year. Then it’s nice to take a step back and look at all the projects we’ve delivered and worked on during the year.&lt;/p&gt;

&lt;figure class=&quot;post__full&quot;&gt;
    &lt;img loading=&quot;lazy&quot; src=&quot;/img/2022/year-in-review.webp&quot; /&gt;
&lt;/figure&gt;

&lt;blockquote&gt;
  &lt;p&gt;This is a blogpost from Stacc X. One of seven teams within the Stacc ecosystem. See what &lt;a href=&quot;https://stacc.com/what-we-do&quot;&gt;all our products and services&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;projects&quot;&gt;Projects&lt;/h2&gt;

&lt;p&gt;Working within banking and finance, there is much secrecy involved before launch. These are a few of the projects we have worked on and can talk about this year:&lt;/p&gt;

&lt;h3 id=&quot;danske-bank&quot;&gt;Danske Bank&lt;/h3&gt;

&lt;p&gt;Last year we launched a new car loan process for Danske Bank. The result is a flow where you can apply for a car loan (and certificate of financing) and upload documentation. We’ve also developed a flexible system for caseworkers and back-office. The launch successfully reached its goal for the year in only four months!&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
    &lt;img loading=&quot;lazy&quot; src=&quot;/img/2022/danske-bank.webp&quot; alt=&quot;Danske Bank&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;nordea-finans&quot;&gt;Nordea Finans&lt;/h3&gt;

&lt;p&gt;We’re continually working on new solutions for Nordea Finans and their popular dealer and customer portals that handles all communication between Nordea, car dealers and car buyers.  With secure chat, file upload and an easy-to-use case management system, the platform brings all the parties together and simplifies the experience for everyone.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
    &lt;img loading=&quot;lazy&quot; src=&quot;/img/2022/nordea.webp&quot; alt=&quot;Nordea Finans&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;webmegleren&quot;&gt;Webmegleren&lt;/h3&gt;

&lt;p&gt;We helped Visma Real Estate Solutions take their business system for real estate agencies, Webmegler, into all platforms. Our job consisted of creating a new design system and examples of some of the most used pages. We also interviewed and user-tested the new solution on many real estate agents, continually improving the user experience. This job was made easier because of Covid since everyone suddenly was used to meeting digitally. The first beta version is now slowly released to the first users.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
    &lt;img loading=&quot;lazy&quot; src=&quot;/img/2022/webmegleren.webp&quot; alt=&quot;Webmegleren&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;spense&quot;&gt;Spense&lt;/h3&gt;

&lt;p&gt;Last year we launched the first version of Spense – a simple solution to get quickly paid for (mainly) the car industry. Their key product is a simple payment flow where customers can choose to pay by bank transfer, card, pay later, or split the invoice, while the creditor gets paid immediately. This payment flow is brandable through an elegant theming system we’ve made for Spense. The whole solution is fully integrated via APIs, but we’ve also made a clean portal for creating orders over the last year.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
    &lt;img loading=&quot;lazy&quot; src=&quot;/img/2022/spense.webp&quot; alt=&quot;Spense&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;escali&quot;&gt;Escali&lt;/h3&gt;

&lt;p&gt;In April, Stacc acquired Escali Financial Systems, and we got a new sister company specialized in solutions for portfolio-, treasury, and finance management. Based on thorough interviews and user tests, we’ve redesigned Escali Financials to deliver a more consistent experience and better reporting.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
    &lt;img loading=&quot;lazy&quot; src=&quot;/img/2022/escali.webp&quot; alt=&quot;Escali Financial Systems&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;innovation-norway&quot;&gt;Innovation Norway&lt;/h3&gt;

&lt;p&gt;The largest project in Stacc at the moment is to digitize the credit process for Innovation Norway. The delivery consists of Stacc BM Analysis, delivered on Flow, Stacc’s cloud platform for process automation, integrated with INs own solutions and third parties. Since this is a real cross-collaboration between all the specialties and departments in Stacc, we also have a few persons working full-time on this project.&lt;/p&gt;

&lt;h3 id=&quot;kravia&quot;&gt;Kravia&lt;/h3&gt;

&lt;p&gt;After helping Kravia create a more cohesive user experience for their collections software, they wanted to start moving their application from Angular to React. Migrating years of code from one framework to another is never an easy job, especially when you want to be able to keep releasing new features even faster than before.&lt;/p&gt;

&lt;p&gt;Instead of doing a ground-up rewrite, we helped Kravia leverage micro-frontends to divide their legacy Angular front-end into small pieces that they could keep running while still writing new features as small React apps.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
    &lt;img loading=&quot;lazy&quot; src=&quot;/img/2022/kravia.webp&quot; alt=&quot;Kravia&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;bnp-paribas&quot;&gt;BNP Paribas&lt;/h3&gt;

&lt;p&gt;We helped BNP Paribas, Personal Finance analyze their current credit assessment process and created a report and prototype optimizing their flow. The enhanced flow included sketches for both end-users and caseworkers.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
    &lt;img loading=&quot;lazy&quot; src=&quot;/img/2022/BNP.webp&quot; alt=&quot;BNP Paribas&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;secret-projects&quot;&gt;Secret projects&lt;/h3&gt;

&lt;p&gt;We’ve also worked a lot on a few projects we can’t wait to show you this year!&lt;/p&gt;

&lt;h2 id=&quot;consulting&quot;&gt;Consulting&lt;/h2&gt;

&lt;p&gt;Like last year, we’ve turned more towards delivering complete solutions for clients instead of consultants. However, we have some superstars out working in teams with clients: Torleif and Helene have spent most of their year helping Tryg respectively with their client-facing team and a Nordic underwriting project.&lt;/p&gt;

&lt;h2 id=&quot;offices&quot;&gt;Offices&lt;/h2&gt;

&lt;p&gt;Last year we got new offices, and sadly they were too small when we finally got back after working from home. Therefore, we were thrilled when our department got our own space at the end of the year – right before we had to work from home again.&lt;/p&gt;

&lt;figure class=&quot;post__full&quot;&gt;
    &lt;img loading=&quot;lazy&quot; src=&quot;/img/2022/offices.webp&quot; alt=&quot;Stacc X office&quot; /&gt;
    &lt;figcaption&gt;Great to finally meet up at our new offices when we had the opportunity! (Yes, we have an ice cream freezer)&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;team&quot;&gt;Team&lt;/h2&gt;

&lt;p&gt;This year we welcomed a few more amazing people to our team:&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
    &lt;img loading=&quot;lazy&quot; src=&quot;/img/2022/Nyansatte.webp&quot; /&gt;
    &lt;figcaption&gt;Our new full-time employees in 2021!&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Bjarne Helland&lt;/strong&gt; started with us in March and has, in a short time, made a huge difference in our projects! He is a full-stack developer with love for Next.js. Bjarne also brews beer, and we’re looking forward to tasting some at our next summer party.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Christer Nordnes&lt;/strong&gt; is our first full-time project manager. He comes from Sbanken, where he was responsible for the securities team. Christer is a photo model in his spare time.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Francis Soliman Dyrhovden&lt;/strong&gt; is a developer with a previous background in the offshore industry. He has worked with us for half a year now and started to make us embrace his taste for PetNat wine.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Rein Undheim&lt;/strong&gt; is a developer we knew even before he started working with us in August due to his active use of Slack the months before! He already loves to complain about design changes and is our live streamer when our e-sport team games.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Synnøve Sørensen&lt;/strong&gt; joined us in August. She had worked 11 years in the oil industry before she chose to join our team as a developer. Synnøve has over 300 parachute jumps!!&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Øystein Lund Rolland&lt;/strong&gt; joined us in December after working as a backend developer in Vimond. He is quickly coming back to his roots as a full-stack developer in our team!&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Erika Hågensen&lt;/strong&gt; and &lt;strong&gt;Johann Bugge&lt;/strong&gt; are joining us part-time from February, respectively, as UX designer and developer! We’re looking forward to that!&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;You?&lt;/strong&gt; We’re always on the lookout for new people on our team! We’re in high demand and still looking for more designers and developers. Just send me a message at &lt;a href=&quot;mailto:hauken@stacc.com&quot;&gt;hauken@stacc.com&lt;/a&gt; if that sounds interesting.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;social&quot;&gt;Social&lt;/h3&gt;

&lt;p&gt;Because of the pandemic, most of our regular social activities have been amputated, but luckily we’re able to meet a bit more in 2021 than the year before. We managed to have a small summer party, a disc-golf tournament, a Halloween party, and a Christmas party at Voss.&lt;/p&gt;

&lt;figure class=&quot;post__full&quot;&gt;
    &lt;img loading=&quot;lazy&quot; src=&quot;/img/2022/Party.webp&quot; alt=&quot;Stacc X social&quot; /&gt;
    &lt;figcaption&gt;Some of our Flow colleagues at our Halloween party | Our summer party | Disc-golf tournament&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;written&quot;&gt;Written&lt;/h2&gt;

&lt;p&gt;Our &lt;a href=&quot;https://nyhetsbrev.stacc.com/&quot;&gt;weekly newsletter&lt;/a&gt; about finance, technology, and design has passed its #86 edition during the last year, becoming a weekly staple in people’s inboxes. We’re glad for all the great feedback we’re getting!&lt;/p&gt;

&lt;p&gt;Last year we also wrote a &lt;a href=&quot;https://www.dn.no/innlegg/finans/bank/konkurranse/innlegg-den-vennlige-rebellen-sbanken/2-1-996640&quot;&gt;comment in DN on DNB’s acquisition of Sbanken&lt;/a&gt; and the potential consequences that could have, and got interviewed by Kode 24 about &lt;a href=&quot;https://www.kode24.no/artikkel/utviklerne-gjenskapte-kontoret-pa-gather---gjort-hjemmekontor-mye-artigere/75169906&quot;&gt;how we’ve been using Gather.town&lt;/a&gt; during the pandemic.&lt;/p&gt;

&lt;h2 id=&quot;presentations&quot;&gt;Presentations&lt;/h2&gt;

&lt;p&gt;We also held a few presentations this year. Stine Neteland presented our strategy for expanding from Bergen to the world for the Bergen Chamber of Commerce and Industry. She also gave this presentation for our seminar on the Future of Fintech, where Helene Stenstadvold talked about working for Tryg in their Nordic Underwriting program.&lt;/p&gt;

&lt;p&gt;We also contributed to &lt;a href=&quot;https://www.meetup.com/React-Bergen/&quot;&gt;ReactJS Bergen&lt;/a&gt; by talking about &lt;a href=&quot;https://www.youtube.com/watch?v=OqaL1zwOIsw&quot;&gt;Styled components and how to leverage that for styling your react projects.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We’ve also held a presentation for Uni Micro about what UX is, why it’s important and how you can implement it into your organization. Please reach out if you want us to give a presentation on UX, banking, trends, or technology!&lt;/p&gt;

&lt;figure class=&quot;post__full&quot;&gt;
    &lt;img loading=&quot;lazy&quot; src=&quot;/img/2022/presentations.webp&quot; alt=&quot;Stacc X presentations&quot; /&gt;
    &lt;figcaption&gt;Stine and Henna presenting “fra Bergen til Verden” | Helene presenting Trygs Nordic Underwriting program | Presentation about UX
&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;thanks-to-all-our-clients-and-partners&quot;&gt;Thanks to all our clients and partners!&lt;/h2&gt;

&lt;p&gt;2021 was (also) a strange year, but thanks to our great clients and partners, it has been an exciting year! Now we’re looking forward to continuing to help clients launch new solutions and ideas!&lt;/p&gt;

&lt;p&gt;PS: You should &lt;a href=&quot;http://nyhetsbrev.stacc.com&quot;&gt;subscribe to our weekly newsletter&lt;/a&gt; to keep up to date on what happens in Fintech, design, and technology in the Nordics.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>65 things I learned in 2021</title>
   <link href="https://hauken.no/learned-2021/"/>
   <updated>2022-01-01T00:00:00+00:00</updated>
   <id>https://hauken.no/learned-2021/</id>
   <content type="html">&lt;ol&gt;
  &lt;li&gt;1 horse has about 15 horsepowers. &lt;a href=&quot;https://twitter.com/siropsalot/status/1458882991795675147?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The world is spinning faster than it used to. &lt;a href=&quot;https://phys.org/news/2021-01-earth-faster.html&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;In Poland, they use clams to check if the water is clean. &lt;a href=&quot;https://www.polishnews.co.uk/poznan-the-clams-filter-the-water-they-check-whether-the-water-is-polluted-or-clean/&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Tomatoes was unknown to Italy before the 1600s. &lt;a href=&quot;https://twitter.com/seldo/status/1356795989399543808?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Lego is the largest tire manufacturer in the world. &lt;a href=&quot;https://twitter.com/david_perell/status/1363216675705872385&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;George HW Bush went parachute jumping at ages 72, 75, 80, 85, and 90. &lt;a href=&quot;https://www.businessinsider.com/george-hw-bush-marked-birthday-with-skydive-2019-6&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;An American TV viewer who watches Netflix instead of normal ad-funded television could avoid 160 hours of ads every year. That’s equivalent to a month of eight-hour working days. &lt;a href=&quot;https://www.businessinsider.com/netflix-subscribers-save-160-hours-of-commercials-compared-to-cable-2016-5&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;A million seconds is 11 days. A billion seconds is 31 years. &lt;a href=&quot;https://pomp.substack.com/p/time-billionaire&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The most expensive substance on Earth is antihydrogen, priced at $62.5 trillion per gram. &lt;a href=&quot;https://science-to-go.com/antimatter-most-expensive-substance-on-earth/&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;16 pt text on Windows is ⅓ larger than 16 pt text on macOS. &lt;a href=&quot;https://tonsky.me/blog/font-size/&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Elon Musk personally met with the first 3 000 people that Space X hired to make sure the company was hiring the right people. &lt;a href=&quot;https://twitter.com/david_perell/status/1377727318089736195?s=20&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Almost 25% of all the bones in a human body are located in the foot. &lt;a href=&quot;https://www.arthritis.org/health-wellness/about-arthritis/where-it-hurts/anatomy-of-the-foot&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The moon landing was only 66yrs after the first aircraft flight with a crew (1903-1969). Humans went from not having flight technology to traveling 384 400 km from Earth within a lifetime. &lt;a href=&quot;https://twitter.com/trungtphan/status/1383816443918123009?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The combined value of all Oscar’s actor/actress swag bags in 2021 was almost as much as the total box office for Best Picture frontrunner Nomadland ($5.1m swag bags vs. $6.1m total box office). &lt;a href=&quot;https://cyprus-mail.com/2021/04/25/oscars-swag-a-peek-at-the-205000-academy-awards-gift-bag/&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;All the planets could fit between the Earth and the moon. &lt;a href=&quot;https://twitter.com/physicsj/status/1385907385034678273?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Pepsi once had the 6th largest military in the world. &lt;a href=&quot;https://nickyoder.com/5-minute-history-pepsi/&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Venus flytraps have to put their flowers far away from their traps to not accidentally kill their pollinators. &lt;a href=&quot;https://twitter.com/hankgreen/status/1392662559233216514?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;During WWII, the British forces created inflatable tanks and armies to distract Germany from Normandie. &lt;a href=&quot;https://www.reddit.com/r/interestingasfuck/comments/kfqa56/the_british_created_inflatable_armies_to_distract/&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;In 1850, 60% of all deaths in NY were children under age 5. The main killer? Milk. Pasteurization wasn’t invented before 1865. &lt;a href=&quot;https://www.nytimes.com/2021/04/27/magazine/global-life-span.html&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;At the University of Kansas, some students had an initiation where they sucked on parts of Einsteins’ brain. &lt;a href=&quot;https://twitter.com/robertmoor_/status/1396922428110954497?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Polar bears only live in the Arctic. The Arctic means “near the bear” while the Antarctic means “not near the bear.” (The bear in question is, however, Ursa Major). &lt;a href=&quot;https://twitter.com/kylejbritt/status/1395473405051277326?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Walt Disney is the 2nd biggest consumer of explosives in the United States. Only the US Department of Defense uses more. &lt;a href=&quot;https://twitter.com/g_rom3/status/1395482464278269955?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;On spacewalks, astronaut fingernails sometimes pop off, and we are unsure why. &lt;a href=&quot;https://twitter.com/gaohmee/status/1395607363726438413?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;A buttload is an actual term of measurement, referring to a butt or cask used for wine or ale. It’s equal to 573 liters (wine) or 491 liters (ale).  &lt;a href=&quot;https://commonplacefacts.wordpress.com/2020/02/05/a-buttload-is-an-actual-unit-of-measurement/&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The length of a day on Venus is constantly changing. But on average, a day on Venus is equal to 243.0226 Earth days &lt;a href=&quot;https://www.space.com/venus-day-length-changing-radar-measurements&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;A turtle shell is modified ribs. &lt;a href=&quot;https://twitter.com/ceri_weber/status/1402960827955752961?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;To be in the top 1% of podcasts in the world, you only need to publish 21 episodes. &lt;a href=&quot;https://www.reddit.com/r/Entrepreneur/comments/o22h74/the_art_and_science_of_getting_to_the_very_top_of/&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The gasbags inside hydrogen airships of the 1930s were made from the outer layer of a cow’s intestines. The gasbags of the Graf Zeppelin were made from the guts of around half a million cows. &lt;a href=&quot;https://chriswillx.com/3-minute-monday-mothering-cow-intestines-donuts/&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Octopuses have eight arms, but they also have three hearts. &lt;a href=&quot;https://twitter.com/kathrynscollins/status/1402457656053452800?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Wider tires on road bikes are faster than thin tires. &lt;a href=&quot;https://www.renehersecycles.com/12-myths-in-cycling-1-wider-tires-are-slower/&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;In Disneyland, they have smellitizers, think speakers emitting smell and not sound to make your experience more memorable since smell is closely related to memory. &lt;a href=&quot;https://twitter.com/trungtphan/status/1408440561258795017?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;4th of July 1892, Samoa moved the international dateline. This meant they had Monday 4th of July 1982 twice. It’s the only time a country has had a year with 367 days. &lt;a href=&quot;https://twitter.com/osol/status/1411669895801192449?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The LED boards with advertisements around the soccer field during the UEFA European Championship ran at 200fps with every 4th frame for different Ads. TV operators take multiple channels from a camera to make four different feeds with the same content but different ads. This is possible because TVs in Europe run at 50fps. &lt;a href=&quot;https://twitter.com/manekinekko/status/1411994281598930944?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;In 1986, Cleveland released 1.5 million helium balloons just for fun. &lt;a href=&quot;https://twitter.com/morganhousel/status/1414215559399366662?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;You can run javascript in a pdf. &lt;a href=&quot;https://github.com/osnr/horrifying-pdf-experiments&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Paper planes are older than airplanes. In 1864 kids were flying paper planes; decades before the Wright brothers had their first flight. At that time, they were called “paper darts. &lt;a href=&quot;https://www.vox.com/2015/4/28/8505377/paper-airplanes-history&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;After WWII, Idaho dealt with a surplus of parachutes and a nuisance beaver problem. Their solution? Parachuting beavers into the backcountry. &lt;a href=&quot;https://youtu.be/rpWKd9uT2Ro&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The moon causes high and low tides. The moon’s gravitational pull causes Earth—and its water—to bulge out on the side closest to the moon and the side farthest from the moon. The Earth rises half a meter from this pull. &lt;a href=&quot;https://forskning.no/a/1085261&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Any time you see a blimp, you look at 4% of the world’s blimps. &lt;a href=&quot;https://twitter.com/elidourado/status/1416422153138884610?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Butterflies taste with their feet. &lt;a href=&quot;https://animals.sandiegozoo.org/animals/butterfly&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Gravity creates most of the sense of urgency for peeing, so astronauts can’t always tell when they need to go in microgravity. It’s such a complicated process that they pee on a schedule. &lt;a href=&quot;https://twitter.com/maryrobinette/status/1152296251121123334?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The color blue is always out of focus for the human eye. Our brain extracts some color information from the blue channel but delegates sharpness to the red and green channels. &lt;a href=&quot;https://calebkruse.com/10-projects/seeing-blue/&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Sloths are moving slowly because they have to preserve their energy since they only eat some specific leaves that take up to a month to metabolize. This also means that they only defecate once a week. &lt;a href=&quot;https://en.wikipedia.org/wiki/Sloth&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The United States uses more electricity for air conditioning than the whole of Africa uses for everything. &lt;a href=&quot;https://twitter.com/andybudd/status/1426828497666850816?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The first drones were cameras strapped to pigeons in 1907. &lt;a href=&quot;https://en.wikipedia.org/wiki/Pigeon_photography&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Cyclops are real, and there’s a plant that causes cyclopism that grows wild in the Rocky Mountains. &lt;a href=&quot;https://en.wikipedia.org/wiki/Cyclopamine&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Oxford university was founded 200 years before the rise of the Aztec civilization. &lt;a href=&quot;https://twitter.com/boyanslat/status/1431567587725520896?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Greenland sharks reach sexual maturity at 150 years old.&lt;a href=&quot;https://twitter.com/eigenbros/status/1431591827669458960?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The original Latin word for “decide,” decidere, means “to cut off,” as in slicing away alternatives. &lt;a href=&quot;https://www.etymonline.com/word/decide&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;When Fiat built their factory, they had a racetrack on their roof. &lt;a href=&quot;https://kottke.org/21/09/fiats-rooftop-racetrack&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Swiss railway clocks run 1.7% faster than normal clocks. The second-hand hits the top of the clock after 58 seconds (instead of 60 seconds). This gives a train two full seconds to arrive at a station “on time,” which helps maintain the illusion of punctuality. &lt;a href=&quot;https://twitter.com/trungtphan/status/1439246042118049794?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Your eyes are the only part of your brain outside your cranial. &lt;a href=&quot;https://open.spotify.com/episode/6ARrJfjusp7Xm4ApY9QX1s?si=49ZSuZP1TOSwDF7jjdc9Lg&amp;amp;t=2689&amp;amp;context=spotify%3Ashow%3A6kAsbP8pxwaU2kPibKTuHE&amp;amp;dl_branch=1&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Hergé’s drawing style is referred to as “Ligne claire”. &lt;a href=&quot;https://twitter.com/rsms/status/1444691721216925698?s=20&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Closing roads can improve everyone’s commute time. &lt;a href=&quot;https://mindyourdecisions.com/blog/2009/01/06/why-the-secret-to-speedier-highways-might-be-closing-some-roads-the-braess-paradox/#.U4Ksl_ldUud&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;A one-in-billion event will happen eight times a month. &lt;a href=&quot;https://gwern.net/Littlewood&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Hot water freezes faster than cold. This is called the Mpemba effect. &lt;a href=&quot;https://en.wikipedia.org/wiki/Mpemba_effect&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;FedEx originally charged by weight until they got a big customer whose product was ten-gallon hats. &lt;a href=&quot;https://twitter.com/ByrneHobart/status/1448370233652269059?s=20&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Cleopatra lived closer to the moon landing than the building of the pyramids. &lt;a href=&quot;https://www.instagram.com/reel/CVZeKUPJfMJ/?utm_source=ig_web_copy_link&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The new MacBook Pro M1 Max chip has 57 billion transistors, 2x all the CPUs in all the Macs shipped in 1984. Pixar’s render farm for Toy Story only had one billion transistors in total. &lt;a href=&quot;https://www.ben-evans.com/&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;That distinctive, earthy odor associated with rainfall is called petrichor. &lt;a href=&quot;https://en.wikipedia.org/wiki/Petrichor&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Bees can’t fly in the dark. If the light suddenly disappears, they fall to the ground. &lt;a href=&quot;https://twitter.com/hamishsymington/status/1466704319483416577?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;10% of US electricity is generated from old Russian nuclear warheads. &lt;a href=&quot;https://www.npr.org/2013/12/11/250007526/megatons-to-megawatts-russian-warheads-fuel-u-s-power-plants&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;You always turn to the right before turning to the left on a bike, and vice versa. &lt;a href=&quot;https://kottke.org/21/11/most-people-dont-know-how-bikes-work&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;If you put one adult’s veins, capillaries and arteries end to end, it would circle the Earth two and a half times. &lt;a href=&quot;https://www.instagram.com/p/CXL9UwWFxnH/&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Both male &amp;amp; female Reindeer grow antlers. But all male Reindeer lose their antlers in the late fall, well-before Christmas. Santa’s reindeer, which all sport antlers, are therefore all female, which means Rudolf has been misgendered. &lt;a href=&quot;https://twitter.com/neiltyson/status/1474541148928716805?s=21&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</content>
 </entry>
 
 <entry>
   <title>Stay close to the final pixels</title>
   <link href="https://hauken.no/stay-close-to-the-final-pixels/"/>
   <updated>2021-12-26T00:00:00+00:00</updated>
   <id>https://hauken.no/stay-close-to-the-final-pixels/</id>
   <content type="html">&lt;p&gt;The lines between design and code are becoming more and more blurred. You can choose to ignore it or start embracing that code will make you a better designer.&lt;/p&gt;

&lt;h2 id=&quot;patterns&quot;&gt;Patterns&lt;/h2&gt;

&lt;p&gt;One day I suddenly became a better designer. I had worked with CSS for multiple years, but a workshop with &lt;a href=&quot;http://csswizardry.com&quot;&gt;Harry Roberts&lt;/a&gt; in the cold city of Zurich changed my relationship to design and code forever. We got a task to review a design and look for patterns and similar elements. The idea behind the exercise was to simplify the code and find objects and abstractions we could reuse. I was struck about the parallel to how this also made the design better: Do these elements have different border radius? Why do I have five different font sizes when I easily could have only two instead?&lt;/p&gt;

&lt;p&gt;Understanding code forces you to think about reusability and modularity in your designs. Design isn’t just impacting the styling anymore – it also lives in code. This means that designers who can think like developers will have a vast lever as we advance. Design tools now have components with variants, color variables, and flexible layout systems emulating real-world code. Design is suddenly starting to play a role in how codebases and components are structured.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;material&quot;&gt;Material&lt;/h2&gt;

&lt;p&gt;I was bored of being bored. The teacher in front of me had been going on for three hours about how paper is created and what defines the fiber direction of the paper. He continued about offset printing, digital printing, and gravure. We couldn’t care less. In the middle of the room stood an old Heidelberg Windmill printing press, and the teacher had promised that we would try it out. This was a once-in-a-lifetime opportunity! Our teacher was retired but came to talk to us out of his love for paper and this printing press. No one else knew how to operate the noisy monster, so it was a matter of time before the school would have it removed.&lt;/p&gt;

&lt;p&gt;After lecturing for four hours, he finally fired up the Heidelberg machine. It looked like an octopus sucking up a sheet of paper, laying it elegantly on a metal plate, and rolling ink over. It was a hypnotic, meditative, and noisy dance taking place right before us. We each got a turn letterpressing our name and controlling the beast. The prints were crisp, and you could see the subtle imprint on the letters.&lt;/p&gt;

&lt;p&gt;We were all ecstatic when we bound small leaflets of papers with all our names to conclude the day. There was only one problem: our booklets wouldn’t lay flat, making it hard to see our printing results. Our teacher smirked when he once again could lecture us on the magnificent world of papers: We hadn’t considered the paper’s fiber direction when we printed, causing the paper to rise rather than lay flat.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Just like any material, screens have affordances. [..] The grain is what gives the material its identity and tells you the best way to use it. Figure out the grain, and you know how to natively design for screens.&lt;/p&gt;

  &lt;p&gt;– &lt;a href=&quot;https://frankchimero.com/blog/2013/what-screens-want/&quot;&gt;Frank Chimero&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As a print designer, you’ll want to understand paper, fiber directions, ink, and printing processes. As a software UI designer, you’ll want to understand computers and code.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;blurred-lines&quot;&gt;Blurred lines&lt;/h2&gt;

&lt;p&gt;A designer’s job is not just about how things look but also the intangible. What happens between the screens? How does the solution behave in response to interaction? Some of these states are impossible to adjust or communicate without touching code.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Designing the way elements adapt and morph in the in-between moments is half of your work as a designer. You’re crafting the interstitials.&lt;/p&gt;

  &lt;p&gt;– &lt;a href=&quot;https://frankchimero.com/blog/2013/what-screens-want/&quot;&gt;Frank Chimero&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;One of these intangible features of user experience is speed. A website can be beautiful and have great UX, but that doesn’t help if half of the visitors won’t use the site because of performance issues. It is dependent on everyone’s decisions, from designer to front-end to back-end.&lt;/p&gt;

&lt;p&gt;Your design choices directly impact the code, so it’s time you get your hands dirty and understand how it’s used! After all, the users are seeing the result of the code, not your elaborate Figma sketches. The lines between design and code will become more and more blurred over the coming years. You can choose to ignore it, or you can start thinking like a developer and stay close to the final pixels!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Why selling our car and buying a cargo bike is the best investment we've ever done</title>
   <link href="https://hauken.no/why-selling-car-buying-bike-best-investment/"/>
   <updated>2021-11-21T00:00:00+00:00</updated>
   <id>https://hauken.no/why-selling-car-buying-bike-best-investment/</id>
   <content type="html">&lt;p class=&quot;post__lead&quot;&gt;Three years ago, we sold our car and bought two e-bikes as a replacement. Purchasing a cargo bike is by far one of the best choices we&apos;ve made over the last few years.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/2021/bike.png&quot; alt=&quot;Our bikes&quot; /&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;why&quot;&gt;Why?&lt;/h2&gt;
&lt;p&gt;The idea of getting rid of our car came when we had to pay for changing rusty brake pads. We were not using our car enough. The car was a Volvo V40 we bought to commute between Bergen and Førde because of work, but when we finally moved to Bergen again, we only used the car for the occasional weekend getaway.&lt;/p&gt;

&lt;h2 id=&quot;the-math&quot;&gt;The math&lt;/h2&gt;
&lt;p&gt;As you expect from an analytical couple, we calculated our expenses from the car and our alternatives. The conclusion? We didn’t need a car – we didn’t use it enough to defend the costs. We quickly calculated that our transport needs were well covered by having two bikes combined with the local car collective when we needed to go for longer rides.&lt;/p&gt;

&lt;h2 id=&quot;our-situation&quot;&gt;Our situation&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;We’re a family of four - two parents and two kids (Now 3 and 1 year)&lt;/li&gt;
  &lt;li&gt;We live close to both our parents&lt;/li&gt;
  &lt;li&gt;We live close to the kindergarten (15 min walk ~ 5 min bike ride)&lt;/li&gt;
  &lt;li&gt;None of us has ever driven a car to work; we always commuted by bus (~30 min), biked (~15 min for me, ~ 25 min for my wife), or walked.&lt;/li&gt;
  &lt;li&gt;We live close to grocery stores (~10 min walk) and get our food delivered at home once a week&lt;/li&gt;
  &lt;li&gt;We don’t know a lot about cars and can’t fix them ourselves&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;the-bikes&quot;&gt;The bikes&lt;/h2&gt;
&lt;p&gt;After a lot of research, we bought two electric bikes. One large transport bike, a &lt;a href=&quot;https://cargobikemag.com/riese-muller-packster-et-forste-mote/&quot;&gt;Riese &amp;amp; Muller Packster 60&lt;/a&gt;, and a cheaper regular e-bike, Kalkhoff Endeavour. Both with extra studded tires for the winter as well as a child seat. I’ll admit it felt a bit stupid when almost all the money from our old car got used on two new bikes, but it has been totally worth it! We have since upgraded the Kalkhoff to another transport bike: A &lt;a href=&quot;https://www.r-m.de/en-no/bikes/multicharger/&quot;&gt;Riese &amp;amp; Muller Multicharger&lt;/a&gt;. This is a long-tail – a regular cycle with an extended luggage tray with room for both the kids. This way, we can transport two kids on both our bikes.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
	&lt;img src=&quot;/img/2021/bike2.jpg&quot; alt=&quot;A lot of passengers&quot; /&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;happiness&quot;&gt;Happiness&lt;/h2&gt;
&lt;p&gt;The most surprising thing about this choice is the amount of happiness it has brought us. All the perfect moments of our family rolling around. Talking about what we see. Worry-free! No sudden car expenses. We’re experiencing more freedom even though we can’t travel that far on short notice. Our kids are also much happier. A one-hour bike ride is no problem. A one-hour car ride is hell on earth.&lt;/p&gt;

&lt;p&gt;I’ll be the first to admit that it’s not always the most fun experience getting out when it’s below zero and sleet out. But when it’s your only option, it’s actually not that bad. You just have to dress for the weather. As my wife said when we were bicycling home from a mountain trip in the snow: “I’ll admit that I had preferred jumping into a warm car now, but then I thought that car-people don’t know what they are missing.”&lt;/p&gt;

&lt;h2 id=&quot;car-collective&quot;&gt;Car collective&lt;/h2&gt;
&lt;p&gt;When our bikes don’t cut it, we use the local car collective (or parents cars 😘). The downside with car collectives is that you have to plan a lot ahead and that it on paper seems very expensive to pay 2 000 NOK for having a car for one weekend. But if you crunch the numbers and plan ahead, it’s better for both your wallet and the environment. After all, the &lt;a href=&quot;https://www.reinventingparking.org/2013/02/cars-are-parked-95-of-time-lets-check.html&quot;&gt;typical car is parked 95% of the time&lt;/a&gt;! It’s also a more carefree experience. If something is wrong with the vehicle during your trip, you have to report it in the app. After that, it’s not your problem anymore. No more thoughts about service, tire change, EU-control, insurance, or resale value.&lt;/p&gt;

&lt;h2 id=&quot;what-is-the-actual-cost&quot;&gt;What is the actual cost?&lt;/h2&gt;
&lt;p&gt;Transportation is costly, no matter if you are driving, biking, or commuting. But owning a car has many unseen expenses that are easy to forget: tolls, insurance, scheduled and unexpected services, and the largest one: value loss. Getting all our transport related bills from two providers, the car collective and the bike repair shop, it’s easier to see our actual cost of transportation than it would have been if we owned a car.&lt;/p&gt;

&lt;p&gt;Last year we used ~ 19 000 NOK on all expenses related to cars - everything from car collective, parking, toll rings to rent. We used 4 300 NOK on service and new parts for our two electric bikes. If we add the value loss on electric bikes, we’ve used ~ NOK 43 000 on transportation over the last year. This includes a two-week car holiday in Norway and multiple weekend trips to our parents’ cabins.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h3 id=&quot;value-loss&quot;&gt;Value loss&lt;/h3&gt;
  &lt;p&gt;For well-known market brands, an e-bike depreciation rate is &lt;a href=&quot;https://easyebiking.com/how-fast-e-bikes-depreciate-how-fast-e-bikes-lose-value/&quot;&gt;evenly divided over a five to seven year period&lt;/a&gt;. A rule of thumb is that the value loss on cargo bikes is 10 000 NOK a year.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Comparing expenses, a Nissan Leaf would cost us NOK 70 000,- for a year on &lt;a href=&quot;https://imove.no&quot;&gt;iMove&lt;/a&gt; included service and insurance, but without toll and fuel expenses. With that alternative, we would still need to bike to work or have a public transport ticket costing a total of 15 000 NOK a year for the both of us. (Just the parking costs of using a car to work would be more than the expenses we had for transportation last year.)&lt;/p&gt;

&lt;p&gt;This of course, depends on your needs for getting around. But you certainly don’t have to live in the city center to not own a car.&lt;/p&gt;

&lt;h2 id=&quot;environment&quot;&gt;Environment&lt;/h2&gt;
&lt;p&gt;The choice to not own a car was mainly based on logic – we didn’t use our car enough to justify the expenses. But also from an environmental point of view, it just makes sense: &lt;a href=&quot;https://theconversation.com/cycling-is-ten-times-more-important-than-electric-cars-for-reaching-net-zero-cities-157163&quot;&gt;Cycling is ten times more important than electric cars for reaching net-zero cities,&lt;/a&gt; and it’s just a more fun (and healthy) way to travel. I prefer cities that prioritize cyclists and walkers. They are more welcoming! Bergen has never been better than when we arranged the 2017 UCI Road World Championships, and the city center was closed off for cars.&lt;/p&gt;

&lt;figure class=&quot;post__full&quot;&gt;
&lt;img src=&quot;/img/2021/bike3.png&quot; alt=&quot;&quot; /&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;going-forward&quot;&gt;Going forward&lt;/h2&gt;
&lt;p&gt;We might buy a car down the line or subscribe for a car service for a few months a year if we see the need, but for the moment, we’re pleased with our current transportation solution.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Return on design</title>
   <link href="https://hauken.no/return-on-design/"/>
   <updated>2021-11-07T00:00:00+00:00</updated>
   <id>https://hauken.no/return-on-design/</id>
   <content type="html">&lt;p&gt;Why invest in design? Design can at times be very abstract and hard to quantify. Here is five hard numbers, three stories, and one framework to back it up:&lt;/p&gt;

&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100&quot; height=&quot;100&quot; viewBox=&quot;0 0 150 150&quot; fill=&quot;none&quot;&gt;
&lt;path d=&quot;M71.166 142.755L8.62798 97.317C6.34198 95.655 5.38498 92.712 6.25798 90.024L30.144 16.506C31.02 13.821 33.525 12 36.348 12H113.649C116.475 12 118.98 13.821 119.853 16.506L143.739 90.024C144.612 92.712 143.655 95.655 141.369 97.317L78.834 142.755C76.548 144.414 73.452 144.414 71.166 142.755Z&quot; stroke=&quot;#08A9E0&quot; stroke-width=&quot;2&quot; stroke-miterlimit=&quot;10&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; /&gt;
&lt;path d=&quot;M58.7009 36H93.7469C94.9679 36 95.9549 36.99 95.9549 38.208V48.783C95.9549 50.004 94.9649 50.991 93.7469 50.991H72.0719C71.3039 50.991 70.6499 51.558 70.5449 52.32L69.6569 58.542C69.4619 60.165 71.0219 61.374 72.5789 60.879C74.0429 60.414 75.9509 60.024 78.2489 60.024C87.5639 60.024 102 64.839 102 82.449C102 100.059 87.4259 109.503 74.9999 109.503C56.3399 109.503 50.2799 97.158 48.4739 91.431C48.0239 90.009 49.1009 88.575 50.5919 88.575H65.1149C65.7929 88.575 66.4319 88.872 66.8399 89.412C67.8659 90.768 70.3289 93.297 74.4389 93.297C80.0549 93.297 84.2669 88.341 84.2669 83.619C84.2669 78.897 80.3099 74.154 73.9289 74.154C69.4949 74.154 66.9719 77.112 65.8439 78.918C65.3399 79.722 64.3709 80.088 63.4529 79.857L52.0349 76.953C50.9219 76.671 50.2109 75.582 50.3999 74.448L56.5199 37.842C56.6999 36.78 57.6209 36 58.7009 36Z&quot; stroke=&quot;#08A9E0&quot; stroke-width=&quot;2&quot; stroke-miterlimit=&quot;10&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; /&gt;
&lt;/svg&gt;

&lt;h2 id=&quot;five-hard-numbers&quot;&gt;Five hard numbers&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;The ROI for investing in design is &lt;strong&gt;301%&lt;/strong&gt; &lt;a href=&quot;https://www.ibm.com/design/thinking/static/Enterprise-Design-Thinking-Report-8ab1e9e1622899654844a5fe1d760ed5.pdf&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Design makes you launch your product twice as fast! &lt;a href=&quot;https://www.ibm.com/design/thinking/static/Enterprise-Design-Thinking-Report-8ab1e9e1622899654844a5fe1d760ed5.pdf&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Design reduces your development time with &lt;strong&gt;33%&lt;/strong&gt; &lt;a href=&quot;https://www.ibm.com/design/thinking/static/Enterprise-Design-Thinking-Report-8ab1e9e1622899654844a5fe1d760ed5.pdf&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Design-centric companies outperform S&amp;amp;P by &lt;strong&gt;211%&lt;/strong&gt; over 10 years &lt;a href=&quot;http://www.dmi.org/?page=2015DVIandOTW&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Design-invested companies outperform competitors by &lt;strong&gt;two to one&lt;/strong&gt; in revenues and shareholder returns. &lt;a href=&quot;https://www.mckinsey.com/business-functions/mckinsey-design/our-insights/the-business-value-of-design#&quot;&gt;Source&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100&quot; height=&quot;100&quot; viewBox=&quot;0 0 150 150&quot; fill=&quot;none&quot;&gt;
&lt;path d=&quot;M15 102H45V138H15V102ZM105 81H135V138H105V81ZM60 57H90V138H60V57Z&quot; stroke=&quot;#08A9E0&quot; stroke-width=&quot;2&quot; stroke-miterlimit=&quot;10&quot; stroke-linejoin=&quot;round&quot; /&gt;
&lt;path d=&quot;M30 69.5158V89.9998M120 48.5158V68.9998M75 24.5158V44.9998M15.516 69.5158L30 55.0288L44.484 69.5158H15.516ZM105.516 48.5158L120 34.0288L134.484 48.5158H105.516ZM60.516 24.5158L75 10.0288L89.484 24.5158H60.516Z&quot; stroke=&quot;#08A9E0&quot; stroke-width=&quot;2&quot; stroke-miterlimit=&quot;10&quot; stroke-linecap=&quot;round&quot; /&gt;
&lt;/svg&gt;

&lt;h2 id=&quot;story-1-better-conversion&quot;&gt;Story 1: Better conversion&lt;/h2&gt;
&lt;p&gt;In 2017 I worked as a consultant for the fully digital bank Sbanken. My role was designing, prototyping and user test their new self-service mortgage wizard.&lt;/p&gt;

&lt;p&gt;After the development was finished and we launched the new mortgage wizard, Sbanken saw their &lt;strong&gt;conversion rate &lt;a href=&quot;https://puls.ambita.com/smarte-eiendomsdata-ga-stor-gevinst-for-sbanken&quot;&gt;go up 33,5%&lt;/a&gt;&lt;/strong&gt;. That is a huge deal when the bank’s largest source of income is mortgages. As a consequence of faster and more efficient processing of loan applications, the number of &lt;strong&gt;inquiries regarding mortgages to the customer center decreased by 15%.&lt;/strong&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100&quot; height=&quot;100&quot; viewBox=&quot;0 0 150 150&quot; fill=&quot;none&quot;&gt;
&lt;path d=&quot;M108 114H42C20.46 114 3 96.54 3 75C3 53.46 20.46 36 42 36H108&quot; stroke=&quot;#08A9E0&quot; stroke-width=&quot;2&quot; stroke-miterlimit=&quot;10&quot; /&gt;
&lt;path d=&quot;M108 36C97.6566 36 87.7368 40.1089 80.4228 47.4228C73.1089 54.7368 69 64.6566 69 75C69 85.3434 73.1089 95.2632 80.4228 102.577C87.7368 109.891 97.6566 114 108 114C118.343 114 128.263 109.891 135.577 102.577C142.891 95.2632 147 85.3434 147 75C147 64.6566 142.891 54.7368 135.577 47.4228C128.263 40.1089 118.343 36 108 36V36Z&quot; stroke=&quot;#08A9E0&quot; stroke-width=&quot;2&quot; stroke-miterlimit=&quot;10&quot; /&gt;
&lt;path d=&quot;M54 87C53.2044 87 52.4413 87.3161 51.8787 87.8787C51.3161 88.4413 51 89.2044 51 90C51 90.7956 51.3161 91.5587 51.8787 92.1213C52.4413 92.6839 53.2044 93 54 93C54.7956 93 55.5587 92.6839 56.1213 92.1213C56.6839 91.5587 57 90.7956 57 90C57 89.2044 56.6839 88.4413 56.1213 87.8787C55.5587 87.3161 54.7956 87 54 87ZM72 105C71.2044 105 70.4413 105.316 69.8787 105.879C69.3161 106.441 69 107.204 69 108C69 108.796 69.3161 109.559 69.8787 110.121C70.4413 110.684 71.2044 111 72 111C72.7956 111 73.5587 110.684 74.1213 110.121C74.6839 109.559 75 108.796 75 108C75 107.204 74.6839 106.441 74.1213 105.879C73.5587 105.316 72.7956 105 72 105ZM54 69C53.2044 69 52.4413 69.3161 51.8787 69.8787C51.3161 70.4413 51 71.2044 51 72C51 72.7956 51.3161 73.5587 51.8787 74.1213C52.4413 74.6839 53.2044 75 54 75C54.7956 75 55.5587 74.6839 56.1213 74.1213C56.6839 73.5587 57 72.7956 57 72C57 71.2044 56.6839 70.4413 56.1213 69.8787C55.5587 69.3161 54.7956 69 54 69ZM54 105C53.2044 105 52.4413 105.316 51.8787 105.879C51.3161 106.441 51 107.204 51 108C51 108.796 51.3161 109.559 51.8787 110.121C52.4413 110.684 53.2044 111 54 111C54.7956 111 55.5587 110.684 56.1213 110.121C56.6839 109.559 57 108.796 57 108C57 107.204 56.6839 106.441 56.1213 105.879C55.5587 105.316 54.7956 105 54 105ZM45 78C44.2044 78 43.4413 78.3161 42.8787 78.8787C42.3161 79.4413 42 80.2044 42 81C42 81.7956 42.3161 82.5587 42.8787 83.1213C43.4413 83.6839 44.2044 84 45 84C45.7956 84 46.5587 83.6839 47.1213 83.1213C47.6839 82.5587 48 81.7956 48 81C48 80.2044 47.6839 79.4413 47.1213 78.8787C46.5587 78.3161 45.7956 78 45 78ZM45 96C44.2044 96 43.4413 96.3161 42.8787 96.8787C42.3161 97.4413 42 98.2044 42 99C42 99.7956 42.3161 100.559 42.8787 101.121C43.4413 101.684 44.2044 102 45 102C45.7956 102 46.5587 101.684 47.1213 101.121C47.6839 100.559 48 99.7956 48 99C48 98.2044 47.6839 97.4413 47.1213 96.8787C46.5587 96.3161 45.7956 96 45 96V96ZM63 78C62.2044 78 61.4413 78.3161 60.8787 78.8787C60.3161 79.4413 60 80.2044 60 81C60 81.7956 60.3161 82.5587 60.8787 83.1213C61.4413 83.6839 62.2044 84 63 84C63.7956 84 64.5587 83.6839 65.1213 83.1213C65.6839 82.5587 66 81.7956 66 81C66 80.2044 65.6839 79.4413 65.1213 78.8787C64.5587 78.3161 63.7956 78 63 78ZM63 96C62.2044 96 61.4413 96.3161 60.8787 96.8787C60.3161 97.4413 60 98.2044 60 99C60 99.7956 60.3161 100.559 60.8787 101.121C61.4413 101.684 62.2044 102 63 102C63.7956 102 64.5587 101.684 65.1213 101.121C65.6839 100.559 66 99.7956 66 99C66 98.2044 65.6839 97.4413 65.1213 96.8787C64.5587 96.3161 63.7956 96 63 96V96ZM54 51C53.2044 51 52.4413 51.3161 51.8787 51.8787C51.3161 52.4413 51 53.2044 51 54C51 54.7956 51.3161 55.5587 51.8787 56.1213C52.4413 56.6839 53.2044 57 54 57C54.7956 57 55.5587 56.6839 56.1213 56.1213C56.6839 55.5587 57 54.7956 57 54C57 53.2044 56.6839 52.4413 56.1213 51.8787C55.5587 51.3161 54.7956 51 54 51ZM72 51C71.2044 51 70.4413 51.3161 69.8787 51.8787C69.3161 52.4413 69 53.2044 69 54C69 54.7956 69.3161 55.5587 69.8787 56.1213C70.4413 56.6839 71.2044 57 72 57C72.7956 57 73.5587 56.6839 74.1213 56.1213C74.6839 55.5587 75 54.7956 75 54C75 53.2044 74.6839 52.4413 74.1213 51.8787C73.5587 51.3161 72.7956 51 72 51ZM81 42C80.2044 42 79.4413 42.3161 78.8787 42.8787C78.3161 43.4413 78 44.2044 78 45C78 45.7956 78.3161 46.5587 78.8787 47.1213C79.4413 47.6839 80.2044 48 81 48C81.7956 48 82.5587 47.6839 83.1213 47.1213C83.6839 46.5587 84 45.7956 84 45C84 44.2044 83.6839 43.4413 83.1213 42.8787C82.5587 42.3161 81.7956 42 81 42ZM45 42C44.2044 42 43.4413 42.3161 42.8787 42.8787C42.3161 43.4413 42 44.2044 42 45C42 45.7956 42.3161 46.5587 42.8787 47.1213C43.4413 47.6839 44.2044 48 45 48C45.7956 48 46.5587 47.6839 47.1213 47.1213C47.6839 46.5587 48 45.7956 48 45C48 44.2044 47.6839 43.4413 47.1213 42.8787C46.5587 42.3161 45.7956 42 45 42ZM45 60C44.2044 60 43.4413 60.3161 42.8787 60.8787C42.3161 61.4413 42 62.2044 42 63C42 63.7956 42.3161 64.5587 42.8787 65.1213C43.4413 65.6839 44.2044 66 45 66C45.7956 66 46.5587 65.6839 47.1213 65.1213C47.6839 64.5587 48 63.7956 48 63C48 62.2044 47.6839 61.4413 47.1213 60.8787C46.5587 60.3161 45.7956 60 45 60ZM63 42C62.2044 42 61.4413 42.3161 60.8787 42.8787C60.3161 43.4413 60 44.2044 60 45C60 45.7956 60.3161 46.5587 60.8787 47.1213C61.4413 47.6839 62.2044 48 63 48C63.7956 48 64.5587 47.6839 65.1213 47.1213C65.6839 46.5587 66 45.7956 66 45C66 44.2044 65.6839 43.4413 65.1213 42.8787C64.5587 42.3161 63.7956 42 63 42ZM63 60C62.2044 60 61.4413 60.3161 60.8787 60.8787C60.3161 61.4413 60 62.2044 60 63C60 63.7956 60.3161 64.5587 60.8787 65.1213C61.4413 65.6839 62.2044 66 63 66C63.7956 66 64.5587 65.6839 65.1213 65.1213C65.6839 64.5587 66 63.7956 66 63C66 62.2044 65.6839 61.4413 65.1213 60.8787C64.5587 60.3161 63.7956 60 63 60ZM18 87C17.2044 87 16.4413 87.3161 15.8787 87.8787C15.3161 88.4413 15 89.2044 15 90C15 90.7956 15.3161 91.5587 15.8787 92.1213C16.4413 92.6839 17.2044 93 18 93C18.7956 93 19.5587 92.6839 20.1213 92.1213C20.6839 91.5587 21 90.7956 21 90C21 89.2044 20.6839 88.4413 20.1213 87.8787C19.5587 87.3161 18.7956 87 18 87ZM36 87C35.2044 87 34.4413 87.3161 33.8787 87.8787C33.3161 88.4413 33 89.2044 33 90C33 90.7956 33.3161 91.5587 33.8787 92.1213C34.4413 92.6839 35.2044 93 36 93C36.7956 93 37.5587 92.6839 38.1213 92.1213C38.6839 91.5587 39 90.7956 39 90C39 89.2044 38.6839 88.4413 38.1213 87.8787C37.5587 87.3161 36.7956 87 36 87ZM36 69C35.2044 69 34.4413 69.3161 33.8787 69.8787C33.3161 70.4413 33 71.2044 33 72C33 72.7956 33.3161 73.5587 33.8787 74.1213C34.4413 74.6839 35.2044 75 36 75C36.7956 75 37.5587 74.6839 38.1213 74.1213C38.6839 73.5587 39 72.7956 39 72C39 71.2044 38.6839 70.4413 38.1213 69.8787C37.5587 69.3161 36.7956 69 36 69ZM36 105C35.2044 105 34.4413 105.316 33.8787 105.879C33.3161 106.441 33 107.204 33 108C33 108.796 33.3161 109.559 33.8787 110.121C34.4413 110.684 35.2044 111 36 111C36.7956 111 37.5587 110.684 38.1213 110.121C38.6839 109.559 39 108.796 39 108C39 107.204 38.6839 106.441 38.1213 105.879C37.5587 105.316 36.7956 105 36 105ZM18 69C17.2044 69 16.4413 69.3161 15.8787 69.8787C15.3161 70.4413 15 71.2044 15 72C15 72.7956 15.3161 73.5587 15.8787 74.1213C16.4413 74.6839 17.2044 75 18 75C18.7956 75 19.5587 74.6839 20.1213 74.1213C20.6839 73.5587 21 72.7956 21 72C21 71.2044 20.6839 70.4413 20.1213 69.8787C19.5587 69.3161 18.7956 69 18 69ZM9 78C8.20435 78 7.44129 78.3161 6.87868 78.8787C6.31607 79.4413 6 80.2044 6 81C6 81.7956 6.31607 82.5587 6.87868 83.1213C7.44129 83.6839 8.20435 84 9 84C9.79565 84 10.5587 83.6839 11.1213 83.1213C11.6839 82.5587 12 81.7956 12 81C12 80.2044 11.6839 79.4413 11.1213 78.8787C10.5587 78.3161 9.79565 78 9 78ZM27 78C26.2044 78 25.4413 78.3161 24.8787 78.8787C24.3161 79.4413 24 80.2044 24 81C24 81.7956 24.3161 82.5587 24.8787 83.1213C25.4413 83.6839 26.2044 84 27 84C27.7956 84 28.5587 83.6839 29.1213 83.1213C29.6839 82.5587 30 81.7956 30 81C30 80.2044 29.6839 79.4413 29.1213 78.8787C28.5587 78.3161 27.7956 78 27 78ZM27 96C26.2044 96 25.4413 96.3161 24.8787 96.8787C24.3161 97.4413 24 98.2044 24 99C24 99.7956 24.3161 100.559 24.8787 101.121C25.4413 101.684 26.2044 102 27 102C27.7956 102 28.5587 101.684 29.1213 101.121C29.6839 100.559 30 99.7956 30 99C30 98.2044 29.6839 97.4413 29.1213 96.8787C28.5587 96.3161 27.7956 96 27 96V96ZM18 51C17.2044 51 16.4413 51.3161 15.8787 51.8787C15.3161 52.4413 15 53.2044 15 54C15 54.7956 15.3161 55.5587 15.8787 56.1213C16.4413 56.6839 17.2044 57 18 57C18.7956 57 19.5587 56.6839 20.1213 56.1213C20.6839 55.5587 21 54.7956 21 54C21 53.2044 20.6839 52.4413 20.1213 51.8787C19.5587 51.3161 18.7956 51 18 51ZM36 51C35.2044 51 34.4413 51.3161 33.8787 51.8787C33.3161 52.4413 33 53.2044 33 54C33 54.7956 33.3161 55.5587 33.8787 56.1213C34.4413 56.6839 35.2044 57 36 57C36.7956 57 37.5587 56.6839 38.1213 56.1213C38.6839 55.5587 39 54.7956 39 54C39 53.2044 38.6839 52.4413 38.1213 51.8787C37.5587 51.3161 36.7956 51 36 51ZM9 60C8.20435 60 7.44129 60.3161 6.87868 60.8787C6.31607 61.4413 6 62.2044 6 63C6 63.7956 6.31607 64.5587 6.87868 65.1213C7.44129 65.6839 8.20435 66 9 66C9.79565 66 10.5587 65.6839 11.1213 65.1213C11.6839 64.5587 12 63.7956 12 63C12 62.2044 11.6839 61.4413 11.1213 60.8787C10.5587 60.3161 9.79565 60 9 60ZM27 42C26.2044 42 25.4413 42.3161 24.8787 42.8787C24.3161 43.4413 24 44.2044 24 45C24 45.7956 24.3161 46.5587 24.8787 47.1213C25.4413 47.6839 26.2044 48 27 48C27.7956 48 28.5587 47.6839 29.1213 47.1213C29.6839 46.5587 30 45.7956 30 45C30 44.2044 29.6839 43.4413 29.1213 42.8787C28.5587 42.3161 27.7956 42 27 42ZM27 60C26.2044 60 25.4413 60.3161 24.8787 60.8787C24.3161 61.4413 24 62.2044 24 63C24 63.7956 24.3161 64.5587 24.8787 65.1213C25.4413 65.6839 26.2044 66 27 66C27.7956 66 28.5587 65.6839 29.1213 65.1213C29.6839 64.5587 30 63.7956 30 63C30 62.2044 29.6839 61.4413 29.1213 60.8787C28.5587 60.3161 27.7956 60 27 60Z&quot; fill=&quot;#08A9E0&quot; /&gt;
&lt;/svg&gt;

&lt;h2 id=&quot;story-2-the-cost-of-not-investing-in-design&quot;&gt;Story 2: The cost of not investing in design&lt;/h2&gt;
&lt;p&gt;In February 2021, employees of Citibank accidentally &lt;a href=&quot;https://arstechnica.com/tech-policy/2021/02/citibank-just-got-a-500-million-lesson-in-the-importance-of-ui-design/&quot;&gt;wired $900 million incorrectly&lt;/a&gt;. The error happened despite three persons needing to accept the transfer. The reason? Users of the software didn’t understand which checkboxes they should check off to pay down parts of a loan.&lt;/p&gt;

&lt;p&gt;When they discovered the error the next day, their first reaction was to email tech support to say the software was broken, not to email the lenders asking for the money back (which they did afterward). Eventually, they got back about $400 million, &lt;strong&gt;a total net loss of $500 million that can be attributed to three people not understanding the design of the solution.&lt;/strong&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100&quot; height=&quot;100&quot; viewBox=&quot;0 0 150 150&quot; fill=&quot;none&quot;&gt;
&lt;path d=&quot;M9 27H141V69H9V27Z&quot; stroke=&quot;#08A9E0&quot; stroke-width=&quot;2&quot; stroke-miterlimit=&quot;10&quot; stroke-linecap=&quot;round&quot; /&gt;
&lt;path d=&quot;M15 75V123H27V75M123 75V123H135V75H123Z&quot; stroke=&quot;#08A9E0&quot; stroke-width=&quot;2&quot; stroke-miterlimit=&quot;10&quot; /&gt;
&lt;path d=&quot;M114 69L141 42M9 54L36 27L9 54ZM18 69L60 27L18 69ZM42 69L84 27L42 69ZM66 69L108 27L66 69ZM90 69L132 27L90 69Z&quot; stroke=&quot;#08A9E0&quot; stroke-width=&quot;2&quot; stroke-miterlimit=&quot;10&quot; stroke-linecap=&quot;round&quot; /&gt;
&lt;/svg&gt;

&lt;h2 id=&quot;story-3-validating-ideas-early&quot;&gt;Story 3: Validating ideas early&lt;/h2&gt;
&lt;p&gt;A client came to us with an idea and a business plan. We helped them create a clickable prototype of the product and interviewed some of their existing customers to validate the concept. Is this feature something they would find helpful? The answer was unanimous: this was not relevant. We brought the feedback back to the client, telling them this idea should be scrapped.&lt;/p&gt;

&lt;p&gt;This saved them thousands of hours of development, helping them pivot to a more lucrative idea. Lesson learned: &lt;strong&gt;design reduces risk by validating ideas earlier&lt;/strong&gt;. Design helps you understand the customers’ needs, focus on the right ones and thereby develop fewer things.&lt;/p&gt;

&lt;hr /&gt;

&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100&quot; height=&quot;100&quot; viewBox=&quot;0 0 150 150&quot; fill=&quot;none&quot;&gt;
&lt;path d=&quot;M81 87V129C81 132.315 83.685 135 87 135H129C132.315 135 135 132.315 135 129V87C135 83.685 132.315 81 129 81H87C83.685 81 81 83.685 81 87Z&quot; stroke=&quot;#08A9E0&quot; stroke-width=&quot;2&quot; stroke-miterlimit=&quot;10&quot; /&gt;
&lt;path d=&quot;M135 63V21C135 17.685 132.315 15 129 15H87C83.685 15 81 17.685 81 21V63C81 66.315 83.685 69 87 69H129C132.315 69 135 66.315 135 63Z&quot; stroke=&quot;#08A9E0&quot; stroke-width=&quot;2&quot; stroke-miterlimit=&quot;10&quot; /&gt;
&lt;path d=&quot;M15 87V129C15 132.315 17.685 135 21 135H63C66.315 135 69 132.315 69 129V87C69 83.685 66.315 81 63 81H21C17.685 81 15 83.685 15 87Z&quot; stroke=&quot;#08A9E0&quot; stroke-width=&quot;2&quot; stroke-miterlimit=&quot;10&quot; /&gt;
&lt;path d=&quot;M69 63V21C69 17.685 66.315 15 63 15H21C17.685 15 15 17.685 15 21V63C15 66.315 17.685 69 21 69H63C66.315 69 69 66.315 69 63Z&quot; stroke=&quot;#08A9E0&quot; stroke-width=&quot;2&quot; stroke-miterlimit=&quot;10&quot; /&gt;
&lt;/svg&gt;

&lt;h2 id=&quot;a-framework&quot;&gt;A framework&lt;/h2&gt;
&lt;p&gt;Reading this, designers could reason that nerding out, tweaking colors, and cleaning up typography is a worthwhile return on investment. But making the design “better” isn’t necessarily more valuable to the user or the company’s bottom line. Therefore &lt;a href=&quot;https://www.designerfund.com&quot;&gt;Designer Fund&lt;/a&gt; has created a valuable framework for communicating return on design called &lt;a href=&quot;https://www.designerfund.com/blog/the-20-levers-for-return-on-design/&quot;&gt;“20 levers for return on design.”&lt;/a&gt; It is a tool that bridges the world of design with the world of spreadsheets.&lt;/p&gt;

&lt;p&gt;The framework consists of four quadrants. The quadrants at the top are divided into saving money and making money. Along the sides, you’ll see the direct impact and indirect impact for the business. With direct impact, you see a causation of your work and the money your business earns or saves. With indirect impact, the money your business makes is often correlated: An improved net promoter score and increased word of mouth can increase sales.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://images.ctfassets.net/c2ymzylebto4/TXqH8Qk7VSNsUp3EpORFA/c8d1bff0254d7cba0050ff8847df1ead/Image_4.png&quot; alt=&quot;20 levers for return on design&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The framework can be used as a starting point or checklist for talking about the return on design. When it comes to UX design, the most significant Return On Investment is often about putting an end to poor design. Using the framework, we can see that eliminating poor design directly affects the upper quadrants, with potential better conversion, more sales, better retention, and potentially saving money for the IT department and support. On the lower quadrants removing poor design could indirectly earn more by getting more satisfied customers, better usability, and increased brand perception. Getting rid of poor design could also save money by reducing training time and errors.&lt;/p&gt;

&lt;p&gt;Thanks to Jens Wedin &lt;a href=&quot;https://jenswedin.medium.com/why-invest-in-design-e4a6d745afb2&quot;&gt;for some of the numbers&lt;/a&gt;!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Forget goals</title>
   <link href="https://hauken.no/forget-goals/"/>
   <updated>2021-10-09T00:00:00+00:00</updated>
   <id>https://hauken.no/forget-goals/</id>
   <content type="html">&lt;p&gt;I always found it a bit embarrassing having the yearly performance talk with my previous employer. Most of the conversation involved talking about the goals in the prior year and how I missed them. Then we set new goals that I didn’t care about and would miss the following year. Strangely enough, my employer and clients were pleased with my results. So much that they one year just said: “whatever you are doing, just continue doing that,” and I finally got freed from the goal-setting.&lt;/p&gt;

&lt;p&gt;Goals have never worked very well for me. I’m having a hard time coming up with them, following them, and reaching them. How does that work in a very goal-oriented society?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/2021/Forget-goals.webp&quot; alt=&quot;Forget goals&quot; style=&quot;max-width: &quot; /&gt;&lt;/p&gt;

&lt;p&gt;I make systems or micro-strategies. I put one foot in front of the other and focus on that. After doing it enough times, I’m suddenly at the top of the mountain. I don’t focus on the view at the top or what my time is going to be. The strategy is to get out of the door and move the feet, preferably faster than yesterday.&lt;/p&gt;

&lt;h2 id=&quot;system-stacking&quot;&gt;System stacking&lt;/h2&gt;
&lt;p&gt;One thing I’m relatively consistent at is training. I do it more or less every day. I have a lot of systems for getting to work out almost daily instead of goals. The problem with goals in training is that not reaching them can become demotivating. Reaching them can be just as bad. We all know people having running a marathon as a goal and stopped running the day after.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My first system&lt;/strong&gt; for training regularly is probably more of a mindset or a rule: I break a sweat every day. It doesn’t matter how much or how long, as long as I break a sweat. It’s just like brushing my teeth —something I do every day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A second system&lt;/strong&gt; is to place training in the calendar every day. I rarely train at that time, but I have seen that there is room for it in the schedule and thought about the training that day. If the days are hectic, I’ve also noticed that beforehand and probably found a way to break a sweat.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A third system&lt;/strong&gt; is to have a training program. I want as few hurdles as possible between me and the training. Knowing what I’m going to do each time I work out makes it more effortless to see progress.&lt;/p&gt;

&lt;p&gt;The good thing about all these micro-strategies is that they don’t take much time. All of them can be performed separately, but they have more effect the more you stack on top of each other.&lt;/p&gt;

&lt;p&gt;I also know that it will be easier for me to train if the barrier is lower. Therefore I’ve invested in a home gym. This way, I can walk downstairs and work out without being bothered by bad weather, what equipment is available, transport to the gym, or being away from the family.&lt;/p&gt;

&lt;h2 id=&quot;atomic-habits&quot;&gt;Atomic habits&lt;/h2&gt;
&lt;p&gt;It all made sense when I read &lt;a href=&quot;https://amzn.to/3yYq4QW&quot;&gt;Atomic Habits by James Clear&lt;/a&gt;. The book’s main point is that if you want better results, then forget about setting goals. Focus on your system instead. Just like I have been doing for as long as I can remember.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Your outcomes are a lagging measure of your habits. Your net worth is a lagging measure of your financial habits. Your weight is a lagging measure of your eating habits. Your knowledge is a lagging measure of your learning habits. Your clutter is a lagging measure of your cleaning habits. You get what you repeat.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Another central idea in the book is to build identity-based habits. You should focus on the type of person you wish to become rather than the outcome of what you want to achieve. This way, you won’t stop because you’ve reached a goal, but continue. I, for example, see myself as a person who works out. That means that I work out even though we’re on a company trip, or there doesn’t seem to be that much time.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;You do not rise to the level of your goals; you fall to the level of your systems.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;– James Clear&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;forget-goals&quot;&gt;Forget goals&lt;/h2&gt;
&lt;blockquote&gt;
  &lt;p&gt;Goals aren’t as important as we think. Try working without them for a week. Turns out, you can do amazing things without goals. And you don’t have to manage them, cutting out on some of the bureaucracy of your life. You’re less stressed without goals, and you’re freer to choose paths you couldn’t have foreseen without them.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;– Leo Babuta&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Goals often rely on extrinsic motivation, while systems become habitual and automatic after a while. Yes, goals can provide direction and even push you forward in the short term, but eventually, a well-designed system is a winning formula. What makes the difference is committing to the process and not the finish line. As James Clear &lt;a href=&quot;https://jamesclear.com/goals-systems&quot;&gt;point out&lt;/a&gt;, winners and losers, after all, have the same goals.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Summer reading list 2021</title>
   <link href="https://hauken.no/summer-reading-list-21/"/>
   <updated>2021-07-10T00:00:00+00:00</updated>
   <id>https://hauken.no/summer-reading-list-21/</id>
   <content type="html">&lt;p class=&quot;post__lead&quot;&gt;
	Summer means reading time - at least for me. If you need some tips, here are some books I have devoured and was pretty sad to finish. The list is leaning towards science fiction, but don&apos;t let that come in the way if you&apos;re not a sci-fi fan.
&lt;/p&gt;

&lt;figure&gt;
&lt;img src=&quot;/img/2021/book-recommendations.jpg&quot; alt=&quot;Image of 3 books&quot; /&gt;
&lt;figcaption&gt;Some of my recommended books&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;project-hail-mary---andy-weir&quot;&gt;Project Hail Mary - Andy Weir&lt;/h2&gt;
&lt;p&gt;Ryland Grace is the sole survivor on a desperate, last-chance mission — and if he fails, humanity and the earth will perish because something is slowly eating the sun. The book is filled with fun science facts and the witty banter you can expect from Andy Weir. Weir has also written “&lt;a href=&quot;https://amzn.to/3xyVBJ8&quot;&gt;The Martian&lt;/a&gt;” and “&lt;a href=&quot;https://amzn.to/3wu22M0&quot;&gt;Artemis&lt;/a&gt;”, two other favorites of mine.
&lt;br /&gt;&lt;strong&gt;&lt;a href=&quot;https://amzn.to/3yB5AgQ&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Amazon: Project Hail Mary: A novel&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;lexicon---max-barry&quot;&gt;Lexicon - Max Barry&lt;/h2&gt;
&lt;p&gt;At an exclusive school somewhere outside of Arlington, Virginia, the art of coercion is a science. Students control the hidden power of language to manipulate the mind and learn to break down individuals by psychographic markers to control their thoughts. The plot might seem a bit weird, but I thoroughly enjoyed this book when I read it seven years ago. It might be time to read it again, but on top of my reading list this summer is Max Barrys’ new book: “&lt;a href=&quot;https://amzn.to/3ALQR4U&quot;&gt;The 22 Murders of Madison May&lt;/a&gt;”.
&lt;br /&gt;&lt;strong&gt;&lt;a href=&quot;https://amzn.to/3wp8pjT&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Amazon: Lexicon: A novel&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;story-of-your-life-and-others---ted-chiang&quot;&gt;Story of your life and others - Ted Chiang&lt;/h2&gt;
&lt;p&gt;Story of your life and others is a collection of short stories by the American Science fiction writer Ted Chiang. The movie &lt;a href=&quot;https://amzn.to/3yILotD&quot;&gt;Arrival&lt;/a&gt; is based on one of the short stories from this book. If you want something quick to read, this is a great starting point with shorter, captivating stories. A natural follow-up is Chiangs second collection “&lt;a href=&quot;https://amzn.to/3AJp3Ol&quot;&gt;Exhalation&lt;/a&gt;”.&lt;br /&gt;&lt;strong&gt;&lt;a href=&quot;https://amzn.to/3xuvbYZ&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Amazon: Story of your life and others&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;mr-penumbras-24-hour-bookstore---robin-sloan&quot;&gt;Mr. Penumbra’s 24-Hour Bookstore - Robin Sloan&lt;/h2&gt;
&lt;p&gt;Mr. Penumbra’s 24-Hour Bookstore combines ancient mystery and very modern, internet-savvy characters set in San Fransisco. An out-of-work marketeer and web designer takes a job as a clerk at an odd little bookshop. He soon realizes that there is more to Mr. Penumbra than meets the eye. The book is written by &lt;a href=&quot;https://www.robinsloan.com&quot;&gt;Robin Sloan&lt;/a&gt;, an eclectic writer/programmer/tinkerer who produces &lt;a href=&quot;https://fat.gold&quot;&gt;olive oil&lt;/a&gt; (named fat gold) in his spare time.&lt;br /&gt;&lt;strong&gt;&lt;a href=&quot;https://amzn.to/36tQPk9&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Amazon: Mr. Peneumbra’s 24-Hour Bookstore&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;the-psychology-of-money---morgan-housel&quot;&gt;The Psychology of Money - Morgan Housel&lt;/h2&gt;
&lt;p&gt;Morgan Housel is one of the best writers on the topic of finance. He has written an easily digestible book consisting of 19 short stories exploring the strange ways people think about money and how to make better sense of your finances. Also, be sure to &lt;a href=&quot;https://www.collaborativefund.com/blog/&quot;&gt;check out his blog.&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href=&quot;https://amzn.to/2UFm9da&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Amazon: The Psychology of Money.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;bonus-podcast-acquired-on-berkshire-hathaway&quot;&gt;Bonus podcast: Acquired on Berkshire Hathaway&lt;/h2&gt;
&lt;p&gt;How does a 9-hour podcast about Warren Buffett and his company Berkshire Hathaway sound? No thanks, you say? I would urge you to reconsider since this podcast series is a captivating and entertaining deep dive into one of finance’s most famous figures. As a stark contrast, I would also recommend their episode about Etherum.&lt;br /&gt;&lt;strong&gt;&lt;a href=&quot;https://www.acquired.fm/episodes&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Aquired podcast&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p class=&quot;legalese&quot;&gt;Links to Amazon are affiliate links.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Kids mode for iPhone and iPad</title>
   <link href="https://hauken.no/kid-mode-for-ios/"/>
   <updated>2021-07-07T00:00:00+00:00</updated>
   <id>https://hauken.no/kid-mode-for-ios/</id>
   <content type="html">&lt;p class=&quot;post__lead&quot;&gt;Here is a little tip for everyone with children using iPads or iPhones to watch videos or play games. We all know how they suddenly can turn up the volume, switch apps or suddenly sit longer than they promised. I have a simple tips for you: it’s called Guided Access and is built into iOS.&lt;/p&gt;

&lt;figure class=&quot;post__full&quot;&gt;  
&lt;img src=&quot;/img/2021/looking-at-ipad.jpg&quot; alt=&quot;child looking at ipad&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;To enable it go to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;settings &amp;gt; accessibility &amp;gt; guided access&lt;/code&gt; and turn it on. Then you need to go to Passcode-settings and add a passcode for parents. You don’t want your child to get a hold of this. After you’ve done that make sure &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Accessibility shortcut&lt;/code&gt; is on as well. Now get ready for a simpler life!&lt;/p&gt;

&lt;figure&gt;
&lt;img src=&quot;/img/2021/accesibility-settings.jpg&quot; alt=&quot;How to set up guided access&quot; /&gt; 
&lt;figcaption&gt;How the guided-access screen should look&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The next time you are lending away your iPad or iPhone open their favorite app and triple-click the home-button (or the close button if you don’t have a home-button). Your screen is zooming out and you’ll see a few menus. Click on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;options&lt;/code&gt; in the bottom left corner. Here is what each of the items does:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Sleep/wake-button&lt;/strong&gt; if this is disabled they can’t close the screen&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Volume&lt;/strong&gt; if this is off they can’t change the volume. A true lifesaver!&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Motion&lt;/strong&gt; To limit how your device responds to motion, turn this off. For example, your screen won’t respond when shaken, and the screen won’t rotate no matter how you hold your device.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Keyboard&lt;/strong&gt; This disables the keyboard from appearing. This way they can’t write or communicate.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Touch&lt;/strong&gt; This is most useful for static displays in shops etc, but could be useful if your child is constantly switching films or stopping the video or similar. When this is off nothing on the screen will work.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dictionary lookup&lt;/strong&gt; To use the Look Up feature when you select text, turn this on.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Time Limit&lt;/strong&gt; Here you can specify how long the session can go on. When you reach the time you need your special password to continue. Perfect when you say «you can watch another 5 minutes».&lt;/li&gt;
&lt;/ul&gt;

&lt;figure&gt;
&lt;img src=&quot;/img/2021/guided-access-options.png&quot; alt=&quot;Options on guided access&quot; /&gt;
&lt;figcaption&gt;The options when you&apos;re turning on guided access on an iPad&lt;/figcaption&gt; 
&lt;/figure&gt;

&lt;p&gt;When all your settings are configured click «start» in the top right corner. Now you can’t switch programs as well as other restrictions you’ve sat.&lt;/p&gt;

&lt;h2 id=&quot;turn-it-off&quot;&gt;Turn it off&lt;/h2&gt;
&lt;p&gt;Great — how do I turn this off again? Same way you turned it on! You’re now a pro iPad/iPhone-parent. Pat your own back!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://support.apple.com/en-us/HT202612&quot;&gt;Apples guide to use Guided Access with iPhone, iPad, and iPod touch&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;want-more-iphone-and-ipad-tips&quot;&gt;Want more iPhone and iPad tips?&lt;/h2&gt;
&lt;p&gt;Did you enjoy this tip? Subscribe for free at iSecrets.io, and get a daily new tip about features on your iPhone:&lt;/p&gt;
&lt;figure class=&quot;post__wide&quot;&gt;
&lt;a href=&quot;https://www.isecrets.io&quot; class=&quot;post__img-link&quot;&gt;
&lt;img class=&quot;post__img-round&quot; src=&quot;/img/2023/isecrets.webp&quot; alt=&quot;isecrets.io&quot; style=&quot;aspect-ratio: 1166 / 512;&quot; loading=&quot;lazy&quot; /&gt;
&lt;/a&gt;
&lt;/figure&gt;

</content>
 </entry>
 
 <entry>
   <title>Why GitHub should be the app store for code</title>
   <link href="https://hauken.no/github-as-app-store/"/>
   <updated>2021-04-24T00:00:00+00:00</updated>
   <id>https://hauken.no/github-as-app-store/</id>
   <content type="html">&lt;p class=&quot;post__lead&quot;&gt;Where do you go to sell a t-shirt? Shopify. &lt;br /&gt;
Where do you go to sell a pdf? Gumroad.&lt;br /&gt; 
Where do you go to sell code? GitHub?&lt;/p&gt;

&lt;figure class=&quot;post__full&quot;&gt;
&lt;img src=&quot;/img/2021-github/github-appstore.png&quot; alt=&quot;Why GitHhub should be the new app store for code&quot; /&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;the-problem&quot;&gt;The problem&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://twitter.com/kentcdodds/status/1336732003006181377?s=21&quot;&gt;&lt;img src=&quot;/img/2021-github/twitter-1.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I love open source as much as any developer. The web (not to mention our society) wouldn’t be where it is today without it. The people who created Linux, Git, WebKit, Tensorflow, and many, many more deserve all the recognition in the world. All the key parts of software development today are open source. The next unicorn tech company will be built on the shoulders of open source projects, developed by volunteers. On one side, this is what makes the web beautiful. On the other side, we are dependent on volunteers, donations, or companies sharing the code that they’ve built for everyone.&lt;/p&gt;

&lt;p&gt;When the people behind React Router launched &lt;a href=&quot;https://remix.run/buy&quot;&gt;Remix, a React framework for creating websites&lt;/a&gt;, they launched with a paid yearly license. The license created a lot of discussion in the community.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://twitter.com/ryanflorence/status/1341399743721861123?s=21&quot;&gt;&lt;img src=&quot;/img/2021-github/twitter-2.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://twitter.com/dadamssg/status/1336710629592326150?s=21&quot;&gt;&lt;img src=&quot;/img/2021-github/twitter-3.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this post, I’ll explore some alternative payment models for code. I believe that GitHub can empower developers to get paid for code in much the same way that Apple created a new market for apps.&lt;/p&gt;

&lt;h2 id=&quot;is-anyone-doing-this-today&quot;&gt;Is anyone doing this today?&lt;/h2&gt;

&lt;h3 id=&quot;highsoft&quot;&gt;Highsoft&lt;/h3&gt;

&lt;p&gt;Meet Highsoft, the company behind the web charting library Highcharts. The library isn’t widely known outside of data visualization circles, but it’s used daily by many Fortune 500 companies. With over 30 employees located in idyllic Vik in Sogn, they are an example of what can be done &lt;a href=&quot;https://github.com/highcharts/highcharts&quot;&gt;by sharing code openly&lt;/a&gt;, but still licensing it for commercial projects. The library’s free to use for noncommercial projects, with various license and support options available for commercial use. In 2019 they had $8M in revenue. In comparison, Webpack, the standard build solution for modern web applications, had ~3% of Highsofts revenue.&lt;/p&gt;

&lt;h3 id=&quot;tailwind-css&quot;&gt;Tailwind CSS&lt;/h3&gt;

&lt;p&gt;Over the last three years, &lt;a href=&quot;https://tailwindcss.com/&quot;&gt;Tailwind CSS&lt;/a&gt; – a utility-first CSS framework, has grown massively in popularity. In the summer of 2020 it passed 10k installs. The project is open source, but the creators can still live off the project without donations. How? They sell a component library built on top of Tailwind CSS, &lt;a href=&quot;https://tailwindui.com/&quot;&gt;Tailwind UI&lt;/a&gt;, netting over &lt;a href=&quot;https://adamwathan.me/tailwindcss-from-side-project-byproduct-to-multi-mullion-dollar-business/&quot;&gt;$2M their five first months&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;How can we empower more successes like these?&lt;/p&gt;

&lt;h2 id=&quot;the-cost-of-free&quot;&gt;The cost of free&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;I see the cult of the free as the web’s original sin. To my mind it’s an essentially random historical development that could have gone quite differently, but, once the idea of everything on the web being free took root, became a cultural touch point that is almost impossible to dislodge.
– &lt;a href=&quot;https://www.quirksmode.org/blog/archives/2020/08/the_cult_of_the.html&quot;&gt;Peter-Paul Koch&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There is a cost of free open source software that is rarely talked about. It became more apparent when Firefox had to fire 25% of their workforce during Covid because 90% of their revenue came from Google–their closest competitor.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Recognizing that the old model where everything was free has consequences, means we must explore a range of different business opportunities and alternate value exchanges.
– &lt;a href=&quot;https://blog.mozilla.org/blog/2020/08/11/changing-world-changing-mozilla/&quot;&gt;Mitchell Baker - Mozilla&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The current payment model for code is heavily reliant on donations, sponsors, and uncompensated work from dedicated developers. Some companies even hire open source developers so they can work their projects full-time.. But this is for the select few. How can we make the web more resilient so that more people can earn money from their contributions to the community?&lt;/p&gt;

&lt;h2 id=&quot;️-open-source&quot;&gt;❤️ Open source&lt;/h2&gt;

&lt;p&gt;I don’t want to dismiss open source development in any way. There is no better way to learn code from others, start your career and build up your professional reputation, and get your work in from front of a large group or people. But there’s a problem when the whole industry is reliant on free work and donations from people and large corporations.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I need to make sure that I am building not only a body of work and contributions that I’m proud of, but also financial security for when I can’t do this anymore. […]. Despite having very marketable skills, I don’t own a home, much less have a pension and savings in place.
&lt;a href=&quot;https://alistapart.com/article/the-high-price-of-free/&quot;&gt;Rachel Andrew&lt;/a&gt;, web developer, member of the CSS Working Group, and the go-to-source of anything CSS Layout related.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;One of the largest contributors to open source, Sindre Sørhus, has been funded by the open-source community since 2018. He actively maintains 1100+ npm packages (2 billion downloads a month) and many popular projects. Based on available information from Github, Open Collective, and Patreon, he earns about $52k a year from donations alone. He would have made more by staying in his home city in Norway and working as a postman or telephone sales agent. By comparison, Sindre would easily earn five times as much as a developer with his resume. Luckily for all of us, this is Sindre’s &lt;a href=&quot;https://blog.sindresorhus.com/answering-anything-678ce5623798&quot;&gt;answer when it comes to money&lt;/a&gt;: «You don’t want to be rich – You want to be happy.» Still, I wonder if there is a better way than donations and sponsors to support the great work of developers like Sindre.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Burnout is unavoidable when you’re active in open source. &lt;a href=&quot;https://blog.sindresorhus.com/answering-anything-678ce5623798&quot;&gt;Sindre Sørhus&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;github-code-store&quot;&gt;Github code store?&lt;/h2&gt;

&lt;p&gt;Github is at the center of code and open source. It’s where all developers hang out. OK, not literally, but we sure do spend a lot of time on GitHub. They’ve enabled many businesses built on top of &lt;a href=&quot;https://github.com/marketplace&quot;&gt;GitHub with their marketplace and GitHub actions&lt;/a&gt;. You can pay for SAAS-apps that connect to your repo on GitHub and deploy, check your code, monitor your project, and more. But what if GitHub also enabled developers to sell their code on GitHub, not just complex SAAS-apps?&lt;/p&gt;

&lt;p&gt;Apple’s App Store, launched in 2008, now has almost 2 million apps and is visited by half a billion people each week across 175 countries. In 2019 the App Store ecosystem supported $519 billion in billings and sales globally in 2019 alone! By offering payment for code, GitHub could enable a new market for developers and create a distributed revolution.&lt;/p&gt;

&lt;h2 id=&quot;selling-code&quot;&gt;Selling code&lt;/h2&gt;

&lt;p&gt;If you want to sell code today, there isn’t a go-to marketplace. Current marketplaces are outdated and do not embrace today’s technologies. Almost every open-source project uses GitHub to manage its code, but you’ll receive a zip-file if you pay for the code. You get no package-management, history or easy way to get the latest version. Solutions like &lt;a href=&quot;https://git.market/&quot;&gt;GitMarket&lt;/a&gt; are trying to change this, but the best experience would be if this was built directly into GitHub.&lt;/p&gt;

&lt;p&gt;Products like TailwindUI and Remix have to spend time developing elaborate payment schemes instead of developing their product. And don’t get me started on the intricacies of recurring payments. What if GitHub made this accessible right in their repos? They’re in a great position since they’re already equipped to process payments from developers and their organizations.&lt;/p&gt;

&lt;p&gt;GitHub could support selling code in a lot of different ways:&lt;/p&gt;

&lt;h3 id=&quot;multi-licensing&quot;&gt;Multi licensing&lt;/h3&gt;

&lt;p&gt;Highcharts, among known names as MySQL and MongoDB, have an &lt;a href=&quot;https://en.wikipedia.org/wiki/Multi-licensing&quot;&gt;open source license and a commercial license&lt;/a&gt;. If you earn money from the code, you have to pay for a commercial license (yearly usage or a one-time fee.) By making it easy and frictionless to pay developers for using their code in a commercial project, GitHub could enable developers to get paid for their work without the customer having to jump through hoops or pay for something without knowing it’s value up-front.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://twitter.com/tony_bicycle/status/1341722396638777344?s=21&quot;&gt;&lt;img src=&quot;/img/2021-github/twitter-4.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;figure&gt;
    &lt;img src=&quot;/img/2021-github/create-project.png&quot; alt=&quot;Example of how multi licensing could work when creating a project&quot; /&gt;
    &lt;figcaption&gt;Example of how multi licensing could work when creating a project&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;paid-extra-features-plugins-or-repos&quot;&gt;Paid extra features, plugins or repos&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://tailwindui.com/&quot;&gt;Tailwind UI&lt;/a&gt;, the component library built on top of Tailwind CSS, would benefit from being a paid upgrade for Tailwind CSS. It would also reach more customers if it was front and center where people interact with Tailwind. Another option is closed repos that open when you pay for them.&lt;/p&gt;

&lt;figure&gt;
    &lt;img src=&quot;/img/2021-github/commercial-license.png&quot; alt=&quot;Example of how it could look with a commercial license&quot; /&gt;
    &lt;figcaption&gt;Example of how it could look with a commercial license&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;npm&quot;&gt;NPM&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://github.blog/2020-03-16-npm-is-joining-github/&quot;&gt;Last year, GitHub acquired NPM&lt;/a&gt;. The acquisition of the default package manager for Javascript, the largest developer ecosystem in the world, is an incredible opportunity for monetizing code.&lt;/p&gt;

&lt;p&gt;NPM downloads code to your local environment based on what you have specified in a JSON-file in your repo. Most packages are free, but you can also distribute private packages on NPM. This is where GitHub could monetize in the Terminal itself using your GitHub credentials and card info. If you add a paid package to your package.json, you’d be prompted to pay for it from the command line. If you paid for it on GitHub, you could download it immediately. This would also open up new licensing opportunities, like paying for code usage.&lt;/p&gt;

&lt;figure&gt;
    &lt;img src=&quot;/img/2021-github/in-terminal.png&quot; alt=&quot;Sketch on buying open source in terminal&quot; /&gt;
    &lt;figcaption&gt;Sketch on buying open source in terminal&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;voluntary-open-source-tax&quot;&gt;Voluntary Open Source Tax&lt;/h3&gt;

&lt;p&gt;GitHub already has a solution for &lt;a href=&quot;https://github.com/sponsors&quot;&gt;sponsors&lt;/a&gt;, but the acquisition of NPM got me thinking that GitHub could automatically distribute developers’ money. Let’s say you pay $40 per month for supporting open-source code. GitHub could then distribute this money based on all your active projects and which code is actually used.&lt;/p&gt;

&lt;h3 id=&quot;paid-technical-support&quot;&gt;Paid technical support&lt;/h3&gt;

&lt;p&gt;We’ve all been stuck on a code-problem where the documentation is lacking, or you need help getting further. What if you could request paid technical support directly in the repo causing the problem? Win-win. You get the best person to solve your problem–they get paid to help and learn how to improve the project further.&lt;/p&gt;

&lt;p&gt;They could also offer to pay for certifications, bug bounties, or training and courses directly connected to repos, but I won’t go further into that space in this article.&lt;/p&gt;

&lt;figure&gt;
    &lt;img src=&quot;/img/2021-github/tech-support.png&quot; alt=&quot;Sketch on paid technical support connected to repos&quot; /&gt;
    &lt;figcaption&gt;Sketch on paid technical support connected to repos&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;liquidity&quot;&gt;Liquidity&lt;/h3&gt;

&lt;p&gt;It starts to get truly interesting when GitHub gets multiple projects funded through their solution. Then GitHub can begin to forecast money for yearly payments and provide more liquidity for developers, much like &lt;a href=&quot;https://www.pipe.com/&quot;&gt;Pipe&lt;/a&gt; does for SaaS-businesses.&lt;/p&gt;

&lt;h2 id=&quot;wrapping-up&quot;&gt;Wrapping up&lt;/h2&gt;

&lt;p&gt;Despite GitHub’s popularity with enterprise users, individual developers, and open source projects, it &lt;a href=&quot;https://www.bloomberg.com/news/articles/2016-12-15/github-is-building-a-coder-s-paradise-it-s-not-coming-cheap&quot;&gt;never turned a profit&lt;/a&gt; before Microsoft bought them in 2018. GitHub’s primary revenue source today is paid accounts, which allows for private repositories and several other features that enterprises need. By enabling their users to sell code on their platform and take a small cut of that revenue, they’d empower their greatest assets and fans, developers, as well as increase their earnings. GitHub provides a lot of value for developers, and it’s time both Github and developers capture it!&lt;/p&gt;

&lt;p&gt;There are a lot of paths for GitHub to create an ecosystem around a marketplace for code on their platform. I’m not sure which approach is best, but I am pretty confident that if anyone can contribute to enable a paradigm shift around paid code, GitHub is uniquely positioned to do so. In my mind, this is very much a case of “a feature, not a product”. By leveraging the massive amounts of developers and code already on the platform, GitHub can do this in a way that developers on both sides of the deal will benefit from.**&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Barkley Marathons – Where dreams go to die</title>
   <link href="https://hauken.no/barkley/"/>
   <updated>2021-03-19T00:00:00+00:00</updated>
   <id>https://hauken.no/barkley/</id>
   <content type="html">&lt;p class=&quot;post__lead&quot;&gt;You are exhausted! Of course you are exhausted! You have been running for close to 10 hours in the freezing rain. 32 fu***ng kilometers without as much as a trail! A conch woke you up in the middle of the night to tell you to start running. Finally, you reach the yellow finishing gate signaling that you now ...have four more rounds to go.&lt;/p&gt;

&lt;p&gt;This is the reality for the 40 persons that run one of the world’s most obscure races: the Barley Marathons. It’s an ultramarathon trail race held in Frozen Head State Park in Tennessee. The goal is to complete 5 “rounds,” covering closer to 160km in 60 hours. Sign me up for this madness, you say? Well, how you sign up is a secret, as well as the date it is held.&lt;/p&gt;

&lt;p&gt;Despite the race being held yearly since 1986, only 15 runners have so far completed the race. No press is accepted at the race, so the only way to follow it “live” is by following &lt;a href=&quot;https://twitter.com/keithdunn&quot;&gt;@keithdunn&lt;/a&gt; or &lt;a href=&quot;https://twitter.com/hashtag/BM100&quot;&gt;#BM100&lt;/a&gt; on Twitter.&lt;/p&gt;

&lt;p&gt;If this sounds intriguing to you, I highly recommend watching the documentary about the race!&lt;/p&gt;

&lt;div class=&quot;post__video&quot;&gt;&lt;iframe style=&quot;max-width: 100%; aspect-ratio: 16/9;&quot; width=&quot;670&quot; height=&quot;375&quot; src=&quot;https://www.youtube.com/embed/79IUKC9gS-8&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;&lt;br /&gt;
In 2017 Gary Robbins was 6 seconds too late to finish the race within the 60-hour cut-off, almost becoming the 16th runner ever to complete the Barkley. However, he had taken a wrong turn in the race’s final stages, thus cutting two miles off the course. He would have been disqualified even if he had been faster. Gary Robbins has been followed by a camera crew for over two years, documenting his two attempts at completing The Barkley Marathons. In the documentary, you see the sacrifices that come with dedicating one’s life to completing this mythical race. I recommend this documentary as a follow-up if you enjoyed the Barkley-movie!&lt;/p&gt;

&lt;div class=&quot;post__video&quot;&gt;&lt;iframe style=&quot;max-width: 100%; aspect-ratio: 16/9;&quot; width=&quot;670&quot; height=&quot;375&quot; src=&quot;https://www.youtube.com/embed/NDZdsqbcGTU&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content>
 </entry>
 
 <entry>
   <title>Note taking during user testing</title>
   <link href="https://hauken.no/note-taking-during-user-testing/"/>
   <updated>2021-03-03T00:00:00+00:00</updated>
   <id>https://hauken.no/note-taking-during-user-testing/</id>
   <content type="html">&lt;p class=&quot;post__lead&quot;&gt;If you&apos;ve user-tested a product, you know the hassle of taking notes and comparing them across the different users and what they did. Often we&apos;ve ended up with huge, messy google docs or sheet files. You get an overview if you read everything, but it is hard to see patterns of people failing and organize quotes quickly.&lt;/p&gt;

&lt;h2 id=&quot;the-solution&quot;&gt;The solution&lt;/h2&gt;

&lt;p&gt;Five years ago we came across &lt;a href=&quot;https://medium.com/product-labs/everything-you-need-to-plan-and-share-user-research-with-trello-41e6f101327e&quot;&gt;this article&lt;/a&gt; from Jessica Crabb, which talks about how they are using Trello to organize their user-testing. It quickly made sense for us, so we tried using it for a couple of tests. It was a lot quicker to type in during the user-test and mark up which users accomplished what. What we were missing, however, was the ability to look at the data from other angles. When you are taking notes, you are taking notes on just one user, but when you are reading your results, you want to read the notes per task and see all the users’ results: Enter &lt;a href=&quot;https://airtable.com/invite/r/KQeQRFOL&quot;&gt;Airtable&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;the-stages-of-user-testing&quot;&gt;The stages of user testing&lt;/h2&gt;

&lt;p&gt;Airtable is Excel on steroids. It has the same basic functionality as Excel, but with many extra input-forms like images, text-fields ++. It can also be formatted as a Kanban-board like Trello (or as a web-form if needed). Where it shines, though, is its ability to link cells together. The linking makes it possible for us to take notes of one user during the test and then, afterward, flip the data on it’s head and look at each task’s problems. Airtable also has the ability for same-time collaboration, which is quite useful during testing.&lt;/p&gt;

&lt;p&gt;While preparing for the test, we go through different note-taking stages, and Airtable guides us through all the steps.&lt;/p&gt;

&lt;h3 id=&quot;collection-of-participants&quot;&gt;Collection of participants&lt;/h3&gt;

&lt;figure&gt;&lt;img src=&quot;/img/airtable-persons.png&quot; alt=&quot;collect participants&quot; /&gt;&lt;/figure&gt;
&lt;p&gt;Usually, we have a few requirements for the users that we want to recruit. We then send these requirements to Norstat, which typically helps us recruit people, along with a link to an Airtable-template where they can fill out the test-persons information as soon as they are recruited. This way, we early know how recruitment is going.  (After GDPR, you should check if you can store names and information about test-subjects in Airtable.)&lt;/p&gt;

&lt;h3 id=&quot;creating-the-tasks&quot;&gt;Creating the tasks&lt;/h3&gt;

&lt;figure&gt;&lt;img src=&quot;/img/airtable-tasks-2.png&quot; alt=&quot;Creating the tasks&quot; /&gt;&lt;/figure&gt;
&lt;p&gt;At the same time on another page in the document, we create the tasks that we are going to test and prepare the test. One great feature in airtable is that you can hide information you don’t want to see or view the data as a gallery instead of a spreadsheet. Here is the same data as above, but with another view:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&quot;/img/airtable-tasks.png&quot; alt=&quot;Creating the tasks&quot; /&gt;&lt;/figure&gt;

&lt;h3 id=&quot;note-taking-during-the-test&quot;&gt;Note-taking during the test&lt;/h3&gt;

&lt;figure&gt;&lt;img src=&quot;/img/airtable-observation-1.png&quot; alt=&quot;Observation&quot; /&gt;&lt;/figure&gt;
&lt;p&gt;When it comes to the test-day, we take notes in another view in Airtable and link the notes to the person performing them and their task. Here it can be useful to write general statements as “managed to transfer money” so that you can link up multiple test-persons to the same note. This makes it easier to read through your notes afterward.&lt;/p&gt;

&lt;h4 id=&quot;emojis-&quot;&gt;Emojis 👍👎💣&lt;/h4&gt;

&lt;p&gt;We’ve also found it useful to add emojis indicating if the finding or behavior is negative or positive for the test.&lt;/p&gt;

&lt;h3 id=&quot;review-afterwards&quot;&gt;Review afterwards&lt;/h3&gt;

&lt;figure&gt;&lt;img src=&quot;/img/airtable-observation-2.png&quot; alt=&quot;Observation&quot; /&gt;&lt;/figure&gt;
&lt;p&gt;After the test is over, we walk through all the tasks. I often find it most useful to go from the task-view and from here see what the different users did on each task and the related quotes. At times I find it more beneficial to go out from the person and see how they solved the different assignments chronologically.&lt;/p&gt;

&lt;h2 id=&quot;download&quot;&gt;Download&lt;/h2&gt;

&lt;p&gt;I’ve made a &lt;a href=&quot;https://airtable.com/shrHjXyH7uf3OUlhV&quot;&gt;starter template&lt;/a&gt; to get you started using Airtable for user-testing. Please give me a word on &lt;a href=&quot;https://twitter.com/mhauken&quot;&gt;Twitter&lt;/a&gt; if you have some improvements or suggestions!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Stacc X year in review 2020</title>
   <link href="https://hauken.no/stacc-x-year-in-review-2020/"/>
   <updated>2021-01-14T00:00:00+00:00</updated>
   <id>https://hauken.no/stacc-x-year-in-review-2020/</id>
   <content type="html">&lt;p class=&quot;post__lead&quot;&gt;2020 was a strange year for all. We had projects lined up, but suddenly everything was canceled because of Covid-19. Luckily many of us found a new normal, and we’re proud of all we’ve managed to do despite this weird situation in the world.&lt;/p&gt;

&lt;figure class=&quot;post__full&quot;&gt;
&lt;img src=&quot;/img/2020-header.png&quot; alt=&quot;Stacc X year in review&quot; /&gt;
&lt;/figure&gt;

&lt;blockquote&gt;
  &lt;p&gt;This is a blogpost from Stacc X. One of five companies within the Stacc ecosystem:&lt;/p&gt;

  &lt;p&gt;&lt;a href=&quot;https://stacc.com/service/overview&quot;&gt;Stacc X &lt;/a&gt; — consultants with domain expertise in Fintech. Both for hire within your existing team or specific projects &lt;br /&gt; &lt;a href=&quot;https://stacc.com/products/core&quot;&gt;Stacc Core &lt;/a&gt; — a flexible ledger core banking system &lt;br /&gt; &lt;a href=&quot;https://stacc.com/products/insight-retail/features&quot;&gt;Stacc Insight &lt;/a&gt; — an advisory suite for bank advisors &lt;br /&gt; &lt;a href=&quot;https://stacc.com/products/flow&quot;&gt;Stacc Flow &lt;/a&gt; — a banking middleware process platform &lt;br /&gt; &lt;a href=&quot;https://www.stacc.com&quot;&gt;Stacc Nova&lt;/a&gt; — credit card specialists&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;projects&quot;&gt;Projects&lt;/h2&gt;

&lt;p&gt;Working within banking and finance, there is much secrecy involved before launch. These are a few of the projects we have worked on and can talk about this year:&lt;/p&gt;

&lt;h3 id=&quot;bulder-bank&quot;&gt;Bulder Bank&lt;/h3&gt;

&lt;p&gt;In 2019 we were proud to launch Bulder Bank. At the beginning of 2020 we gave the UX relay baton over to their new UX-lead, together with sketches and concepts for further releases. Some of them have been launched this year, together with refinement of earlier designs. Be sure to look out for exciting and useful features here in the years to come!&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/2020-bulder.png&quot; alt=&quot;Stacc x + Bulder&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;shifter---krisepakkejungelen&quot;&gt;Shifter - krisepakkejungelen&lt;/h3&gt;

&lt;p&gt;When everyone suddenly was sent to work at home, a few of the projects in our pipeline fell through or were postponed. However, we were in a good position and looked for ways to help other companies in a worse situation. Our good friends at Shifter had done a fantastic job to compile all the different grants coming from various public institutions. Together we created a simple guide for business owners to see which grants they were eligible for.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/2020-shifter.png&quot; alt=&quot;Stacc X + Shifter&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;quantfolio&quot;&gt;Quantfolio&lt;/h3&gt;

&lt;p&gt;We’ve partnered up with Quantfolio on a lot of different projects over the years. In 2020 we helped them design a white-label, brandable prototype of a savings-robot to show potential clients how their saving-robots could look.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/2020-quantfolio.png&quot; alt=&quot;Stacc X + Quantfolio&quot; /&gt;
&lt;figcaption&gt;Prototype for Quantfolios savings-robot&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;frende&quot;&gt;Frende&lt;/h3&gt;

&lt;p&gt;Sometimes projects don’t go the way we expect: we had created Frende’s new EPK-solution (Norway’s new pension account solution coming 2021) and were almost ready to launch the first version. Then came the news of Nordea buying their pension-portfolio, thereby making our solution obsolete. That’s business, but luckily we got to know some of the skilled persons in Frende.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/2020-frende.png&quot; alt=&quot;Stacc X + Frende&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;nordea-liv&quot;&gt;Nordea Liv&lt;/h3&gt;

&lt;p&gt;Together with Quantfolio and Nordea Liv, we designed and developed a Proof of Concept on a green EPK-application based on the UN’s sustainable development goals. In order to focus on the upcoming EPK regulatory deadline, the project has been paused. We can’t wait to pick this up again in the coming year!&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/2020-nordea-liv.png&quot; alt=&quot;Stacc X + nordea-liv&quot; /&gt;
&lt;figcaption&gt;Proof of concept on a green pension app&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;tryg&quot;&gt;Tryg&lt;/h3&gt;

&lt;p&gt;This autumn, we’ve helped Tryg simplify and standardize their underwriting process across the Nordic countries. This project is just started, but we’re already launching a working MVP for an UW workbench to get feedback.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/2020-tryg.webp&quot; alt=&quot;Stacc X + tryg&quot; /&gt;
&lt;figcaption&gt;UW Workbench for Tryg&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;co-own&quot;&gt;Co-own&lt;/h3&gt;

&lt;p&gt;Together with &lt;a href=&quot;https://www.fueled.no&quot;&gt;Fueled&lt;/a&gt;, we created a profile and webpage for scaling up Co-own, in just two weeks. Co-own helps people get earlier into the housing market by buying into a shared apartment instead of renting. Check it out at &lt;a href=&quot;https://co-own.no&quot;&gt;co-own.no&lt;/a&gt;.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/2020-co-own.webp&quot; alt=&quot;Stacc X + co-own&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;autoplan&quot;&gt;Autoplan&lt;/h3&gt;

&lt;p&gt;Over the last three years, we’ve created and developed a dashboard for users of Autoplans leasing-solution, delivering one invoice for all car-related expenses for companies. In the dashboard, users can see specifications for their invoices, deviations, and which leases are soon running out.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/2020-autoplan.png&quot; alt=&quot;Stacc X + autoplan&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;property-improvement-system&quot;&gt;Property Improvement system&lt;/h3&gt;

&lt;p&gt;We made a Proof of Concept for Proptech Innovations group for data-driven innovation. The result is a Proof of Concept on a data-driven sustainability barometer for commercial buildings. The plan is that this can be a tool that banks can use for green loans.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/2020-pi.png&quot; alt=&quot;Stacc X + property improvement&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;pngr&quot;&gt;Pngr&lt;/h3&gt;

&lt;p&gt;When the pandemic hit, we started to see news of people getting into economic trouble. We teamed up with Shortcut and Susanne Håvardstun to create Pngr to help people control their entire economy. We’ve helped with the design and the backend for the solution while Shortcut developed the app. Be on the lookout for the first version coming in January! You can subscribe for updates at &lt;a href=&quot;https://pngr.no&quot;&gt;pngr.no&lt;/a&gt;&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/2020-pngr.webp&quot; alt=&quot;Stacc X + pngr&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;nordea-finans&quot;&gt;Nordea Finans&lt;/h3&gt;

&lt;p&gt;After the success of the Flow Manager service, other parts of Nordea Finance took note of how Nordea Finance Norway had greatly simplified their workflow. Nordea saw that their offering for submitting a car financing application for both dealers and car buyers could benefit from improving the user experience and a higher degree of self-service. We delivered a full scale CX-project throughout the Nordics with both car dealers and car buyers to find out what people found painful about financing a car. We are now in the process of launching a self-service solution for car dealers in Finland as a first step.&lt;/p&gt;

&lt;h2 id=&quot;bank-logos&quot;&gt;Bank logos&lt;/h2&gt;

&lt;p&gt;We’ve also sold our collection of all Norwegian bank logos to a few banks. We couldn’t find a common source for all Norwegian Bank logos in vector and within the same template when we worked on a PSD2 project, so we collected and created a library ourselves. You won’t believe how many different trees are used in bank-logos in Norway!&lt;/p&gt;

&lt;figure class=&quot;post__full&quot;&gt;
&lt;img src=&quot;/img/2020-banklogos.png&quot; alt=&quot;Stacc X banklogos&quot; /&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;consulting&quot;&gt;Consulting&lt;/h2&gt;

&lt;p&gt;The last year we’ve seen a turn towards us delivering complete solutions for clients instead of just consultants. We’ve still hired a few consultants out, working in a team with our clients. Torleif has continued working for Sparebanken Vest, polishing the excellent component library he has been developing for them over the last few years. We’ve also hired people out working on smaller tasks or projects for Ztl, Lyse, Brage, Aprila, Spire, WasteIQ, iMove, Brabank, and more.&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/2020-consulting.jpeg&quot; alt=&quot;Stacc X  consulting&quot; /&gt;
&lt;figcaption&gt;Some of the projects or consultants has helped with over the last year&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;offices&quot;&gt;Offices&lt;/h2&gt;

&lt;p&gt;The week before the first lockdown, we moved into new offices. Funny enough, we’ve hired so many this last year, that we need to expand the offices when we can meet again at our offices.&lt;/p&gt;

&lt;figure class=&quot;post__full&quot;&gt;
&lt;img src=&quot;/img/2020-office.jpeg&quot; alt=&quot;Stacc X office&quot; /&gt;
&lt;figcaption&gt;We’re looking forward to get back to our offices!&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;team&quot;&gt;Team&lt;/h2&gt;

&lt;p&gt;We had high recruitment ambitions this year, but it’s not easy to hire and onboard new people during a pandemic. Luckily we managed to welcome a few amazing people to our team this year:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Stine Neteland&lt;/strong&gt; joined us in 2019, but last year she became the CEO of Stacc X!&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Kristoffer Marthinsen&lt;/strong&gt;. Kristoffer started amidst closed offices and remote working this spring. Luckily he had worked part-time with us for almost a year before starting. He is a full-stack developer and just finished his Master’s Degree in Information Science from UiB. He is the strongest in our team, regularly deadlifting over 250kg!&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Lene Whiteley&lt;/strong&gt; Lene is an experienced iOS-developer coming from TietoEvry. She has during the last year also become a skilled front-end developer. Lene has participated in some of the major international projects X has delivered in 2020 as well as writing &lt;a href=&quot;https://medium.com/stacc/utilizing-the-debug-view-hierarchy-to-better-understand-your-apps-ui-c8655f6d34e9&quot;&gt;several&lt;/a&gt; interesting &lt;a href=&quot;https://medium.com/stacc/bridging-the-gap-between-designers-and-developers-80c4df3fd344&quot;&gt;articles&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Guro Prestegard&lt;/strong&gt; Guro has been with us part-time for one year before she finally started full-time with us in August! She is a full-stack developer and has just finished her Master’s degree in Computer and Information Sciences. Guro is our quizmaster, having introduced a weekly quiz to our team. She has also, not surprisingly, the person in our team that has won the most quizzes.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sebastian Øverhaug Larsen&lt;/strong&gt; Sebastian finished his Master’s degree in Information science and started working with us in August. He has previously worked part-time at Ambita. Sebastian prefers to work on the backend, and has in record time, become an essential part of the team in Ztl!&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Helene Stenstavold&lt;/strong&gt;. Helene starts to work with us full-time from 2021, but has already been an essential part of researching Nordea Finans in the Nordic countries and designing and developing a solution for Trygs underwriters. We’re looking forward to her being done with her Master’s thesis and join us full-time!&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Bjarne Helland&lt;/strong&gt;. Bjarne is joining us in March! He is an experienced full-stack developer coming from Profitbase in Stavanger. We’re looking forward to him relocating and being a part of our team!&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;More students.&lt;/strong&gt; We’ll also be joined by three students starting in August, as well as a few other skilled people we can’t share yet. But that doesn’t mean we’re done looking for people! We’re in high demand and still looking for more designers and developers! Just send me a message at &lt;a href=&quot;mailto:@stacc.com&quot;&gt;@stacc.com&lt;/a&gt; if that sounds interesting.&lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
&lt;img src=&quot;/img/2020-new.jpeg&quot; alt=&quot;New people in Stacc X&quot; /&gt;
&lt;figcaption&gt;Kristoffer, Lene, Guro, Sebastian and Helene&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;social&quot;&gt;Social&lt;/h2&gt;

&lt;p&gt;Because of the pandemic, we haven’t maintained all the regular social activities, like our yearly trip to a secret destination, but we’ve done our best during this strange year. Luckily we managed to have a small summer-party for our team outdoor before we had to attend most of our other social events remotely.&lt;/p&gt;

&lt;figure&gt;
  &lt;img src=&quot;/img/2020-summer.jpeg&quot; alt=&quot;Summer party&quot; /&gt;
  &lt;figcaption&gt;Summer party&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
  &lt;img src=&quot;/img/2020-julebord.webp&quot; alt=&quot;Julebord&quot; /&gt;
  &lt;figcaption&gt;Remote Christmas party with supplied drinks and food&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
  &lt;img src=&quot;/img/2020-dorull.webp&quot; alt=&quot;Toilet roll&quot; /&gt;
  &lt;figcaption&gt;Toiletroll-santa-competition&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;written&quot;&gt;Written&lt;/h2&gt;

&lt;p&gt;We’ve also written a bit more this year. We’ve challenged Vipps in both Shifter and Dagens Næringsliv about their strange strategy &lt;a href=&quot;https://www.dn.no/innlegg/vipps/fintech/finans/innlegg-vippser-seg-selv-av-pinnen-med-mobilsatsingen/2-1-903559&quot;&gt;launching a mobile subscriptions&lt;/a&gt; and &lt;a href=&quot;https://shifter.no/kommentar/vipps-har-lansert-en-tjeneste-ingen-vil-ha-her-er-hva-de-burde-gjort-i-stedet/189325&quot;&gt;charging 5kr for digital gift wrap&lt;/a&gt;. Even regular gift wrap in the store is free! The answer is apparently that that &lt;a href=&quot;https://www.dn.no/innlegg/fintech/vipps/finans/innlegg-vipps-handler-om-forenkling-ikke-om-finans/2-1-905443&quot;&gt;Vipps strategy is to simplify everything&lt;/a&gt;, not just within Fintech.&lt;/p&gt;

&lt;p&gt;We’ve also written about &lt;a href=&quot;https://link.medium.com/N38ReZrTEcb&quot;&gt;bridging the gap between designers and developers&lt;/a&gt; - a subject close to our heart. We want all of our designers to be able to adjust designs in code and know the limitations of the medium we’re working with. Aleksander has also written about &lt;a href=&quot;https://link.medium.com/ETxhtAqTEcb&quot;&gt;learning SwiftUI to become a better designer&lt;/a&gt;, and Lene about the &lt;a href=&quot;https://medium.com/stacc/utilizing-the-debug-view-hierarchy-to-better-understand-your-apps-ui-c8655f6d34e9&quot;&gt;Debug View Hierarchy in XCode&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;newsletter&quot;&gt;Newsletter&lt;/h2&gt;

&lt;p&gt;In February, we started with a weekly internal post in Slack, covering interesting news of what happened in our world of finance, design, and technology. After a few weeks, the feedback was that this shouldn’t just be internal, so we started a newsletter. We now have hundreds of subscribers. You can subscribe to &lt;a href=&quot;http://nyhetsbrev.stacc.com&quot;&gt;nyhetsbrev.stacc.com&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;thanks-to-all-our-clients-and-partners&quot;&gt;Thanks to all our clients and partners!&lt;/h2&gt;

&lt;p&gt;2020 was a strange year, but thanks to our great clients and partners, it has been an exciting year after all. Now we’re looking forward to getting started with the year ahead and help clients launching new solutions and ideas!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Why GitHub codespaces is the future!</title>
   <link href="https://hauken.no/github-codespaces/"/>
   <updated>2020-08-10T00:00:00+00:00</updated>
   <id>https://hauken.no/github-codespaces/</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;https://github.com/features/codespaces/&quot;&gt;GitHub codespaces&lt;/a&gt; makes an instant dev environment available wherever you want. This is why codespaces is the future of development:&lt;/p&gt;

&lt;h4 id=&quot;faster-setup&quot;&gt;Faster setup&lt;/h4&gt;

&lt;p&gt;No more endless debugging to get started on a new (existing) project or environment.&lt;/p&gt;

&lt;h4 id=&quot;true-remote-anywhere&quot;&gt;True remote anywhere&lt;/h4&gt;

&lt;p&gt;You don’t longer need a computer — just the availability of a browser.&lt;/p&gt;

&lt;h4 id=&quot;os-wont-matter-anymore&quot;&gt;OS won’t matter anymore&lt;/h4&gt;

&lt;p&gt;Windows, macOS, iOS, Android, Linux, Chrome Os ++. Work on your favorite OS - switch whenever you feel like it.&lt;/p&gt;

&lt;h4 id=&quot;code-sharing-and-debugging&quot;&gt;Code sharing and debugging&lt;/h4&gt;

&lt;p&gt;You can have other people look into your environment. Goodbye, “it works on my computer”!&lt;/p&gt;

&lt;h4 id=&quot;open-source-growing&quot;&gt;Open source growing&lt;/h4&gt;

&lt;p&gt;Easier to get up and running on open source projects and contribute.&lt;/p&gt;

&lt;h4 id=&quot;learning&quot;&gt;Learning&lt;/h4&gt;

&lt;p&gt;Previously we learned from view source in our browsers. Now we’ll learn from running actual source code in our browsers.&lt;/p&gt;

&lt;h4 id=&quot;more-specialization&quot;&gt;More specialization&lt;/h4&gt;

&lt;p&gt;You don’t need to get into the nitty-gritty parts of setups (Webpack / Sass / Docker ++) There will be defaults for that. Focus on what you are (becoming) an expert on.&lt;/p&gt;

&lt;h4 id=&quot;good-artist-copy-great-artists-fork&quot;&gt;Good artist copy, great artists fork&lt;/h4&gt;

&lt;p&gt;Forking projects and expanding them will become more accessible. It’s going to be faster to start a fork than from scratch.&lt;/p&gt;

&lt;h4 id=&quot;trendsetting&quot;&gt;Trendsetting&lt;/h4&gt;

&lt;p&gt;Environments that aren’t supported by GitHub codespaces will feel obsolete. Developer experience is essential! Why work with languages that need days to set up when you are up and running in minutes on codespaces?&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I’ve since written a practical guide on &lt;a href=&quot;/codespaces&quot;&gt;setting up Codespaces for Jekyll and Next.js&lt;/a&gt; if you want to get started.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Iterate over a color array with help of a modulo operation</title>
   <link href="https://hauken.no/color-arrays-and-modulo/"/>
   <updated>2019-11-21T00:00:00+00:00</updated>
   <id>https://hauken.no/color-arrays-and-modulo/</id>
   <content type="html">&lt;p&gt;A quick little tip if you are using &lt;a href=&quot;https://www.styled-components.com/&quot;&gt;Styled Components&lt;/a&gt; in &lt;a href=&quot;https://reactjs.org/&quot;&gt;React&lt;/a&gt; and want to iterate over a color-array. Usually you don’t know how many elements you will iterate over, but you want to be sure that your color array starts over again if you have specified fewer colors than elements. Here is an example:&lt;/p&gt;

&lt;figure class=&quot;post__full&quot;&gt;
  &lt;img src=&quot;/img/modulo.svg&quot; alt=&quot;Example Modulo&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;Let’s say we have this array of 5 different colors:&lt;/p&gt;

&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;colorArray&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;#24BC9D&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;#FFAB00&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;#3798DA&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;#E64C3C&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;#9A59B5&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And lets say that we have an array with 11 numbers in called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;anArray&lt;/code&gt;. We then iterate over this array and use modulus with the index of our number-array together with the index of our color-array to pass the HEX-code down to our styled component. Wow that was a long, complicated sentence. Let’s look at this code example instead:&lt;/p&gt;

&lt;div class=&quot;language-jsx highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;anArray&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;nc&quot;&gt;Example&lt;/span&gt;
   &lt;span class=&quot;na&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;
   &lt;span class=&quot;na&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;colorArray&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;index&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;colorArray&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;What this basically does is for each time we iterate through &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;anArray&lt;/code&gt; it takes the index of our current item and calculates which item in our color-array it should pass down. And when it comes to the bottom of your color-array it starts at the beginning again. So basically we’re saying this on our first iteration: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;color={colorArray[0 % 5]}&lt;/code&gt;. This is the same as saying: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;color={colorArray[0]}&lt;/code&gt;. This is again the same thing as saying &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;color=&quot;#24BC9D&quot;&lt;/code&gt; to our styled component. So the only thing left for us to do is to pass down that prop to our styled component like this:&lt;/p&gt;

&lt;div class=&quot;language-jsx highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Example&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;styled&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;`
  background-color: &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;${(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;;
`&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;how-does-this-work&quot;&gt;How does this work?&lt;/h2&gt;

&lt;p&gt;The modulus operator (%) calculates the &lt;a href=&quot;https://en.wikipedia.org/wiki/Remainder&quot;&gt;remainder&lt;/a&gt; of two numbers. It’s a kind of repeated subtraction. &lt;a href=&quot;https://stackoverflow.com/questions/44772011/modulus-operation-for-array-index&quot;&gt;This StackOverflow answer&lt;/a&gt; is the best I’ve seen to explain this:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In fact, with a % b you’ll ask yourself: What number remains if I repeat subtracting b from a until that operation is no longer possible?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So in our case if the array we’re .mapping ( &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;anArray&lt;/code&gt;) has 11 elements and our colorArray has 5 elements the computer does something like this on the last element:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Can I subtract 5 from 11? Yes, result is 6.&lt;/li&gt;
  &lt;li&gt;Can I subtract 5 from 6? Yes, result is 1.&lt;/li&gt;
  &lt;li&gt;Can I subtract 5 from 1? &lt;em&gt;No, final result is 1.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;details&gt;
  &lt;summary&gt;If you want to see all the calculations for each element&lt;/summary&gt;

0 % 5 = 0 = &lt;code&gt;colorArray[0]&lt;/code&gt; &lt;br /&gt;
1 % 5 = 1 = &lt;code&gt;colorArray[1]&lt;/code&gt; &lt;br /&gt;
2 % 5 = 2 = &lt;code&gt;colorArray[2]&lt;/code&gt; &lt;br /&gt;
3 % 5 = 3 = &lt;code&gt;colorArray[3]&lt;/code&gt; &lt;br /&gt;
4 % 5 = 4 = &lt;code&gt;colorArray[4]&lt;/code&gt; &lt;br /&gt;
5 % 5 = 0 = &lt;code&gt;colorArray[0]&lt;/code&gt; &lt;br /&gt;
6 % 5 = 1 = &lt;code&gt;colorArray[1]&lt;/code&gt; &lt;br /&gt;
7 % 5 = 2 = &lt;code&gt;colorArray[2]&lt;/code&gt; &lt;br /&gt;
8 % 5 = 3 = &lt;code&gt;colorArray[3]&lt;/code&gt; &lt;br /&gt;
9 % 5 = 4 = &lt;code&gt;colorArray[4]&lt;/code&gt; &lt;br /&gt;
10 % 5 = 0 = &lt;code&gt;colorArray[0]&lt;/code&gt; &lt;br /&gt;
11 % 5 = 1 = &lt;code&gt;colorArray[1]&lt;/code&gt; &lt;br /&gt;

&lt;/details&gt;
&lt;p&gt;&lt;br /&gt;
&lt;a href=&quot;https://gist.github.com/mhauken/2a60829581ab062678eb04c3af93f32b&quot;&gt;You can see a full example here&lt;/a&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>7 tips for visiting Lisbon with kids</title>
   <link href="https://hauken.no/lisbon-child/"/>
   <updated>2019-11-18T00:00:00+00:00</updated>
   <id>https://hauken.no/lisbon-child/</id>
   <content type="html">&lt;p&gt;We went to Lisbon for a week this summer with our two year old. Here are a few tips if you’re travelling to Lisbon with a toddler. A couple of the tips works rather well without a child as well.&lt;/p&gt;

&lt;h2 id=&quot;1-bring-a-good-stroller&quot;&gt;1. Bring a good stroller.&lt;/h2&gt;

&lt;p&gt;The streets here wreck havock on your stroller. It’s bumpy and the curbs are small. Especially in the old town. We had our Ergobaby 360 with us to carry her, but we also needed a stroller for her afternoon nap. I wish we had brought one with larger wheels.&lt;/p&gt;

&lt;h2 id=&quot;2-parque-recreativo-do-alvito&quot;&gt;2. &lt;a href=&quot;https://goo.gl/maps/RQAhffWyckBccadx7&quot;&gt;Parque Recreativo do Alvito&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;A large and lovely playground right outside the city. Lots of slides and great climbs for our daughter.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/lisbon-1.jpg&quot; class=&quot;img--center&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://goo.gl/maps/RX2xNooQfKykKz7p6&quot;&gt;Parque Recreativo do Alto da Serafina&lt;/a&gt; also seems like a similar, great place.&lt;/p&gt;

&lt;h2 id=&quot;3-swimming&quot;&gt;3. Swimming&lt;/h2&gt;

&lt;p&gt;Lisboa don’t seem like the best place for swimming to be honest. The beach is at least a half hour train ride away. So if you are staying with a toddler in the summer heat I would recommend a hotel or apartment with a swimming pool.&lt;/p&gt;

&lt;h2 id=&quot;4-gelato-davvero&quot;&gt;4. &lt;a href=&quot;https://goo.gl/maps/7bed2Aye1M8b7J7L6&quot;&gt;Gelato Davvero&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;This was a nice break in the summer heat. Fantastic gelado and a fun interior with a slide for the smaller (and bigger) ones.&lt;/p&gt;

&lt;h2 id=&quot;5-lx-factory&quot;&gt;5. &lt;a href=&quot;https://goo.gl/maps/xUFncvX5rVA9Zzrv6&quot;&gt;LX factory&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;A surprisingly nice shopping/creative area worth a visit. Maybe not the most child friendly, but a lot of gret places to buy food and icecream or relax when the little one takes a nap.&lt;/p&gt;

&lt;h2 id=&quot;6-parque-das-nações&quot;&gt;6. &lt;a href=&quot;https://goo.gl/maps/RjeuL5x3Ygg82rn4A&quot;&gt;Parque das Nações&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;Parque das Nações is a newer part of Lisboa located in the north. There are nice green-areas, playgrounds and a lot of public art and fountains to play in. Our little one especially loved the water sculpture right outside of Oceaneário de Lisboa, the local aquarium. She even enjoyed it more than the visit we had to the aquarium.
&lt;img src=&quot;/img/lisbon-2.jpg&quot; class=&quot;img--center&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;7-transportation&quot;&gt;7. Transportation&lt;/h2&gt;

&lt;p&gt;It’s quite easy to travel around in Lisbon. All you need is a via viagem card. They are sold on every train and metro station. To get around just use Google maps that have all the suggestions for how to get around and possible connecting busses and trams.&lt;/p&gt;

&lt;h2 id=&quot;8-pistola-y-corazon&quot;&gt;(8.) &lt;a href=&quot;https://goo.gl/maps/8MvLtmVbsr3fsBd99&quot;&gt;Pistola y Corazon&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;Ok. Maybe not the most child-friendly place. No babyseats or anything. Just benches and tequila. But they had really good taco!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Bulder - from idea to launch in a year</title>
   <link href="https://hauken.no/bulder/"/>
   <updated>2019-10-28T00:00:00+00:00</updated>
   <id>https://hauken.no/bulder/</id>
   <content type="html">&lt;p&gt;In the autumn of 2018, the CEO of Sparebanken Vest, announced that they would launch a new national, mobile-only bank, later known as &lt;a href=&quot;http://bulderbank.no&quot;&gt;Bulder Bank&lt;/a&gt;. This started a snowball of events that would involve hundreds of people. But how to get this snowball to run in the direction you want? Here are 13 concrete tips I believe played an essential part in making this a successful launch:&lt;/p&gt;

&lt;figure class=&quot;post__wide&quot;&gt;
  &lt;img src=&quot;/img/bulder.webp&quot; alt=&quot;Bulder Bank&quot; /&gt; 
&lt;/figure&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Decisions&lt;/strong&gt;. From the first week on, we had regular decision-meetings with key stakeholders where we made hard choices and prioritized. This was a small team consisting of UX designers, CTO, CEO, and project manager. After each meeting, we posted all decisions to a Slack channel for transparency.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sketch in the open&lt;/strong&gt;. We sketched everything out in Figma and invited the whole team, and this way, everyone got a saying and saw where we were going with the design from day one.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NeedScope&lt;/strong&gt;. While creating the brand for Bulder, NeedScope was used for positioning the brand. After researching the positions of other banks in Norway, it was clear that the red segment would be perfect for positioning a new bank that would challenge the traditional banks. This framework was efficient for us as UX designers, and we could continuously ask ourselves if this was for the red segment and if it would nudge us in the right direction.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dogfooding&lt;/strong&gt;. As soon as the services were available in the app, we would get our paychecks and invoices into Bulder and pay from the app to observe how it worked. We got custom-made temporary cards to test everything from push notifications from ATMs and transactions abroad and what information to show.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Guerilla testing&lt;/strong&gt;. As soon as we had a basis sketched out in Figma, we linked it up as a prototype to test our assumptions. Did people find what they were looking for? We even designed features we knew were years ahead to see if they had a natural location in the information architecture.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;A close team&lt;/strong&gt;. Developers were an integral part of creating the design. They continuously came with better design solutions based on the APIs available and how we could utilize existing patterns and components.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dual design&lt;/strong&gt;. &lt;a href=&quot;/dual_design/&quot;&gt;Having two designers working together&lt;/a&gt; (much like pair coding or pair writing) was immensely useful. It’s great for learning, developing multiple ideas, sharpening the design process, and creating tidier and more maintainable design systems.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Open Thursday&lt;/strong&gt;. Creating a company within a new company has its challenges. One of the established measures was “Open Thursday,” where we served beer and presented the work from the last week. Open Thursday helped be transparent to the rest of the organization and get feedback from experts within its field within banking.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Industry experience&lt;/strong&gt;. There is no hiding that this wouldn’t be possible without industry experience from business developers, developers, and designers. There are many regulatory rules and systems for banking and finance, and knowing this saves a lot of time when you are building a new bank.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Deadline&lt;/strong&gt;. A deadline that seemed possible but hard to reach was essential to prioritizing what to make, and this made us focus and worry about the crucial parts. You could design and code forever in a project like this without letting real users into your project.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Gradually opening for real users&lt;/strong&gt;. We made a signup page for people interested in the product early on. This list evolved to about 3 000 people that ended on our beta-list, and we gradually added to our app to test the experience on real users.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Feedback&lt;/strong&gt;. We had multiple ways to get feedback that we collected in a Slack channel. We had a community, an email available from the app, and Facebook and Twitter presence to constantly monitor input.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Backing&lt;/strong&gt;. Last but not least, it is impossible to get a project like this running without backing from the whole corporation.&lt;/li&gt;
&lt;/ol&gt;
</content>
 </entry>
 
 <entry>
   <title>Dual design</title>
   <link href="https://hauken.no/dual_design/"/>
   <updated>2019-08-08T00:00:00+00:00</updated>
   <id>https://hauken.no/dual_design/</id>
   <content type="html">&lt;figure class=&quot;post__full&quot;&gt;
&lt;img src=&quot;/img/co-designing.svg&quot; alt=&quot;Co-design&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;em&gt;Originally published on &lt;a href=&quot;https://medium.com/stacc/dual-design-1c48e21dabf6&quot;&gt;Medium&lt;/a&gt; &lt;br /&gt;
Written together with &lt;a href=&quot;https://medium.com/u/f4eabd2443ff?source=post_page-----1c48e21dabf6----------------------&quot;&gt;Eivind Kjellevold&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is an article about co-creation. It is co-written with my friend and colleague &lt;a href=&quot;https://medium.com/u/c6b499d02af6?source=post_page-----1c48e21dabf6----------------------&quot;&gt;Marius Hauken&lt;/a&gt; . My name is Eivind and we both work at &lt;a href=&quot;https://stacc.com/&quot;&gt;Stacc&lt;/a&gt; as user experience designers in the fintech space. The inspiration for this post came from a project we are working on together.&lt;/p&gt;

&lt;p&gt;The tool we’re using at the moment — &lt;a href=&quot;https://www.figma.com/&quot;&gt;Figma&lt;/a&gt; — is an online collaborative design-tool. It means we are both working in the same document, at the same time. The whole team can follow cursors in real-time and see what everyone is doing, inspect design or export assets they need.We can copy, iterate and discuss our project in a way that was impossible a short time ago. The design document, the prototype, and developer handoff is all the same thing. Always.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Sometimes we even chat in Figma, drawing text-boxes and typing right in the document. Because we can see everyone‘s cursors, we know when we are looking at the same thing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Co-creation is so powerful, that it has totally changed our view on how design-teams are set up and how much our clients are gaining by hiring not just one, but two (or even more) UX-designers on one project.&lt;/p&gt;

&lt;p&gt;I cannot see how we ever managed to create good stuff before &lt;a href=&quot;https://www.figma.com/&quot;&gt;Figma&lt;/a&gt; , and we will never, ever, ever go back to working offline!&lt;/p&gt;

&lt;p&gt;I don’t think the new bank ( &lt;a href=&quot;http://www.bulderbank.no/&quot;&gt;www.bulderbank.no&lt;/a&gt; ) we’re designing would be half as good without a truly collaborative design process. One of us will come up with a new idea. The other one will argument against or refine it even more. One can sketch out new stuff while the other may clean up the design to make it more consistent. We can work remotely and speak about the design as if we were sitting right next to each other.&lt;/p&gt;

&lt;p&gt;I will leave this here for now, and let &lt;a href=&quot;https://medium.com/@hauken&quot;&gt;Marius&lt;/a&gt; take over for a bit — and when we are finished the end result will be better than what we would do on our own. I don’t even have a real plan for this article, but I know we will end up with something. Probably something good.&lt;/p&gt;

&lt;p&gt;In writing, pair-writing has been a thing for a long time. Same for programming. Developers have seen the value of pair programming for years. It’s useful for learning, it makes cleaner code, the code is finished faster and the end-result is more maintainable. I would argue that the same holds true for pair-designing. It’s great for learning, for developing multiple ideas, to sharpen the design process and for tidier and more maintainable design systems.&lt;/p&gt;

&lt;p&gt;Two designers is ten times better than one, and this dual approach is something we recommend our clients consider, especially on projects of scale.&lt;/p&gt;

&lt;p&gt;Tools like Figma makes the design process even smoother. You can remotely pair-design and discuss issues, while simultaneously easily involve the whole team in the discussion without interrupting everyone’s work day. The real time collaboration and openness these tools enables really makes a difference. The team feels more like… a team, and our clients are included and gets faster and better results.&lt;/p&gt;

&lt;p&gt;Good design needs to be challenged. It needs friction. It needs to be refined and tested. Only then can it become great.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Microinteractions - the secret ingredient</title>
   <link href="https://hauken.no/microinteractions/"/>
   <updated>2019-03-04T00:00:00+00:00</updated>
   <id>https://hauken.no/microinteractions/</id>
   <content type="html">&lt;p&gt;We’ve all been there: You’re paying a bill. Typing in what feels like hundreds of numbers. Checking to see if the numbers are correct. Checking. Again and again.&lt;/p&gt;

&lt;p&gt;Vipps, the Norwegian mobile payment application, fixes this problem elegantly. You either type in the mobile-number or the name to the reciever, and you get to see their profile-image. This way you never need to double check if the number is correct. Hello, microinteraction!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/2019-vipps-espen.gif&quot; alt=&quot;Example of microinteraction in Vipps&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;what-is-a-microinteraction&quot;&gt;What is a microinteraction?&lt;/h2&gt;

&lt;p&gt;Microinteractions are moments of delightful experiences or useful feedbacks helping the user accomplishing their task. These micro-moments are what guides the users through a flow in an effective and intuitive way. They are an underutilized but powerful instrument for designers.&lt;/p&gt;

&lt;figure&gt;
&lt;img src=&quot;https://66.media.tumblr.com/8dd95475f758dcdb6b501c99d6907ca8/tumblr_n4c8hdFGZC1qea4hso1_1280.gif&quot; alt=&quot;Example of microinteraction from Fiverr&quot; /&gt;
&lt;figcaption&gt;Another simple example is &lt;a href=&quot;https://www.fiverr.com/&quot;&gt;fiverr&lt;/a&gt;, a freelance service which shows a few of your key numbers on their logged in page. When you hover the key-numbers it shows an explanation of your account balance when you hover the figures.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;a-microinteraction-consist-of-3-or-4-elements&quot;&gt;A microinteraction consist of 3 (or 4) elements:&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;em&gt;A trigger&lt;/em&gt; - Something that releases the interaction. That could be typing in an account-number.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Rules&lt;/em&gt; - Rules that describe what the interaction is and when it should happen.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Feedback&lt;/em&gt; - The interaction is initiated and the user get a moment of delight or a feeling that this was useful.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Loops and modes&lt;/em&gt; - How the interaction changes if it is used again and again.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;the-role-of-microinteractions-in-banking&quot;&gt;The role of microinteractions in banking&lt;/h2&gt;

&lt;p&gt;Trust is what enables banks to exist. Microinteractions can play a small, although important, role in enabling this trust and security now that we don’t meet a person when we’re handling our money.&lt;/p&gt;

&lt;p&gt;The best cases for microinteractions are moments where the user feel insecure. This is the moment where we as designers must step up the game and help the users. One of my favorite examples of this is a feature we implemented while I worked as a consultant in Skandia:banken (now Sbanken). When you’re paying a bill and typing in an account-number, they show when and how much you last paid the same account. This way you can easily confirm that you don’t pay the same invoice again, or that the amount is the same as previous transactions.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/2019-suggestion.gif&quot; alt=&quot;Sbanken - how much and when did you pay last&quot; /&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The details are not the details. They make the product.&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;Charles Eames&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;guiding-the-user&quot;&gt;Guiding the user&lt;/h2&gt;

&lt;p&gt;Consider one of the most prominent microinteractions in online banking: the thousand-separator in input-fields. It’s a feature you don’t think about, but you sure do notice when it’s gone. It is an interaction that a developer has used hours to add, just to make your bank-experience a tiny bit better.&lt;/p&gt;

&lt;h3 id=&quot;the-thousand-separator-has&quot;&gt;The thousand-separator has:&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;em&gt;a trigger&lt;/em&gt; - typing a number more than three digits.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;rules&lt;/em&gt; - when the number is above 999 there should be a gap between the first number and the three next (and a lot of other rules).&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;feedback&lt;/em&gt; - the interaction is initiated and it’s easier for the user to understand how much they have actually typed in.&lt;/li&gt;
&lt;/ol&gt;

&lt;div style=&quot;display: flex;&quot;&gt;
  &lt;figure&gt;&lt;img alt=&quot;an input with thousand-separator&quot; src=&quot;/img/2019-thousand-separator.gif&quot; /&gt; &lt;/figure&gt;
  &lt;figure&gt;&lt;img alt=&quot;an input without thousand-separator&quot; src=&quot;/img/2019-thousand-separator-not.gif&quot; /&gt; &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Some microinteractions also need loops or modes to work: Say you are transferring money and type in a higher number than what’s on the account. If the input-field then subtly shakes when you are leaving it, it indicates that there are not enough money. If you don’t understand the shaking the first time, delete the number and type it in again the user should probably get a message explaining why the input is saying no. If not our delightful little interaction suddenly is becoming an annoying experience.&lt;/p&gt;

&lt;figure&gt;
&lt;img src=&quot;/img/2019-shaking-input.gif&quot; alt=&quot;Example of shaking input from Wordpress&quot; /&gt;
&lt;figcaption&gt;An example of shaking input from the Wordpress login page&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;imprisoned-by-our-design-tools&quot;&gt;Imprisoned by our design tools&lt;/h2&gt;

&lt;p&gt;Microinteractions are unfortunately an underutilized tool in designers toolkit. They are easily forgotten. We’re imprisoned by our design tools. Whether you use Figma, Sketch, Framer, Adobe XD or Illustrator (++), they all have the restriction that they are static sketches (maybe except Framer).&lt;/p&gt;

&lt;p&gt;You can’t easily prototype what happens when it is time- or trigger-based, for example if you type in a number outside coverage. If you can’t easily prototype it it’s easily forgotten. This is where an actual prototype in code shines and why it’s a foundation for our projects to jump into code rather early.&lt;/p&gt;

&lt;h2 id=&quot;a-few-helpful-questions-before-designing-a-microinteraction&quot;&gt;A few helpful questions before designing a microinteraction&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Do I need to add a new element? Microinteractions are often best when they seamlessly flow into your existing design.&lt;/li&gt;
  &lt;li&gt;Does the interaction feel the same the 1st and 5th time? Make the interaction adapt to the context and the user. It’s fun if it rains confetti the first time you log into the bank, but can become tiresome and ironic if it happens every time you log in.&lt;/li&gt;
  &lt;li&gt;Do I understand my users? Talk to them! Test your interface regularly! If you don’t know their motivations or how they use your bank you could be fixing problems that don’t exist.&lt;/li&gt;
  &lt;li&gt;Am I using the right tools for sketching and designing our product?&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>How to combine pdf files from terminal</title>
   <link href="https://hauken.no/combine-pdf-files-from-terminal/"/>
   <updated>2019-02-27T00:00:00+00:00</updated>
   <id>https://hauken.no/combine-pdf-files-from-terminal/</id>
   <content type="html">&lt;p&gt;I’ve previously written about how to &lt;a href=&quot;/Create-pdf-from-images-in-terminal&quot;&gt;easily create a pdf from images in terminal&lt;/a&gt;, but when you need to merge multiple pdfs to one it’s another ballgame&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;. Usually I’ve resorted to Adobe Acrobat (Hello trial and paywall) or Preview. But preview is rather cumbersome. Luckily it seems like there is an easy terminal-based automator-script for this already included in OSX. Here is a quick guide to get you up and running.&lt;/p&gt;

&lt;h2 id=&quot;merge-pdf-pages&quot;&gt;Merge pdf pages&lt;/h2&gt;

&lt;p&gt;The script itself runs like this. So you could just copy this into your terminal and modify stuff.&lt;/p&gt;

&lt;div class=&quot;language-ssh highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;&quot;/&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;System&lt;/span&gt;/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py&quot; -o PATH/TO/YOUR/MERGED/FILE.pdf /PATH/TO/ORIGINAL/1.pdf /PATH/TO/ANOTHER/2.pdf /PATH/TO/A/WHOLE/DIR/*.pdf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I however found it easier to create an alias so that I can run a shorter command.&lt;/p&gt;

&lt;h2 id=&quot;how-to-set-up-an-alias-for-pdfmerge&quot;&gt;How to set up an alias for pdfMerge&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;Open your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/.bash_profile&lt;/code&gt; file in a text-editor&lt;/li&gt;
  &lt;li&gt;Add a new line with the text:&lt;/li&gt;
&lt;/ol&gt;

&lt;div class=&quot;language-ssh highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;alias&lt;/span&gt; pdfMerge=&apos;&quot;/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py&quot; -o&apos;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ol&gt;
  &lt;li&gt;Save the file.&lt;/li&gt;
  &lt;li&gt;Quit the editor. Your new alias &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pdfMerge&lt;/code&gt; will be set for the next terminal you open.&lt;/li&gt;
  &lt;li&gt;Open a new &lt;em&gt;Terminal&lt;/em&gt; window and try it out:&lt;/li&gt;
  &lt;li&gt;Type in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pdfMerge output.pdf *.pdf&lt;/code&gt; which means use Automator to convert all pdf-files in this folder and combine them to a pdf called output.pdf.&lt;/li&gt;
  &lt;li&gt;You now have one pdf-file with all your pdfs combined!&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;protip-decide-order&quot;&gt;ProTip: Decide order&lt;/h3&gt;

&lt;p&gt;If you want the file in a specific order I recommend naming your files with numbers. F.ex: 1-onboarding.pdf, 2-signing.pdf. You can also type your files directly out like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;convert output.pdf onboarding.pdf signing.pdf&lt;/code&gt;
&lt;a href=&quot;https://superuser.com/questions/350201/convert-many-images-to-one-pdf-on-mac&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;ps&quot;&gt;PS&lt;/h3&gt;

&lt;p&gt;Yeah. I know that the output-file is at the end on the imagemagick solution, and first on the pdfMerge-solution. A bit annoying.&lt;/p&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:1&quot;&gt;
      &lt;p&gt;You can hack around this by still using imagemagic, but it doesn’t just combine them, &lt;a href=&quot;https://superuser.com/questions/54041/how-to-merge-pdfs-using-imagemagick-resolution-problem&quot;&gt;it changes resolution etc.&lt;/a&gt; &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</content>
 </entry>
 
 <entry>
   <title>RSS wasn’t dead</title>
   <link href="https://hauken.no/rss-wasnt-dead/"/>
   <updated>2018-11-13T00:00:00+00:00</updated>
   <id>https://hauken.no/rss-wasnt-dead/</id>
   <content type="html">&lt;p&gt;I have sweared to a RSS-reader for following blogs and interesting webpages for over a decade now. I love that I once a week can sit down with a cup of coffee and read all the blogs/websites I follow without switching context and webpages all the time.&lt;/p&gt;

&lt;h2 id=&quot;what-is-a-rss-reader&quot;&gt;What is a RSS reader?&lt;/h2&gt;

&lt;p&gt;From &lt;a href=&quot;http://whatisrss.com&quot;&gt;whatisrss.com&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;RSS solves a problem for people who regularly use the web. It allows you to &lt;em&gt;easily stay informed&lt;/em&gt; by retrieving the latest content from the sites you are interested in. You &lt;em&gt;save time&lt;/em&gt; by not needing to visit each site individually. You &lt;em&gt;ensure your privacy&lt;/em&gt;, by not needing to join each site’s email newsletter.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;my-rss-reader-history&quot;&gt;My RSS-reader history&lt;/h2&gt;

&lt;p&gt;I got introduced to RSS-readers with Google Reader, and became quickly addicted. When Google shut it down in 2013 I needed to find an alternative. My choice fell on &lt;a href=&quot;https://feedafever.com&quot;&gt;Shaun Inmans Fever&lt;/a&gt;. It was a self hosted solution, which meant a bit of work, but on the other hand I owned my own data and it would still work the day support for it stopped.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/fever-theme.png&quot; alt=&quot;My fever-theme&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I loved how it worked and that I had control over all the files – especially the CSS. &lt;a href=&quot;https://github.com/mhauken/fever&quot;&gt;I even made my own theme people could use.&lt;/a&gt; Sadly Shaun Inman stopped supporting fever &lt;a href=&quot;https://shauninman.com/archive/2016/12/24/goodbye_mint_goodbye_fever&quot;&gt;two years ago&lt;/a&gt;. I’ve been using it until now, but it’s time to admit that it’s just running on fumes now. We had a good run.&lt;/p&gt;

&lt;p&gt;Therefore one of my weekend activities became finding a new RSS-reader. On my iPad I’ve been using &lt;a href=&quot;http://reederapp.com/ios/&quot;&gt;Reeder 3&lt;/a&gt; for reading the content on Fever. I therefore started with the list of RSS-readers Reeder supports. I checked out more or less everyone of the competitors, but there was one clear winner:&lt;/p&gt;

&lt;h2&gt;&lt;img src=&quot;/img/feedbin.svg&quot; alt=&quot;Feedbin&quot; /&gt;&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;http://feedbin.com&quot;&gt;Feedbin&lt;/a&gt; is a small company with two persons running on a subscription-based model (5$ month). Good news: a sustainable business-model unlike Google Reader and Fever.&lt;/p&gt;

&lt;h3 id=&quot;subscribe-to-emails&quot;&gt;Subscribe to emails&lt;/h3&gt;

&lt;p&gt;The one killer-feature which made the choice to switch to Feedbin easy was the ability to subscribe to newsletters and have them appear as a feed together with your other subscriptions. &lt;a href=&quot;https://techcrunch.com/2014/08/23/why-everyone-is-obsessed-with-e-mail-newsletters-right-now/?guccounter=1&quot;&gt;The last years it has&lt;/a&gt;, understandably, become very popular to make newsletters. There is a lot of great newsletters out there that just excist as newsletters and the only way to access them is by getting mail. I personally hate to get newsletters mixed with other mail and things I actually have to respond to. Mentally it’s better for me to read those email-subscriptions while I read the other RSS-feeds thereby seperating work from reading / getting updated. Therefore this feature in Feedbin really struck home, and I’ve been transferring each newsletter as I get mail in my inbox.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/feedbin.png&quot; alt=&quot;Feedbin&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;clean-up-old-feeds&quot;&gt;Clean up old feeds&lt;/h3&gt;

&lt;p&gt;Luckily it is usually easy to switch RSS-reader since there is an open standard for consuming and exporting them, OPML, which almost everyone use. I used that when switching from Google reader to Fever, as well as now from Fever to Feedbin. That meant there were lot of feeds that needed to be cleaned up - some feeds hadn’t been updated since 2012. Luckily Feedbin has a simple solution for seing how frequently blogs are updated and when they last were updated which made the cleaning job rather easy.&lt;/p&gt;

&lt;h3 id=&quot;a-lot-of-great-features&quot;&gt;A lot of great features&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;http://feedbin.com&quot;&gt;Feedbin&lt;/a&gt; got itself a new fan this weekend. I recommend trying it out. It also has a bunch of other great features like:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Nice typography. Hello Hoefler &amp;amp; co!&lt;/li&gt;
  &lt;li&gt;An impressive webapp which makes me forget Reeder 3 exists. (Seriously: the only thing to complain about is if your are switching to another app and back and it forgets it’s state)&lt;/li&gt;
  &lt;li&gt;It can fetch full text from article for feeds that only offer partial content&lt;/li&gt;
  &lt;li&gt;They are &lt;a href=&quot;https://feedbin.com/blog/2018/09/11/private-by-default/&quot;&gt;private by default&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;They even have a solution for reading Twitter (which I haven’t checked out yet)&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>How to create pdf from images in Terminal</title>
   <link href="https://hauken.no/Create-pdf-from-images-in-terminal/"/>
   <updated>2018-10-13T00:00:00+00:00</updated>
   <id>https://hauken.no/Create-pdf-from-images-in-terminal/</id>
   <content type="html">&lt;p&gt;Now and then I find myself in the situation where I need to create a pdf from some images. I often resort to Preview, but it can be quite cumbersome at times. There is however an easier and faster option, but it requires that you use the Terminal.&lt;/p&gt;

&lt;h2 id=&quot;images-to-pdf-step-by-step&quot;&gt;Images to pdf step by step&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;First you need Homebrew, which is basically the app store for Terminal. If you don’t have it installed open you can follow the setup at &lt;a href=&quot;https://brew.sh&quot;&gt;brew.sh&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Once done close your terminal and open it up again (to make sure that Homebrew works)&lt;/li&gt;
  &lt;li&gt;Then type in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;brew install imagemagick&lt;/code&gt;. This installs &lt;a href=&quot;https://www.imagemagick.org/script/index.php&quot;&gt;imagemagic&lt;/a&gt; which is the program that will help us create the pdf-files.&lt;/li&gt;
  &lt;li&gt;When finished close and open up your Terminal again.&lt;/li&gt;
  &lt;li&gt;Next step is to find the folder where we have the source images we want converted. The easiest way to do that is to find the folder in Finder. Then in your Terminal type in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cd&lt;/code&gt; and then drag your folder into your Terminal window. Now it will read &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cd Downloads/images&lt;/code&gt; or something similar. Then press enter. Now we have navigated to a new folder in Terminal!&lt;/li&gt;
  &lt;li&gt;Type in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;convert *.jpg output.pdf&lt;/code&gt; which means use imagemagick to convert all jpg-files in this folder and combine them to a pdf called output.pdf. You can adjust this if you f.ex. have png-files, or create your own name on the pdf: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;convert *.png myAwesomeFile.pdf&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;You now have a pdf-file with all your images combined!&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;protip-1&quot;&gt;ProTip 1&lt;/h3&gt;

&lt;p&gt;If you want the file in a specific order I recommend naming your files with numbers. F.ex: 1-onboarding.png, 2-signing.png. You can also type your files directly out like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;convert onboarding.png signing.png output.pdf&lt;/code&gt;&lt;/p&gt;

&lt;h3 id=&quot;protip-2&quot;&gt;ProTip 2&lt;/h3&gt;

&lt;p&gt;If the resulting pdf is too big in size you can try: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;convert -quality 60 *.jpg output.pdf&lt;/code&gt;&lt;/p&gt;

&lt;h3 id=&quot;tldr&quot;&gt;Tl;dr&lt;/h3&gt;

&lt;p&gt;To convert images to pdf:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;brew install imagemagick&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;convert *.jpg output.pdf&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href=&quot;https://superuser.com/questions/350201/convert-many-images-to-one-pdf-on-mac&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Related:&lt;/strong&gt; Need to merge existing PDF files instead? Check out &lt;a href=&quot;/combine-pdf-files-from-terminal&quot;&gt;how to combine PDF files from terminal&lt;/a&gt;.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Preparing and implementing svgs on the web</title>
   <link href="https://hauken.no/Preparing-and-implementing-svgs-on-the-web/"/>
   <updated>2018-04-23T00:00:00+00:00</updated>
   <id>https://hauken.no/Preparing-and-implementing-svgs-on-the-web/</id>
   <content type="html">&lt;p class=&quot;post__lead&quot;&gt;Svgs are awesome. They are scalable, small, and you can actually edit the file both visually and in code. This is my current workflow for optimising svgs for webpages.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/svg-export.webp&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;visual-editing&quot;&gt;Visual editing&lt;/h2&gt;

&lt;p&gt;At the moment I do most of my design work in &lt;a href=&quot;http://figma.com/&quot;&gt;Figma&lt;/a&gt;, even though its svg exports is not the best. &lt;a href=&quot;https://spectrum.chat/?t=aa437d45-ce63-4cbe-b614-bb6ab63312cf&quot;&gt;I know they are working on it&lt;/a&gt;, but at the moment I export the svg from figma and import it into Sketch where I usually remove some groupings and clipping masks and export it out again.&lt;/p&gt;

&lt;h3 id=&quot;preparation&quot;&gt;Preparation&lt;/h3&gt;

&lt;p&gt;How you prepare the svg in your editor is an important part of optimizing your svgs, but there are two quick-fixes you can do before you export that I would recommend:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;img src=&quot;/img/transform.png&quot; width=&quot;200&quot; style=&quot;float: right;&quot; /&gt; If your shape has any form of transform remove it by selecting the shape in Sketch and go to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Layer &amp;gt; Combine &amp;gt; Flatten&lt;/code&gt;. Now the Transform should say 0.&lt;/li&gt;
  &lt;li&gt;&lt;img src=&quot;/img/unioned.gif&quot; width=&quot;200&quot; style=&quot;float: right;&quot; /&gt; If you have multiple shapes that visually combines to one shape Combine them by selecting them and going to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Layer &amp;gt; Combine &amp;gt; Union|Subtract|Intersect|Difference&lt;/code&gt; F.ex. an arrow consisting of a rectangle and a triangle should be combined into one shape for smallest file-size.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;export&quot;&gt;Export&lt;/h3&gt;

&lt;p&gt;How you export and compress your svg are important for the final file-size. The default export from Sketch has a lot of bloat (Hello, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;desc&amp;gt;Created with Sketch.&amp;lt;/desc&amp;gt;&lt;/code&gt;), and we don’t want that in our final files. In Sketch I therefore have the plugin &lt;a href=&quot;https://www.sketchapp.com/extensions/plugins/svgo-compressor/&quot;&gt;SVGO Compressor&lt;/a&gt; installed. It just magically compressses your files when you export as usual.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/svgo.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I have changed the default settings to compress the files even more than the default-setting. To copy my settings you can select &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Plugins › SVGO Compressor › About SVGO Compressor&lt;/code&gt; and then click the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Edit SVGO Settings…&lt;/code&gt; button. Your default editor will open the svgo.json file, where you’ll be able to tweak the settings. Remove the content in the file and &lt;a href=&quot;https://gist.github.com/mhauken/05f8d70d65d874d832391cc5d9211628#file-svgo-json&quot;&gt;paste this file instead&lt;/a&gt;. In my experience it at least halves the file-size from the default settigs. Your milage may vary if you use a lot of masks/gradient etc. but I would recommend testing out tweaking the different parameters. They are very descriptive like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cleanupAttrs&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mergePaths&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;removeTitle&lt;/code&gt; etc. &lt;a href=&quot;https://github.com/svg/svgo#what-it-can-do&quot;&gt;You can see all the parameters here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jakearchibald.github.io/svgomg/&quot;&gt;Svgomg also exist as a webtool&lt;/a&gt;, and even though it works like magic on the svg filesize, it doesn’t change the structure of the svg. If you have unneccesary shapes, masks or shapes that could have been combined you should fix this before exporting. This is probably whats going to save most space.&lt;/p&gt;

&lt;h2 id=&quot;manual-editing&quot;&gt;Manual editing&lt;/h2&gt;

&lt;p&gt;You’d be surprised how much of a regular svg is not needed. SVGO helps a lot with this, but just to a certain point. Most tools add unnessecary class-names and divs or groups that you don’t need any-more. They are mostly not needed unless you are doing something more complex like controlling your svg via CSS or having gradients or masks. I always recommend opening up your svg-file in your favorite editor and just delete elements that doesn’t seem neccessary.&lt;/p&gt;

&lt;h3 id=&quot;attributes&quot;&gt;Attributes&lt;/h3&gt;

&lt;p&gt;When you export out an svg you usually get a lot of attributes added to the svg like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; version=&quot;1.1&quot; &amp;gt;...&amp;lt;/svg&amp;gt;&lt;/code&gt; but when do you actually need to use them?&lt;/p&gt;

&lt;h4 id=&quot;xmlns&quot;&gt;xmlns&lt;/h4&gt;

&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xmlns=&quot;http://www.w3.org/2000/svg&quot;&lt;/code&gt; attribute is&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ietf.org/rfc/rfc3987.txt&quot;&gt;Required when you used standalone svg (previews or import it via &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;img /&amp;gt;&lt;/code&gt; or CSS.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.w3.org/TR/html5/&quot;&gt;Optional for inlined &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;svg&amp;gt;&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;xmlnsxlink&quot;&gt;xmlns:xlink&lt;/h4&gt;

&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&lt;/code&gt; attribute is:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ietf.org/rfc/rfc3987.txt&quot;&gt;Required for image/svg+xml files with xlink: attributes. (like masks and similar.)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.w3.org/TR/html5/&quot;&gt;Optional for inlined &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;svg&amp;gt;&lt;/code&gt; with xlink: attributes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;version&quot;&gt;version&lt;/h4&gt;

&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;version=&quot;1.1&quot;&lt;/code&gt; attribute is:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.w3.org/TR/REC-xml/&quot;&gt;Recommended to comply with image/svg+xml files standards&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Ignored by every user agent.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;viewbox&quot;&gt;viewBox&lt;/h4&gt;

&lt;p&gt;This says a lot of the size/placement of the elements in the svg so this is always needed.&lt;/p&gt;

&lt;h4 id=&quot;height-and-width&quot;&gt;height and width&lt;/h4&gt;

&lt;p&gt;You don’t need to specify this. If you don’t the svg will take as much space as it is allowed. Much like a regular &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;img /&amp;gt;&lt;/code&gt; without width specified.&lt;/p&gt;

&lt;h3 id=&quot;grouping&quot;&gt;grouping&lt;/h3&gt;

&lt;p&gt;Very often you don’t need the grouping (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;g&amp;gt;&lt;/code&gt;) of elements if the file is simple, or you are not editing the file any more. If you f.ex. are exporting out an icon with just one shape, the grouping is unnecessary.&lt;/p&gt;

&lt;h3 id=&quot;fill-ruleevenodd&quot;&gt;fill-rule=”evenodd”&lt;/h3&gt;

&lt;p&gt;This is often not needed. I recommend trying to remove it to se if it affects your svg. &lt;a href=&quot;https://www.sitepoint.com/understanding-svg-fill-rule-property/&quot;&gt;Here is an article outlining how the fill-rule property works.&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;implementing-on-the-web&quot;&gt;Implementing on the web&lt;/h2&gt;

&lt;h3 id=&quot;inline-svg&quot;&gt;Inline svg&lt;/h3&gt;

&lt;p&gt;To get the most control of the svgs just copy the code in the svg and paste it into you html/twig/php/react-file and your good to go. I usually change the fill-color to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;currentColor&lt;/code&gt; to control the color better via the color-property in CSS. Other times I just remove the fill-color completely and target it in the css via fill. Or, if I need multiple colors, i might add classnames to each path and shape so that I can target them directly with css.&lt;/p&gt;

&lt;h3 id=&quot;svg-in-css&quot;&gt;svg in CSS&lt;/h3&gt;

&lt;p&gt;There are multiple ways to add an svg to your CSS. Lets take this link with an arrow behind is an example. We can add this multiple ways:&lt;/p&gt;

&lt;iframe height=&quot;265&quot; scrolling=&quot;no&quot; title=&quot;svg in css&quot; src=&quot;//codepen.io/mhauken/embed/odgjRb/?height=265&amp;amp;theme-id=0&amp;amp;default-tab=css,result&amp;amp;embed-version=2&quot; frameborder=&quot;no&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot; style=&quot;width: 100%;&quot;&gt;See the Pen &lt;a href=&quot;https://codepen.io/mhauken/pen/odgjRb/&quot;&gt;svg in css&lt;/a&gt; by mhauken (&lt;a href=&quot;https://codepen.io/mhauken&quot;&gt;@mhauken&lt;/a&gt;) on &lt;a href=&quot;https://codepen.io&quot;&gt;CodePen&lt;/a&gt;.
&lt;/iframe&gt;

&lt;p&gt;A couple of things to note:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;If you link to the svg-file it’s going to be a new http-requests, and microscopically slower.&lt;/li&gt;
  &lt;li&gt;You can directly inline svgs like this:&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;background-image: url(&apos;data:image/svg+xml;charset=UTF-8,&amp;lt;svg&amp;gt;{content here}&amp;lt;/svg&amp;gt;&apos;);&lt;/code&gt; (Link 2). This however doesn’t work very well with some versions of internet explorer. The fix for this is to URI-encode your svg. &lt;a href=&quot;https://codepen.io/elliz/pen/ygvgay&quot;&gt;I use this tool to convert the svg to data URI.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Another solution is to Base64-encode the svg, but is usually create a larger file than uri-encoding the svg directly.&lt;/li&gt;
  &lt;li&gt;You can’t use currentColor or similar when you URI-encode the svg since the browser reads it like it’s a svg that you are linking to. If you want the hover-color of the icon to be the same as the rest of the link I have 3 solutions for you:
_ Link to another colored URI-encoded-svg on hover (Link 4)
_ Use mask-image and use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;currentColor&lt;/code&gt; on the background-color. &lt;a href=&quot;https://caniuse.com/#feat=css-masks&quot;&gt;The support for this&lt;/a&gt; is not the best, so use with causion. (Link 5) * You could also fake a mask in SVG (basically create a box in the same color as the background, and clip out the symbol from that shape). Again we use the background-image with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;currentColor&lt;/code&gt;. The support for this is much better, but a bit hacky. ¯_(ツ)_/¯ (Link 6)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;useful-links&quot;&gt;Useful links:&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://jakearchibald.github.io/svgomg/&quot;&gt;svgomg to minify the svgs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://codepen.io/elliz/pen/ygvgay&quot;&gt;Convert svg to data URI &lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sketchapp.com/extensions/plugins/svgo-compressor/&quot;&gt;SVGO Compressor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gist.github.com/mhauken/05f8d70d65d874d832391cc5d9211628#file-svgo-json&quot;&gt;My export settings for SVGO Compressor for Sketch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>A short (personal) introduction to smart homes</title>
   <link href="https://hauken.no/smarthus/"/>
   <updated>2017-12-26T00:00:00+00:00</updated>
   <id>https://hauken.no/smarthus/</id>
   <content type="html">&lt;p&gt;Are you renovating a house or starting on a new build? Smart homes are likely one of the thousand decisions you have to look into. These are my experiences and tips after fully restoring a 40 year old house.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/smarthus-1.png&quot; alt=&quot;Smarthus&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;smart-homes-dont-have-to-be-expensive&quot;&gt;Smart homes don’t have to be expensive&lt;/h2&gt;

&lt;p&gt;After doing some research I discovered that smart homes aren’t as expensive or complicated as I first feared. When you’re buying new thermostats and light switches, why not go for the smart versions? Products that talk to each other have become very competitive in price in recent years, &lt;a href=&quot;https://futurehome.no/blog/smarthome/smarthus-er-like-billig-som-vanlige-hus/&quot;&gt;so the difference isn’t that big any more&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;z-wave&quot;&gt;Z-wave&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/img/smarthus-z-wave.png&quot; alt=&quot;z-wave&quot; class=&quot;img--right&quot; width=&quot;250&quot; /&gt;
One of the main reasons smart home solutions have become cheaper is the wireless standard Z‑wave. It lets the devices talk to each other and relay signals if some units are farther away. It also means you’re not locked into a single platform. You can easily switch between &lt;a href=&quot;https://futurehome.no/&quot;&gt;Futurehome&lt;/a&gt;, &lt;a href=&quot;https://www.smartthings.com/&quot;&gt;Samsung Smartthings&lt;/a&gt;, &lt;a href=&quot;https://homeseer.com&quot;&gt;Homeseer&lt;/a&gt; or other systems. Another benefit is that thermostats and switches work just like normal devices before you connect them to a smart hub.&lt;/p&gt;

&lt;h2 id=&quot;which-smart-gadgets&quot;&gt;Which smart gadgets?&lt;/h2&gt;

&lt;p&gt;“Ok. These Z‑wave gadgets seem nice, but which devices should I get to make a smart home?”&lt;/p&gt;

&lt;h3 id=&quot;heating&quot;&gt;Heating&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/img/smarthus-varme.png&quot; alt=&quot;z-wave varme&quot; class=&quot;img--right&quot; width=&quot;250&quot; /&gt;
Thermostats are probably the most practical and economical devices to make smart. You get features like night setback, vacation mode and the heating back on before you return home. In Norway the &lt;a href=&quot;https://www.intin.no/produkt/multireg-z-wave-termostat/&quot;&gt;Multireg thermostats&lt;/a&gt; are considered the industry standard. We have one in every room and are very happy with them.&lt;/p&gt;

&lt;h3 id=&quot;lighting&quot;&gt;Lighting&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/img/smarthus-lys.png&quot; alt=&quot;z-wave&quot; class=&quot;img--right&quot; width=&quot;250&quot; /&gt;
The second thing to sort out when planning a house is smart dimmers that control the lights. It’s a small unit your electrician installs behind the wall switch that controls brightness, on/off state and sends updates to the hub. There are many types. We have &lt;a href=&quot;https://www.intin.no/produkt/fibaro-mikrodimmer-2/&quot;&gt;Fibaro dimmer 2&lt;/a&gt; throughout our house. All wall switches need to be impulse switches, meaning they spring back to the same position when pressed. To change brightness you simply hold the switch.&lt;/p&gt;

&lt;h3 id=&quot;door-lock&quot;&gt;Door lock&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/img/smarthus-dor.png&quot; alt=&quot;z-wave&quot; class=&quot;img--right&quot; width=&quot;250&quot; /&gt;
After a few months we also installed a smart door lock. We went with &lt;a href=&quot;https://www.intin.no/produkt/id-lock-101-zwave/&quot;&gt;ID-lock&lt;/a&gt;, supposedly the best option for Norwegian weather. The best part is not needing keys anymore. Instead you type in a code or use an NFC tag. In practice I’ve never used the tag as it’s faster to just enter the code. You can also add extra codes if you want to give contractors their own.&lt;/p&gt;

&lt;p&gt;The smart connection is handy because I get notifications if the door opens while the house is in away mode. You’re also sure the door is locked when you set the house to away or night mode. I’ve even unlocked the door remotely when a carpenter arrived before I got home.&lt;/p&gt;

&lt;p&gt;“What if the lock’s battery dies? Can’t you get in?” The batteries are inside the door, so if I’m inside I just replace them. If I’m outside I can hold a smoke detector battery to the contacts and the door will open.&lt;/p&gt;

&lt;h3 id=&quot;sensors&quot;&gt;Sensors&lt;/h3&gt;

&lt;p&gt;Sensors can make your home much smarter. They come in many types: water sensors, door sensors, temperature sensors, motion sensors and more. The most useful are motion sensors that can turn lights on and off. I have three Aeotech multisensors doing this in the living room, hallway and bathroom. The great thing is that they can behave differently depending on the mode the house is in. In home mode they switch on the lights, in away or vacation mode I get a notification, and in night mode they trigger some gentle night lights so your night vision isn’t ruined. They’re easy to add later. So far I’ve found the best place for them is in hallways that are used occasionally, saving you from thinking about switches.&lt;/p&gt;

&lt;h3 id=&quot;smoke-detectors&quot;&gt;Smoke detectors&lt;/h3&gt;

&lt;p&gt;You can also connect smoke detectors to the system. They aren’t much smarter than regular detectors except that they talk to the rest of the system so they can turn on lights, unlock the door or send you a push notification if you’re away. Note that the small Fibaro detectors don’t have a built-in siren, so you’ll need a separate one.&lt;/p&gt;

&lt;h2 id=&quot;smart-hub&quot;&gt;Smart hub&lt;/h2&gt;

&lt;p&gt;Perhaps the most important thing you need is a smart hub. It’s a small box in your house that connects to the internet and talks to all the Z‑wave gadgets around the home. Each comes with an app so you can control everything from anywhere. Here’s a brief overview of the solutions I found most relevant.&lt;/p&gt;

&lt;h3 id=&quot;futurehome&quot;&gt;Futurehome&lt;/h3&gt;

&lt;p&gt;This is the solution I chose. Futurehome is a small Norwegian startup that continually releases updates and new features. They have amazing customer service (I’ve had replies in under 10 minutes on a Saturday evening) and exciting plans ahead. The interface is clean and simple, though to be honest I mostly use the shortcuts on the lock screen of my phone.&lt;/p&gt;

&lt;p&gt;Setting up Futurehome was a very positive experience. We’d lived in our house for about two months before I bought it and planned to make the house smart. I assumed it would take all evening to connect the devices, but after 10 minutes I had paired nine thermostats and fifteen dimmers.&lt;/p&gt;

&lt;p&gt;Futurehome also has an API you can access if you want to do more advanced things.&lt;/p&gt;

&lt;h3 id=&quot;smartthings&quot;&gt;Smartthings&lt;/h3&gt;

&lt;p&gt;This is Samsung’s smart home solution. It seems solid, simple and clear. The features are quite similar to Futurehome and it’s probably what I would pick if Futurehome didn’t exist.&lt;/p&gt;

&lt;h3 id=&quot;homeseer&quot;&gt;Homeseer&lt;/h3&gt;

&lt;p&gt;This is probably the most advanced solution. You can do absolutely anything and create the wildest rules, and it supports the most devices. I must admit I dismissed it purely for aesthetic reasons: the Homeseer mobile app looks like it was made in the 90s by an engineer. They supposedly have a program where you can design it yourself, but that’s not how I want to spend my time, and the program only runs on Windows.&lt;/p&gt;

&lt;h2 id=&quot;home-assistant&quot;&gt;Home assistant&lt;/h2&gt;

&lt;p&gt;Home assistant is probably the cheapest option. It’s open source and runs on a Raspberry Pi with an extra module. If you have the technical skills you can tailor it exactly how you want, and likely spend quite a bit of time getting things just right.&lt;/p&gt;

&lt;h2 id=&quot;modes-rules-and-shortcuts&quot;&gt;Modes, rules and shortcuts&lt;/h2&gt;

&lt;p&gt;When you first get a smart home you might think it’s important to create lots of advanced rules. After a while I find that having a few main settings for home, away, night and vacation mode, plus some shortcuts to toggle lights, is more than enough. Futurehome covers this well and has found a sweet spot between usability and advanced features.&lt;/p&gt;

&lt;h2 id=&quot;ifttt&quot;&gt;IFTTT&lt;/h2&gt;

&lt;p&gt;If you want more advanced features, Futurehome supports IfThisThenThat. This means you can connect it to many other online services for extra functionality. I use it to automatically set the house to home mode when I approach its location with my phone. Another use is turning on a surveillance camera when the house is in away or vacation mode.&lt;/p&gt;

&lt;h2 id=&quot;alexa&quot;&gt;Alexa&lt;/h2&gt;

&lt;p&gt;IFTTT has also allowed me to hook the house up to an Amazon Echo Dot so Alexa can turn lights on and off. It’s undeniably fun. Since getting Alexa I’ve barely used the shortcuts in the Futurehome app, relying mostly on voice commands. Samsung Smartthings apparently has even tighter integration with Echo.&lt;/p&gt;

&lt;h2 id=&quot;enova&quot;&gt;Enova&lt;/h2&gt;

&lt;p&gt;If you buy control for three or more heating zones you can also get support from Enova. They cover 20% of the total cost (up to 4000 NOK) for smart equipment. For me it was easy: I uploaded the receipts and filled out their form. A few weeks later the money was in my account.&lt;/p&gt;

&lt;h2 id=&quot;whats-it-like-living-with-a-smart-home&quot;&gt;What’s it like living with a smart home?&lt;/h2&gt;

&lt;p&gt;All in all a smart home won’t revolutionize your everyday life. It’s convenient that the lights turn on and off without a switch, the doors lock when you want and the heating adjusts for vacations and night-time. Or that you can sit on the couch and ask Alexa to put the house in TV mode. But I wouldn’t use saving money as an argument. It will take many years before my electricity bill has earned back what I’ve spent—especially as more smart devices keep entering the house.&lt;/p&gt;

&lt;h2 id=&quot;my-devices&quot;&gt;My devices&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.intin.no/produkt/futurehome-smarthub/&quot;&gt;Futurehome&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.intin.no/produkt/id-lock-101-zwave/&quot;&gt;IdLock&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.intin.no/produkt/fibaro-mikrodimmer-2/&quot;&gt;Fibaro dimmer 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.intin.no/produkt/multireg-z-wave-termostat/&quot;&gt;Multireg termostat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.intin.no/produkt/aeotec-multisensor-6/&quot;&gt;Aeotech multisensor 6&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.intin.no/produkt/fibaro-brannvarsler-fgsd-002/&quot;&gt;Fibaro brannvarsler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.intin.no/produkt/aeotec-smart-switch-6/&quot;&gt;Aeotech smart switch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.intin.no/produkt/amazon-echo-sort/&quot;&gt;Amazon echo dot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.intin.no/produkt/aeotec-sirene-gen5/&quot;&gt;Aeotech siren&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.intin.no/produkt/fibaro-flood-sensor/&quot;&gt;Fibaro flood sensor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.intin.no/produkt/sensative-strips-dorvindu-sensor/&quot;&gt;Sensative strips&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;I bought almost everything from &lt;a href=&quot;http://intin.no/&quot;&gt;Intin&lt;/a&gt;, a smart home retailer in Førde with a good selection, prices and quick service. That’s why all links point to their site, but the products are available elsewhere.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published on &lt;a href=&quot;https://medium.com/@hauken/en-kort-personlig-innf%C3%B8ring-i-smarthus-28b760beba3&quot;&gt;medium.com/@hauken&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>6 new HTML-elements (I dream of)</title>
   <link href="https://hauken.no/new-html-elements/"/>
   <updated>2017-09-15T00:00:00+00:00</updated>
   <id>https://hauken.no/new-html-elements/</id>
   <content type="html">&lt;p&gt;As a designer one of my jobs is to recognise patterns. Small design- and code-patterns that get used again and again on every project. Every time I get to a new pattern I stop and ponder how to mark it up. Accessibility is important for me, but I often find it unclear what’s best practice for these patterns.&lt;/p&gt;

&lt;p&gt;This is a short list of some elements I wish existed in HTML. By officially becoming HTML elements, these patterns would then be more likely to be marked up for accessibility. They would also be marked up more consistently — and frankly they’d also be easier to talk about, since we’d all use the same names for them.&lt;/p&gt;

&lt;h2 id=&quot;filter&quot;&gt;Filter&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/img/newhtml1.jpg&quot; alt=&quot;select&quot; /&gt;
The first pattern I think of is an element that filters or sort the rest of the content. You’ve probably used this on a webshop sorting from cheapest to most expensive. Or most popular to least popular. Or to filter by brand. Or color. I think you get the gist. Usually these filters are just marked up with a simple div around them. My proposal is something along the lines of the snippet below, just to make it clearer that some content is filtering another block of content. I guess there should also be some kind of indication if it is filtered or not, but I’m not sure how this is best solved.&lt;/p&gt;

&lt;div class=&quot;language-html highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;filter&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;for=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;product-list&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
  However you would like to filter the content. Select, radio-buttons etc.
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/filter&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;ul&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;product-list&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;li&amp;gt;&lt;/span&gt;The content you are filtering&lt;span class=&quot;nt&quot;&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;select&quot;&gt;Select&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/img/newhtml2.jpg&quot; alt=&quot;select&quot; /&gt;
“But we already have the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;select&amp;gt;&lt;/code&gt;-element”. Fair point. I often find myself wishing the Select element was more flexible. Maybe I want to add a flag to a list of countries, or maybe two lines on top of each other like an account-name or an account-number. My proposal here would be that you could actually use spans, images and divs inside the select-element. I guess this could cause headaches for creators of mobile browsers. But they are really smart people. They have created a browser. I guess they will find a way.&lt;/p&gt;

&lt;div class=&quot;language-html highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;select&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;option&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;img&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;norway.svg&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;span&amp;gt;&lt;/span&gt;Norway&lt;span class=&quot;nt&quot;&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
  ...
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/select&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;expanding-table&quot;&gt;Expanding table&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/img/newhtml3.jpg&quot; alt=&quot;Expanding table&quot; /&gt;
Imagine that you have a list of contacts with information about their names, addresses, telephone-numbers, and e-mails. Now place everything in a regular table and try to make it responsive. Yeah? Struggling, right? One solution is one of these fancy responsive tables, but what I want is to hide the columns that don’t fit on the screen and when you click each row it expands and show the rest. My hack for now is to use a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;tbody&amp;gt;&lt;/code&gt; for each row and then place two rows inside that. One is the regular row and one is a row with just one column that is hidden but which appears when you click the first row in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;tbody&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;div class=&quot;language-html highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;&amp;lt;!-- how I am doing it now --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;table&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;tbody&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Visible&lt;span class=&quot;nt&quot;&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Hidden until you click on the row above&lt;span class=&quot;nt&quot;&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/tbody&amp;gt;&lt;/span&gt;
  ...
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;&amp;lt;!-- how expanding tables could work --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;!-- thr = TableHiddenRow --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;table&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;tbody&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;tr&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;for=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;example&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Visible&lt;span class=&quot;nt&quot;&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;thr&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;example&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Hidden until you click on the row above&lt;span class=&quot;nt&quot;&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/thr&amp;gt;&lt;/span&gt;
    ...
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/tbody&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;step-indicator&quot;&gt;Step-indicator&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/img/newhtml4.jpg&quot; alt=&quot;Step indicator&quot; /&gt;
You are applying for a loan, or maybe you are filling out your tax report or answering a questionnaire. Each page has a lot of fields you need to fill out and every time you click ‘Next’ you hope you are done, but you just get more boxes to tick and fields to type in. Wouldn’t it be nice if there were some kind of common navigation that told you how far in the process you were? My proposal for this is something like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;step current=&quot;2&quot; of=&quot;6&quot;&amp;gt;&amp;lt;/step&amp;gt;&lt;/code&gt;. The idea is that you can place what you want inside of it and style it however you like. The nice thing about this feature is that browsers could indicate subtly that you now are in a flow and how far through you are. Screen readers could for example say “step 2 of 6 of car loan“ reading the steps before the title of the page.&lt;/p&gt;

&lt;h2 id=&quot;carousel&quot;&gt;Carousel&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/img/newhtml5.jpg&quot; alt=&quot;Carousel&quot; /&gt;
Ahh. Carousel. Much hated. Much used. Much badly implemented. I guess there are as many people who know html as there are ways to code up a carousel. You have a wrapper, some content, some arrows maybe, and a navigation showing where you are. Imagine using a screenreader to browse a website and suddenly your screenreader stops midway through reading a description and starts on a new one, and a new one. If we just had some consistent markup this could have been avoided. I have no suggestions for how it would work, but it would be useful.&lt;/p&gt;

&lt;h2 id=&quot;expand&quot;&gt;Expand&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/img/newhtml6.jpg&quot; alt=&quot;Expand&quot; /&gt;
One pattern that comes up again and again is expand. An element that when you click it, shows more content. I thought quite a bit about how, in a perfect world, this should be marked up. Then I asked around, and it seems the world is perfect, after all. There actually is an ‘expand’ element being implemented in browsers today. Internet Explorer hasn’t caught up yet, nothing new there, but almost all the newest browser have implemented it:&lt;/p&gt;

&lt;div class=&quot;language-html highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;details&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;Read more&lt;span class=&quot;nt&quot;&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
  Text that is hidden and appears when you click read more.
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/details&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Do you have any ‘HTML elements’ that you lie awake at night, wishing existed?&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://medium.com/netlife/6-new-html-elements-i-dream-of-71ce033397c2&quot;&gt;Originally published on Medium&lt;/a&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>How to store your photos?</title>
   <link href="https://hauken.no/how-to-store-your-photos/"/>
   <updated>2016-01-05T00:00:00+00:00</updated>
   <id>https://hauken.no/how-to-store-your-photos/</id>
   <content type="html">&lt;p&gt;Let’s talk about how you store your photos. Since you probably don’t use film anymore you need to store them somewhere digitally, and probably not just on your computer. You don’t want to risk all your images if your computer crashes or gets stolen.&lt;/p&gt;

&lt;p&gt;I’ve gone through a couple of the cloud-storage solutions out there and compared them with each other.&lt;/p&gt;

&lt;style&gt;
  .table--photostore {
    font-size: 14px;
  }

  .table--photostore td,
  .table--photostore th {
  text-align: center;
  }

  .table--photostore td:first-child {
  text-align: left;
  }

    @media
    only screen and (max-width: 640px){

    	/* Force table to not be like tables anymore */
    	.table--photostore table, .table--photostore thead, .table--photostoretbody, .table--photostore th, .table--photostore td, .table--photostore tr {
        display: block;
    	}

    /* Hide table headers (but not display: none;, for accessibility) */
    .table--photostore	thead tr {
      position: absolute;
      top: -9999px;
      left: -9999px;
    	}

    .table--photostore td {
    		/* Behave  like a &quot;row&quot; */
      border: none;
      border-bottom: 1px solid #eee;
      position: relative;
      padding-left: 50%;
      text-align: left;
    	}

    .table--photostore td:first-child {
    font-weight: bold;
    padding-left: 0;
    text-align: center;
    }

    .table--photostore td:before {
      /* Now like a table header */
      position: absolute;
    		/* Top/left values mimic padding */
      top: 6px;
      left: 6px;
      width: 45%;
      padding-right: 10px;
       white-space: nowrap;
    	}

    	/*
    	Label the data
    	*/
    .table--photostore td:nth-of-type(1):before { content: &quot;&quot;; }
    .table--photostore td:nth-of-type(2):before { content: &quot;Dropbox&quot;; }
    .table--photostore td:nth-of-type(3):before { content: &quot;Google Photos&quot;; }
    .table--photostore td:nth-of-type(4):before { content: &quot;iCloud Photos&quot;; }
    .table--photostore td:nth-of-type(5):before { content: &quot;Amazon Cloud&quot;; }
    .table--photostore td:nth-of-type(6):before { content: &quot;Jottacloud&quot;; }
    }
&lt;/style&gt;

&lt;table class=&quot;table table--photostore&quot;&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;&lt;a href=&quot;https://dropbox.com/&quot;&gt;Dropbox&lt;/a&gt;&lt;/th&gt;
      &lt;th&gt;&lt;a href=&quot;https://www.google.com/photos/about/&quot;&gt;Google Photos&lt;/a&gt;&lt;/th&gt;
      &lt;th&gt;&lt;a href=&quot;http://www.apple.com/lae/icloud/photos/&quot;&gt;iCloud Photos&lt;/a&gt;&lt;/th&gt;
      &lt;th&gt;&lt;a href=&quot;https://www.amazon.com/clouddrive/home&quot;&gt;Amazon Cloud Drive&lt;/a&gt; &lt;div class=&quot;legalese&quot;&gt;Prime photos&lt;/div&gt;&lt;/th&gt;
      &lt;th&gt;&lt;a href=&quot;https://www.jottacloud.com/en/&quot;&gt;Jottacloud&lt;/a&gt;&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Good search functionality&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/no.svg&quot; width=&quot;14&quot; alt=&quot;no&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/no.svg&quot; width=&quot;14&quot; alt=&quot;no&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/no.svg&quot; width=&quot;14&quot; alt=&quot;no&quot; /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Timeline-feature&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Albums&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Collaborate on albums&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/no.svg&quot; width=&quot;14&quot; alt=&quot;no&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/no.svg&quot; width=&quot;14&quot; alt=&quot;no&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td&gt;Collect family photos with different accounts&lt;/td&gt;
    &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src=&quot;/img/no.svg&quot; width=&quot;14&quot; alt=&quot;no&quot; /&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src=&quot;/img/no.svg&quot; width=&quot;14&quot; alt=&quot;no&quot; /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Support RAW-format&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/no.svg&quot; width=&quot;14&quot; alt=&quot;no&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Displays RAW-files as images&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/no.svg&quot; width=&quot;14&quot; alt=&quot;no&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/no.svg&quot; width=&quot;14&quot; alt=&quot;no&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/no.svg&quot; width=&quot;14&quot; alt=&quot;no&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/no.svg&quot; width=&quot;14&quot; alt=&quot;no&quot; /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Works with Lightroom&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/no.svg&quot; width=&quot;14&quot; alt=&quot;no&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/no.svg&quot; width=&quot;14&quot; alt=&quot;no&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Windows app&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Mac app&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;iOS&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Android&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/no.svg&quot; width=&quot;14&quot; alt=&quot;no&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;/img/yes.svg&quot; width=&quot;14&quot; alt=&quot;yes&quot; /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Price up to 1 TB/month&lt;/td&gt;
      &lt;td&gt;€8.25&lt;/td&gt;
      &lt;td&gt;€9.54&lt;/td&gt;
      &lt;td&gt;€9.99 &lt;/td&gt;
      &lt;td&gt;€0.95&lt;/td&gt;
      &lt;td&gt;€9.44&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Price over 1 TB/month&lt;/td&gt;
      &lt;td&gt;€50.00* &lt;br /&gt; &lt;strong&gt;&amp;#8734;&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;€95.38 &lt;br /&gt; &lt;strong&gt;10TB&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;€19.99** &lt;br /&gt; &lt;strong&gt;2TB&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;€0.95 &lt;br /&gt; &lt;strong&gt;&amp;#8734;&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;€9.44 &lt;br /&gt; &lt;strong&gt;&amp;#8734;&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;div class=&quot;legalese&quot;&gt;
  * €10 / user / month minimum of 5 users &lt;br /&gt;
  ** Doesn&apos;t seem like you can buy more than 2TB.
&lt;/div&gt;

&lt;h2 id=&quot;some-findings&quot;&gt;Some findings&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.google.com/photos/about/&quot;&gt;Google Photos&lt;/a&gt; is ridiculously expensive (100 times more than Amazon Cloud) if you have more than 1TB of files&lt;/li&gt;
  &lt;li&gt;No-one can compete with &lt;a href=&quot;https://www.amazon.com/clouddrive/home&quot;&gt;Amazon Cloud&lt;/a&gt; prices&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.apple.com/lae/icloud/photos/&quot;&gt;iCloud&lt;/a&gt; and &lt;a href=&quot;https://www.google.com/photos/about/&quot;&gt;Google Photos&lt;/a&gt; have the best search. &lt;a href=&quot;http://www.apple.com/lae/icloud/photos/&quot;&gt;iCloud&lt;/a&gt; is probably a bit better because it has face-recognition&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.google.com/photos/about/&quot;&gt;Google Photos&lt;/a&gt; has an amazing Assistant that creates albums, animations and adds filters etc. to your images automatically. It’s actually pretty good!&lt;/li&gt;
  &lt;li&gt;The Norwegian &lt;a href=&quot;https://www.jottacloud.com&quot;&gt;Jottacloud&lt;/a&gt; is a good competitor to the rest and the only solution that stores it’s files in Norway&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;my-current-setup&quot;&gt;My current setup&lt;/h2&gt;

&lt;p&gt;I sync my iPhone images with &lt;a href=&quot;http://www.apple.com/lae/icloud/photos/&quot;&gt;iCloud&lt;/a&gt;. I store the RAW-images from my camera on a Synology &lt;a href=&quot;https://en.wikipedia.org/wiki/Network-attached_storage&quot;&gt;NAS&lt;/a&gt; that syncs the images to &lt;a href=&quot;https://www.amazon.com/clouddrive/home&quot;&gt;Amazon Cloud&lt;/a&gt;. This way I don’t have to store them on my computer, but has fast access to them at home. I use &lt;a href=&quot;http://www.adobe.com/products/photoshop-lightroom.html&quot;&gt;Adobe Lightroom&lt;/a&gt; as my image-organizer and &lt;a href=&quot;https://www.amazon.com/clouddrive/home&quot;&gt;Amazon Cloud&lt;/a&gt; more as just file-storage. Since all my pictures are RAW-files I sadly miss out on a lot of the great search-functionality that’s out there.&lt;/p&gt;

&lt;h2 id=&quot;my-dream-setup&quot;&gt;My dream setup&lt;/h2&gt;

&lt;p&gt;If &lt;a href=&quot;https://www.google.com/photos/about/&quot;&gt;Google Photos&lt;/a&gt; supported RAW-files and had a regular filesystem (so I could use it with Lightroom) I would pick that. Mostly because I love the Google Photos assistant.&lt;/p&gt;

&lt;h2 id=&quot;what-should-i-do-if-i-just-have-images-on-my-mobile-phone&quot;&gt;What should I do if I just have images on my mobile phone?&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Do you have an iPhone?&lt;/em&gt; Sync it with &lt;a href=&quot;http://www.apple.com/lae/icloud/photos/&quot;&gt;iCloud&lt;/a&gt;. It works great, is simple to use and works out of the box. It is however a bit more lock-in solution than &lt;a href=&quot;https://www.google.com/photos/about/&quot;&gt;Google Photos&lt;/a&gt; (and doesn’t have the assistant). &lt;br /&gt;
&lt;em&gt;Do you have an Android-device?&lt;/em&gt; Sync it with &lt;a href=&quot;https://www.google.com/photos/about/&quot;&gt;Google Photos&lt;/a&gt;. &lt;br /&gt;
&lt;em&gt;Are you switching between iPhone, Android or similar?&lt;/em&gt; Use &lt;a href=&quot;https://www.google.com/photos/about/&quot;&gt;Google Photos&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;a-last-little-tip&quot;&gt;A last little tip&lt;/h3&gt;

&lt;p&gt;There is a clever app for macOS called &lt;a href=&quot;http://www.expandrive.com&quot;&gt;Expandrive&lt;/a&gt; that can mount a lot of these cloud-solutions as a Network Drive. This way you don’t have to store the files on your computer, but they are accessible in the filesystem. It works great with Amazon Cloud Drive, Google Drive, Dropbox ++.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>15 takeaways from cssconfeu 2015 that you can use today</title>
   <link href="https://hauken.no/takeaways-from-cssconfeu-2015/"/>
   <updated>2015-10-28T00:00:00+00:00</updated>
   <id>https://hauken.no/takeaways-from-cssconfeu-2015/</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;You can use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fill: currentColor&lt;/code&gt; as a property in your svg-icons. That way they’ll inherit the color property of their parent. Especially useful for inline-icons.&lt;/li&gt;
  &lt;li&gt;Blend modes could get really useful for making a consistent image-style across images for clients that don’t have much photography-experience. Much like an instagram-filter. You could for example do like this to get a more washed out dark color on an image.&lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-scss&quot; data-lang=&quot;scss&quot;&gt;  &lt;span class=&quot;nc&quot;&gt;.div-over-img&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;nl&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;#2f3138&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;nl&quot;&gt;background-blend-mode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;lighten&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;ul&gt;
  &lt;li&gt;For performance you can use a black/white image with a colored gradient with blend-mode on top to make a nice effect.&lt;/li&gt;
  &lt;li&gt;By always writing just &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;0&lt;/code&gt; instead of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;0px&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;0em&lt;/code&gt; or similar, Facebooks saves a lot of energy (and I guess money). This is something a preprocessor should do, but a nice reminder non the less. Facebook also detects which browser you are browsing from and sends just the correct browser-prefix for each browser.&lt;/li&gt;
  &lt;li&gt;You can save yourself a lot of trouble by using background-images instead of the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tag in certain situations. The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tag is nice to have as a fallback, but hidden via CSS.&lt;/li&gt;
  &lt;li&gt;You can use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;max-width: max-content;&lt;/code&gt; to specify the size of a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;figure&lt;/code&gt; element where you want the width of the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;figure&lt;/code&gt; to be defined by &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;image-width&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;You can specify language in HTML with the lang-tag and target this with CSS to get quotes-marks for different languages.
Eks: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;HTML lang=&quot;no&quot;&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-scss&quot; data-lang=&quot;scss&quot;&gt;  &lt;span class=&quot;nt&quot;&gt;HTML&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;no&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;q&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;Quotes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&apos;«&apos;&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&apos;»&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;ul&gt;
  &lt;li&gt;@media: print has support for orphans and widows with the syntax &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;orphans: 3;&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;widows:3;&lt;/code&gt;. It is sadly not supported in regular CSS, but I guess it will come. Would be especially handy if we could use this on layout-elements.&lt;/li&gt;
  &lt;li&gt;Flexbox can be used as a kind of element-query. You can use it to break up blocks when there isn’t enough space instead of @media-queries.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Margin(left|right|top|bottom): auto;&lt;/code&gt; is used a lot for calculating distances in flexbox.&lt;/li&gt;
  &lt;li&gt;Flex overwrites &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;width&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;float&lt;/code&gt;, so they can be used as fallbacks.&lt;/li&gt;
  &lt;li&gt;To get an evenly distributed spacing between menu-elements add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;display: inline-block;&lt;/code&gt; to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;li&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;display: flex;&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;justify-content: space-between;&lt;/code&gt; on the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ul&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;You should think of flexbox as an addition. First do as you normally would, then add the extra perfection in form of flexbox.&lt;/li&gt;
  &lt;li&gt;As a fallback for browsers that don’t support flexbox you can use modernizr or wrap you flexbox-code in this:&lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-scss&quot; data-lang=&quot;scss&quot;&gt;  &lt;span class=&quot;k&quot;&gt;@supports&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;flex-wrap&lt;/span&gt;&lt;span class=&quot;nd&quot;&gt;:wrap&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;c1&quot;&gt;// instead of modernizr&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;order&lt;/code&gt; is used to specify the order of the elements when they break to smaller sizes. Default is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;0&lt;/code&gt;, but you could also use minus-values.&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>Tired of minified files when you search through your project?</title>
   <link href="https://hauken.no/exclude-minified-files-in-search/"/>
   <updated>2015-01-15T00:00:00+00:00</updated>
   <id>https://hauken.no/exclude-minified-files-in-search/</id>
   <content type="html">&lt;p&gt;Are you also tired of having your minified versions of CSS and JavaScript showing up when you are searching through your project?&lt;/p&gt;

&lt;p&gt;It turns out there is an easy way to fix this if your are using &lt;a href=&quot;https://atom.io&quot;&gt;Atom&lt;/a&gt;. Go to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Atom =&amp;gt; Config&lt;/code&gt; and add this to your configuration-file:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-cson&quot; data-lang=&quot;cson&quot;&gt;ignoredNames: [
&quot;.git&quot;
&quot;.svn&quot;
&quot;.DS_Store&quot;
&quot;.jpg&quot;
&quot;.png&quot;
&quot;app&quot;
&quot;vendor&quot;
&quot;dist&quot;
&quot;.css&quot;
&quot;min.js&quot;
]&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Are you using &lt;a href=&quot;http://www.sublimetext.com/&quot;&gt;SublimeText&lt;/a&gt;? Go to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Preferences =&amp;gt; Settings – User&lt;/code&gt; and add this to your configuration-file:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-yaml&quot; data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;file_exclude_patterns&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;[&lt;/span&gt;
&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;*-ck.js&quot;&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;*min.js&quot;&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;*.css&quot;&lt;/span&gt;
&lt;span class=&quot;pi&quot;&gt;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;I have added *-ck.js because that’s the default output from &lt;a href=&quot;https://incident57.com/codekit/&quot;&gt;CodeKit&lt;/a&gt; for minified files. I’ve also added all CSS files since I just want to search through my SCSS.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Todos in SCSS</title>
   <link href="https://hauken.no/todos-in-scss/"/>
   <updated>2014-12-20T00:00:00+00:00</updated>
   <id>https://hauken.no/todos-in-scss/</id>
   <content type="html">&lt;p&gt;You can write todos to yourself in your scss by adding this line where you need to remind yourself of something:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-scss&quot; data-lang=&quot;scss&quot;&gt;&lt;span class=&quot;k&quot;&gt;@warn&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Add breakpoint here&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;This way you get a &lt;em&gt;nice&lt;/em&gt; warning each time you compile, listing out all your warnings. You could also use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;@debug&lt;/code&gt; instead of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;@warn&lt;/code&gt;. The difference is basically that you can turn warnings off with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--quiet&lt;/code&gt; command-line option or the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;:quiet&lt;/code&gt; Sass option, and that the warnings look a bit different:&lt;/p&gt;

&lt;figure class=&quot;figure&quot;&gt;
    &lt;img src=&quot;/img/codekit-warning.png&quot; alt=&quot;How warnings and debug-notifications look in CodeKit&quot; /&gt;
    &lt;figcaption&gt;This is how warnings and debug-notifications look in &lt;a href=&quot;https://incident57.com/codekit/&quot;&gt; CodeKit&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
</content>
 </entry>
 
 <entry>
   <title>When to use svg attributes</title>
   <link href="https://hauken.no/svg-attributes/"/>
   <updated>2014-12-18T00:00:00+00:00</updated>
   <id>https://hauken.no/svg-attributes/</id>
   <content type="html">&lt;p&gt;Are you inlining your svg in HTML5? Just use&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;svg&amp;gt;&amp;lt;/svg&amp;gt;&lt;/code&gt; tags without attributes.&lt;/p&gt;

&lt;p&gt;Are you linking the SVG as an image, background-image or importing it another way that causes the User Agent to use an XML parser? Then you need the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xmlns&lt;/code&gt; attributes like so:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;svg&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;version=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;1.1&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xmlns=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://www.w3.org/2000/svg&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xmlns:xlink=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://www.w3.org/1999/xlink&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;`&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

</content>
 </entry>
 
 <entry>
   <title>How to use modifiers on modifiers with BEM?</title>
   <link href="https://hauken.no/modifiers-on-modifiers-in-bem/"/>
   <updated>2014-03-27T00:00:00+00:00</updated>
   <id>https://hauken.no/modifiers-on-modifiers-in-bem/</id>
   <content type="html">&lt;p&gt;For the last few project I’ve had the pleasure of naming my SCSS-files with the BEM methodology. The upside is easier maintainable files and far more informative class-names.&lt;/p&gt;

&lt;p&gt;The BEM syntax is very strict and the naming convention follows this pattern:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-scss&quot; data-lang=&quot;scss&quot;&gt;&lt;span class=&quot;nc&quot;&gt;.block&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.block__element&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.block--modifier&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;If you haven’t used BEM or haven’t got your head around BEM yet I highly recommend &lt;a href=&quot;http://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/&quot;&gt;this article by Harry Roberts&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Usually it’s rather easy to tell if you are making a block, an element or a modifier, but one problem I’ve had again and again is a modifier on a modifier. Take this example:&lt;/p&gt;

&lt;p&gt;We have these two buttons called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.button--primary&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.button--secondary&lt;/code&gt; coded like this:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;#&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;button button--primary&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Main attention&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;#&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;button button--secondary&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Cancel&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;..and looking like this:&lt;/p&gt;

&lt;figure class=&quot;figure&quot;&gt;
    &lt;img src=&quot;/img/modifiers-1.png&quot; alt=&quot;How the buttons looks normally&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;This works great on the regular background, but as you can see we got a problem if we need to wrap the buttons in a red warning-box or similar. We still want the same look, but maybe not green on red?&lt;/p&gt;

&lt;figure class=&quot;figure&quot;&gt;
    &lt;img src=&quot;/img/modifiers-2.png&quot; alt=&quot;How the buttons looks on a red background&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;A few solutions comes to mind:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;.button--secondary--inverted&lt;/strong&gt;
&lt;p&gt;We could add a modifier to &lt;code&gt;.button--secondary.&lt;/code&gt; This just overrides the values that we need to change and we still need to add &lt;code&gt;.button--secondary&lt;/code&gt; to the button. This feels a bit wrong and is very tiresome to write out. The code is however very logic to read and builds nicely on the BEM syntax.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;strong&gt;.button--secondary-inverted&lt;/strong&gt;
&lt;p&gt;We make a seperate modifier which is almost a duplicate of &lt;code&gt;.button--secondary&lt;/code&gt;, just changing the colors that we need to change. This is also very nice to read, but feels very bloated since you are copying almost every style.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;strong&gt;.button--inverted&lt;/strong&gt;
&lt;p&gt;We create a &lt;code&gt;.button--inverted&lt;/code&gt; class that changes &lt;code&gt;.button--primary&lt;/code&gt; and &lt;code&gt;.button--secondary&lt;/code&gt; if they have the &lt;code&gt;.button--inverted&lt;/code&gt; class. Ex:&lt;/p&gt;


&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-scss&quot; data-lang=&quot;scss&quot;&gt;&lt;span class=&quot;nc&quot;&gt;.button--inverted&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;nc&quot;&gt;.button--primary&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;nl&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;black&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;nl&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;white&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;nc&quot;&gt;.button--secondary&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;nl&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;white&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;nl&quot;&gt;border-color&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;white&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;


&lt;p&gt;This solution is a bit inconsistent with the BEM naming since we are using nesting. However the HTML is very nice to read and easy to remember. It also means that we can easily toggle the &lt;code&gt;.button--inverted&lt;/code&gt; class with javascript without having to worry about if this class later on is going to be a &lt;code&gt;.button--primary&lt;/code&gt; or a &lt;code&gt;.button--secondary&lt;/code&gt; – the invertion will still work.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;strong&gt;.box--notification .button--secondary&lt;/strong&gt;
&lt;p&gt;We could also nest the styling and say if &lt;code&gt;.button--secondary&lt;/code&gt; is inside &lt;code&gt;.box--notification&lt;/code&gt; we always want it to be white. This is probably the most dirty way to do it, but why not when you never want a green button inside a red box? The downside here is reusability and the location of the code. The big upside of BEM is the structure and that we from the name know the location of every class. If we suddenly start to nest classes we miss control.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I’m still not sure what is the best solution here. For now I’ve landed on alternative 3 mainly because the simplicity and readability. I’m eager to hear your thoughts and ideas. Give me a word on &lt;a href=&quot;http://twitter.com/mhauken&quot;&gt;twitter&lt;/a&gt; or on &lt;a href=&quot;mailto:marius.hauken@gmail.com&quot;&gt;mail&lt;/a&gt; about your thoughts.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Smarter toggling for good design and great performance</title>
   <link href="https://hauken.no/smarter-toggling/"/>
   <updated>2014-02-06T00:00:00+00:00</updated>
   <id>https://hauken.no/smarter-toggling/</id>
   <content type="html">&lt;p&gt;&lt;em&gt;This is a repost of a post I’ve written for our &lt;a href=&quot;http://iallenkelhet.no/2014/02/07/smarter-toggling-for-good-design-and-great-performance/&quot;&gt;company-blog, iAllenkelhet.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Good design isn’t just how it looks, but also how it works. This is why code is an important part of our design process at Netlife Research. By coding we can control other important design aspects of our website like speed, animation and how the design “feels”. We can also test how the site behaves on different devices and browsers.&lt;/p&gt;

&lt;h3&gt;Toggling&lt;/h3&gt;
&lt;p&gt;A much used effective design pattern is toggling. Toggling lets us hide parts of the content behind a button to make the content more easily scannable. The main problem with toggling is performance. Smaller devices have the most to gain from toggling, yet ironically, they also are the least capable of rendering it. We usually have two different methods for toggling of content:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Using jQuery&apos;s slideToggle&lt;/strong&gt;. This is usually the best solution. The content slides in gradually and pushes the elements beneath it down. jQuery basically increases the height of the expanding element multiple times each second. On a fast desktop computer it looks like a nice animation, but on smartphones and tablets it can often become choppy and sluggish.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Turning a hide class on and off&lt;/strong&gt;. We can achieve the same result by adding or removing a class with the &lt;code&gt;display:none&lt;/code&gt; property. This works well on any device, but is very sudden. The element doesn’t expand: it’s either visible or hidden. This can at times feel confusing for the user, especially if you are expanding a lot of content.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Performance of transitions&lt;/h3&gt;
&lt;p&gt;Neither of these solutions are optimal in my opinion. Even though I’m not a developer, I understand that performance is an important part of the overall user experience. I therefore looked further into how we could have a toggle-solution that animates and works well on most mobile devices. With CSS3 we have the opportunity to animate and use transitions in CSS. We can use transitions to animate the height (or max-height) of the expanded element. But it would still perform badly since we don’t make use of the devices GPU (Graphic Processing Unit) for rendering the animation and moving the content underneath. The only &lt;a title=&quot;High performance animations&quot; href=&quot;http://www.html5rocks.com/en/tutorials/speed/high-performance-animations/&quot;&gt;CSS properties that invoke the GPU&lt;/a&gt; to make smooth animations on mobile are &lt;em&gt;transform&lt;/em&gt; and &lt;em&gt;opacity.&lt;/em&gt; The optimal solution would be to move the content away with the &lt;em&gt;transform&lt;/em&gt; property. The problem with &lt;em&gt;transform&lt;/em&gt; is that it just moves the content from it’s original position: it still takes up the same space as it did before, leaving us stuck with a big empty area. The same is true for all the GPU invoking techniques.&lt;/p&gt;

&lt;p&gt;[quote]The more content the browser has to rewrite, the slower it renders.
[/quote]&lt;/p&gt;

&lt;h3&gt;Rewriting the content&lt;/h3&gt;
&lt;p&gt;Another important aspect of making smooth animations is that the more content the browser has to rewrite, the slower it renders. To avoid affecting other elements it’s therefore recommended that animated elements are &lt;code&gt;position:absolute;&lt;/code&gt; or &lt;code&gt;position:fixed;&lt;/code&gt;. After trying out a variety of different approaches I ended up fading the content in or out via opacity, and clever use of positioning combined with &lt;code&gt;display:none;&lt;/code&gt; when the animation is finished. We still manage to push all the content underneath the element down, but with only one rewrite compared to a regular slideToggle tens of times each second. This performs nicely on mobile where the content fades in, and because it’s under the fold you won’t notice that the content is getting pushed down.&lt;/p&gt;

&lt;iframe width=&quot;640&quot; height=&quot;360&quot; src=&quot;//www.youtube.com/embed/i_L3iGHdYP0?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;em&gt;Example showing how a regular slideToggle works compared to the cssToggle-plugin&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;cssToggle&lt;/h3&gt;
&lt;p&gt;I’ve made my approach available as a jQuery plugin called cssToggle. In short the plugin checks if the element it’s called on is &lt;code&gt;display:none;&lt;/code&gt; or not, then shows or hides the element via CSS opacity. When the animation is finished it sets the element to &lt;code&gt;display:none;&lt;/code&gt; or &lt;code&gt;display:block;&lt;/code&gt; based on it’s previous state. cssToggle also takes multiple options like position, speed, easing and firing functions after the animation is finished. This way you can easily tailor it to suit your needs. The plugin is about 1kb minified, and gracefully degrades on browsers that don’t support animations and just hides or shows the content with no fading. &lt;a title=&quot;cssToggle on GitHub&quot; href=&quot;https://github.com/mhauken/cssToggle&quot;&gt;Grab the plugin on gitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;PS: If you would like a regular &lt;code&gt;slideToggle();&lt;/code&gt; on devices that can handle it, you could also use the excellent tool &lt;a title=&quot;Modernizr: the feature detection library for HTML5/CSS3&quot; href=&quot;http://modernizr.com/&quot;&gt;Modernizr&lt;/a&gt; and replace all your slideToggles with cssToggle when you detect touch-devices. While you’re at it I would also enable &lt;a title=&quot;Polyfill to remove click delays on browsers with touch UIs&quot; href=&quot;https://github.com/ftlabs/fastclick&quot;&gt;fastclick&lt;/a&gt; on these elements, to get rid of the 300ms wait before a click is registered.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>How Skitch can help you become a better designer</title>
   <link href="https://hauken.no/how-skitch-can-help-you-become-a-better-designer/"/>
   <updated>2014-02-04T00:00:00+00:00</updated>
   <id>https://hauken.no/how-skitch-can-help-you-become-a-better-designer/</id>
   <content type="html">&lt;p&gt;When you are designing you get to a point where it suddenly says stop. You don’t know what to change or how to make it better. This is the moment I fire up &lt;a href=&quot;http://evernote.com/skitch/&quot;&gt;Skitch&lt;/a&gt; and take a screenshot of what I’ve just made. I then start to annotate and draw on that. There it is. My magic trick. It might sound stupid. It might sound pointless. But the fact is that by doing this I take a step back from what I’ve done and evaluate it in a new way. Often I see things I’ve never seen before in the design. Sometimes it takes seconds to fill the canvas with notes. Other times it’s more a struggle to find anything. This is when you are getting close to something good, or when you probably need to take a break.&lt;/p&gt;

&lt;figure class=&quot;figure figure--one-whole&quot;&gt;&lt;img src=&quot;/img/skitch-as-a-design-tool.jpg&quot; alt=&quot;An example of the Skitch design technique&quot; /&gt;&lt;/figure&gt;

&lt;p&gt;This might be a simple design-equivalent to &lt;a href=&quot;http://en.wikipedia.org/wiki/Rubber_duck_debugging&quot;&gt;Rubber duck debugging&lt;/a&gt;; to explain what you’ve done and your choices, and then hitting upon the solution in the process of explaining the problem. You’ve probably noticed it before when you’re talking to colleagues or writing a post on Basecamp about your design-choices. Suddenly you see your design in a different light and need to sketch out some new ideas. If you have a printer nearby printing it out and writing on that works the same way. Firing up Skitch and taking a screenshot facilitates that kind of thinking for me. Maybe you should give it a try as well?&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>A push from an astronaut</title>
   <link href="https://hauken.no/a-push-from-an-astronaut/"/>
   <updated>2014-01-21T00:00:00+00:00</updated>
   <id>https://hauken.no/a-push-from-an-astronaut/</id>
   <content type="html">&lt;p&gt;During my christmas vacation I read &lt;a href=&quot;http://en.wikipedia.org/wiki/Chris_Hadfield&quot;&gt;Chris Hadfields&lt;/a&gt; excellent book “&lt;a href=&quot;http://www.amazon.com/Astronauts-Guide-Life-Earth-ebook/dp/B00EF23RMM/&quot;&gt;An Astronaut’s Guide to Life on Earth&lt;/a&gt;
”, and he talked about an interesting term that he called minus one, zero and plus one.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Over the years, I’ve realized that in any new situation, whether it involves an elevator or a rocket ship, you will almost certainly be viewed in one of three ways. As a minus one: actively harmful, someone who creates problems. Or as a zero: your impact is neutral and doesn’t top the balance one way or the other. Or you’ll be seen as a plus one: someone who actively adds value. […] I think about how to aim to be a zero and to try to contribute in small ways without creating disruptions.
&lt;b class=&quot;source&quot;&gt;Chris Hadfield&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;These terms stuck a bit with me, and i thought quite a lot about that during my vacation. How can I stretch to reach a plus one instead of a zero on the web? (I sure hope that I’m not a minus one). Well, you can’t be a plus one without contributing anything. I’ve been very grateful all the times I’ve been stuck and suddenly found the solution to my problem because someone bothered to post their solution to the web. Hopefully I can pay it forward by posting some of my solutions and thoughts, and this way contribute in small ways. One year after Chris Coyier &lt;a href=&quot;https://the-pastry-box-project.net/chris-coyier/2013-january-2&quot;&gt;sparked the idea&lt;/a&gt; I just needed a little push from an astronaut to start…&lt;/p&gt;
</content>
 </entry>
 

</feed>
