Erik I

My public writing. You can reach me at

Filed under #100DaysToOffload, #security and #auth

When I was younger I downloaded extensions without thinking much. Mostly extensions for Firefox.

As I got older and interested in security I've become a lot more careful. I know I'm not completely safe against malware, but then again I don't wear a hazmat suit at work either.

I've found some reasonable heuristics that have worked well for me and I should probably write a bit more about that some other time – possibly along with some ideas for truly paranoid organizations, but today I want to write about some wishes I have:

  • for all apps and extensions and whatnot: if we could somehow make sure they cannot get data off my computer that would go a long way. Note however that solving this problem in a truly general way will be hard.

  • for web applications: someone should sit down and think really hard about the granularity of the permissions they expose. For example, last I checked with a certain SAAS company my ssh keys worked for all projects I have access to while I want them to work on per project basis. Same goes for the way I had to allow a certain build system access to access all my projects to use it with one of them. Or how a small crowdfunding solution for software wants read access to more or less everything just to allow me to log in to send money to another project.

And a day has passed since last I wrote. But it doesn't matter according to the rules.

Filed under #100DaysToOffload, #habits and #learning

I've written about this before.

When learning something, it can be very useful to put deliberate effort into repeating the winning moves. Depending on your background this might be obvious or not.

Probably less known is that this works in other areas of life as well, not just in sports.

For example I train my fingers for the shortcuts of my IDE and when necessary I even rehearse my getting-out-of-bed-without-waking-up-everyone-routine.

It is also possible to train “moves” that prevent oneself from getting distracted: an incredibly useful one for me is training my fingers to stop myself from mindless browsing: I once noticed that I had a habit of opening news sites too often when stuck. Remembering to stop is hard once it has become a habit.

Instead I find it easier to learn a new pattern. Say you want to stop mindless browsing of during work hours. What I do once I notice this pattern is to deliberately repeat the first steps of my bad habit, only I choose my own steps at the end, in the case of I'd do this:

  • ctrl – l to got to the address bar (others would maybe click the address bar instead).
  • start typing exampl as I would do in my bad habit.
  • instead of typing out the address I then hit escape to leave the address bar alone

Filed under #life #ideasForFutureBlogposts

Yesterday Tom Hagen was arrested and helt on suspicion of murder or complicity to murder. Police say they've been investigating this possibility secretly since last summer. I guess we all knew this was a possibility, and many had a hard time not saying it out aloud. I guess I should give kudos to media for being careful. It surely would have looked bad if they had written it out early and it turned out to be wrong.

Some criticize the police for not realizing this immediately. Personally I think they considered this from day one, only not as the most probable explanation until last summer and not publicly until now. After all police is 3 years higher education around here and it is popular so I guess the ones who get in are brighter than the average Norwegian.

Around here the sun is shining outside. I took some photos but won't post them, I don't have time.

Also I forgot to close the lid on my micro greenhouse tonight so I really really hope the tomato plants survived as I see hoarfrost on the grass. BTW: some nice images

Some ideas for future writing:

  • An UX challenge. My bank recently absolutely surprised (in a good way) by replacing the old kind of intuitive transfer-money-between-my-account-in-twelve-simple-but-oh-so-annoying-steps with a 5 step process. Edit 2020-05-06: I created the sketches the other day and today I posted it, here it is UX challenge: transfer money between accounts

  • Photos from the dawn.

In fact I've already sketched up the old flow in excalidraw and I'm excited to post it but it is already 0633 and I need to start working.

If I forget, you can try to bug me at

Filed under #observations and #softwaredevelopment

Drew DeVault writes :

Been working through some spaghetti code tonight. Has been helpful to remember not to despair over how tangled the code is. Just treat it like you'd untangle a bundle of wires, slowly and deliberately solve small problems until the big problem is better. My code is in much better shape two hours later 😃

I once found a small fishing longline, approx 180m I'd guess. I guess it was probably last used by my late grandfather or some of my uncles before they moved out. It obviously hadn't been used in a few years and it was really tangled. Think of a really tangled wire, then add about 100 wires (snoods) to that, each with a hook on the end.

Untangling such a thing can be really frustrating. Or it can be relaxing. It all depends on the state of mind you are in when you do it which – in many cases – depends on the reasons you have for doing it.

I find the same holds true for code. I can enjoy untangling code when I have time for it and when there is a good reason for it.

Filed under #100DaysToOffload

The tag #100DaysToOffload started showing up a few days ago and I didn't care. My life is really stressful enough as it is without putting more arbitrary limitations, deadlines or anything into it. I got a family, a job, a house, a car and I try to be active in the church so I figured really don't want more stress on top of that. For the record: I chose that life and I don't want anyting to get in the way of it.

Then I read the rules. The rules are similar enough to the The Cult of Done Manifesto that I figured it might actually take away some stress.

So here I am. This is the first part in this series. I don't expect this to bring me a lot of readers or anything, just to get more stuff written down for the benefit of my future self, future historians and people searching for random words or constellations of on the Internet. Maybe it will also trigger someone else to start writing longform instead of just tweeting, tooting, snapping or whatever.

So here are the rulesguidelines as they were written at the time when I decided this could be a good idea:


I don’t like to term ‘rules’ so let’s go with ‘guidelines’ instead. As I don’t think this whole thing shouldn’t be too rigid. Here’s the guidelines as I see them:

  • This needs to be done on a personal blog, not a corporate blog. If you don’t have a personal blog, you can sign up for a free one at
  • There is no specific start or end date. Your 100 days can start or end whenever you want them to.
  • Write a new post every day for 100 days. Ideally, these would be consecutive days, but if they’re not, don’t worry about it. Just. Write.
  • There are no limits to what you can post about – write about whatever interests you.
  • There are no limits to how short or long a post needs to be. Search engine optimization, what’s that? Forget about all that jargon. Just. Write.
  • Once you have published an article, don’t forget to post a link on your social media with the hashtag #100DaysToOffload.
  • If you're writing on, be sure to include #100DaysToOffload in your post. Their system support hashtags, so it will allow others to find your posts.
  • Get your friends involved!

  • copied from on 2020-04-29.

Of these I know I will take liberties with regards to getting my friends involved.

So, here we go I guess .

Time used: approximately 45 minutes.

Filed under #noteToSelf #life and productivity

Yesterday was a unusually productive day.

I was up at about 4 o'clock. I managed to edit Perfect UX is impossible into a more readable and possibly also more interesting state I think.

I also managed to capture two interesting ux issues, one which – in my opinion – is really suboptimal but works and can -again IMO- be fixed easily, and another that used to kind of work even if it wasn't perfect but now seems to have been broken completely by someone who were probably trying to fix it.

My wife work in health care in these interesting times so I drove her to work since I knew I would need the car. Looked after the kids until shops opened, particularly the auto parts store, then went grocery shopping. Found a nice trick to keep a toddler from touching everything in the store: just make sure they have to carry something with both hands.

Ideally kids should stay at home I guess but it is not exactly like it would be better to get their grandmother to babysit them as long as the coronavirus is making the rounds in its current form and it is also not like we have completely stopped eating. Luckily the oldest kids were happy to stay at home, playing in the garden.

I also remembered to pick up new brake disks and brake pads for my car. They set me back about 2300NOK I think but compared to getting them replaced by a mechanic it is s still half the price. Also I thought it would be an interesting experience. As I am writing this I had to look up and I think I found the same discs and similarly good brake pads for 700NOK less online but I kind of needed the parts this weekend so I cannot have regrets. I will probably order the parts for the front brakes online though.

Later on the day I went to biltema, picked up a brake piston tool kit, a set of huge (for someone who works in IT) Torx bits, brake calliper grease and also some really cheap white tarpaulin to cover the part of the driveway were I planned to work.

Before leaving home I had been smart enough to put the risgrøt in the slow cooker so it was close to perfect when I got home. For those who are unacquainted with cooking risgrøt it is particularly prone to burn when cooked in a traditional manner. A watched pot never boils and a pot with milk and rice is no exception, quite the contrary. I still cheated though: lately for some reason ready made risgrøt has been so cheap -and tasty- that there is no reason to buy 4 liters of milk, watch it and stir it carefully for 30 minutes only to get it stuck in the bottom after looking away for a second ;–)

I got started on the right hand side brake at about 1630 and finished it around 3 or so hours later with help from YouTube, my brother (via voice and also image sharing on Telegram) and my brother-in-law who popped in to help.

We had a short break and finished the left hand side about an hour later. Knowing what everything is supposed to feel like made most of that difference I think. In the YouTube videos the callipers slide nicely off once the bolts have been removed. I had to pry them off. On the right hand side I also had to call my brother since I couldn't know this. There might very well a deeper lesson here as, but the one on the surface is really valuable as well I think.

I took a short test drive which was more or less completely uneventful, fixed one last thing and tidied up the driveway, watched a bit of tv with my wife before going to bed around twelve.

I was up at 4 o'clock today as well. Writing down all this has set me back about 2.5 hours although but I don't mind as I've enjoyed it and also enjoyed listening to a great podcast, a really great audio book recording of Letter to the Hebrews. As I'm writing this I'm listening to the end of the final . While I have probably read it all before and listened to parts of it I've never read or listened to the complete letter in one sitting as far as I can remember.

I have a really hard time sitting quietly listening for long stretches but it pairs nicely with less mentally demanding activities such as driving or doing chores and while blogging isn't the ideal activity it kind of works too.

Filed under #ux and #brokenUx

Say you live in a country where English is not the local language and you found an interesting article on a local website. Maybe you want to share it with an English-speaking friend of you, and you have reason to believe there should exist an English post or article somewhere on the web containing the same results.

So you open your search engine and type the words into it. As luck would have it these words can also be valid in your local language so the search engine in its wisdom provides you with local results as shown below:

Searching for something to find an English version of it.

No problem you think: There is a setting where I can choose what language you want your results in.

So you go to the menu where you can change it and you try to change it and you find two choices, all languages or your local language:

Try to change the search language.

OK, fine, I probably just have to set the region first, that almost makes sense (no, it doesn't, buy hey):

Try to change the region.

There are two options and the one that is already selected is the closest I can get.

This used to work, but sometime, somewhere, someone has got paid to create ux sketches to break this and didn't step up to ask what they were thinking, a developer has developed it without saying “are you crazy?” and QA has let it slip.

Or maybe, more likely I am afraid, the story is that they all did it enthusiastically to “simplify the interface”.

Well done: you have now “simplified” a part of the interface that nobody except people like me even think about, only you haven't simplified it or even made it slightly harder to use, you have broken it.

All in an effort to simplify things I guess.

Good UX is hard. Making things simpler is hard. Part of what makes it hard is that you are supposed to keep the useful properties while simpifying it.

Next up: I have created a much simpler and cheaper car. It looks really slick, it is made of cardboard, has no weels, and there is a hole where the driver seat used to be so you can walk around with your car.

Filed under #ux and #chekhovsGun

Shown above is a sketch of what I saw in a popular app for online meetings.

In the picture there are 4 participants visible, and in the bottom left there is a small portrait with the text “+7” overlaid, indicating there are 7 more participants in the meeting.

Now, quickly tell me, how can I get a list of all the participants?

The obvious answer to me was to try clicking the indicator that told me there are more people in the meeting. In fact it is so obvious that it must be that button (which turns out not to be a button, just an indicator) that I must have tried multiple times already.

That is simple, obvious and wrong.

The correct answer is to tap the screen once, then find the overlay menu, then click the ellipsis symbol in the overlay menu to see the overflow menu, and then you can see the participant list.

Chekhov's gun is a dramatic principle that states that

that states that every element in a story must be necessary, and irrelevant elements should be removed. Elements should not appear to make “false promises” by never coming into play.

This holds true for ui elements as well: If a button doesn't do anything but is only for decoration it probably shouldn't be a button. In this case however it would probably be better to fix the button so it works, I have missed it a number of times already.

I've previously written that Perfect UX is impossible, and I stand by those words, but that doesn't mean we cannot do a whole lot better than we do today.

BTW: Excalidraw is awesome as far as I can see, it is also free/open source software so you can self host it if you want.

Edit 2020-05-06: Add reference to Chekhov's gun

Filed under #ChromeIsTheNewIE and #web

So I posted a comment over at HN mentioning this quote. And this time I took the time to write down a short explanation since the quote tends to be misunderstood to mean that Chrome is like Internet Explorer (from now on referred to as IE) was in 2009: most people were using it even though it was technically inferior.

Since I have a few minutes more to spend and I want to write more, here is a more detailed explanation:

What we saw in 2009 was only the latest stage of something that had been going on for a while and I will distill it down to 4 stages:

  1. Dominance: Backed by profits from Microsofts cash cows back then – Windows and Office – and also what seems to me like some very ugly tactics from other teams at Microsoft, IE became the dominant browser of the early 2000s.

  2. Monoculture: Pragmatic web developers and project managers realized that they could reach 75% or more of the market without even caring about testing in any other browser except IE. This was possible since smartphones as we know them today didn't exist and Linux and Macs both didn't seem to cross the 2% market share on desktops until late 2009, see Usage share of desktop operating systems on Wikipedia for some more details.

  3. Lost interest: Pragmatic business people at Microsoft realized that they had the marked locked down and stopped development of IE. While Firefox and Opera offered better browsers, it didn't matter for Microsoft initially since everyone were still forced to have an instance of IE available because a number of sites including many banks and official websites didn't work reliably in anything except IE.

  4. Disruption: While Opera, Safari and Firefox were gaining users, the last of them possibly to a large degree driven by the rise in popularity of Macs and Ubuntu although some of us were using it on Windows as well, the table wasn't really flipped until the iPhone launched and both devs and management realized this would become huge.

If you enjoyed this post you might also enjoy my post Are you making a real web application? Or just a Chrome application? were I interview a strawman of the lazy dev who didn't care to test in other browsers except IEChrome ;–)

Filed under #health #sleep and #observations

I'm working from home and I'm noticing the effects more sleep and less stress does to my mind. Normally I fall asleep immediately. Yesterday I went to bed around midnight and didn't feel tired at all. So I had to dig out my favourite falling asleep trick, probably learned from HN: I count backwards from 1000.

I was asleep before nine-hundred-and-eighty.

I guess I should have learned the lesson now, just because I don't feel tired doesn't mean I shouldn't sleep. I won't do anything useful anyway, not even read a book but I can easily wastenan hour playing Polytopia or something.

The second observation is that just because I sleep more doesn't mean that it is easier to get up in the morning: I normally get up right before 0400 in the morning.

One would think that going to bed less tired would make it easier to get up in the morning. At least for me that isn't true at all. Oversleeping is actually a lot easier now and I'll probably have to repeat my getting-out-of-bed drill.

Enter your email to subscribe to updates.