Security > Usabilty

Recently there have been a number of changes to systems in the name of Security.

Security is a good thing, but so is being able to use a system.
A system is perfectly secure if no-one can use it. However it scores zero on the usability scales.

Consider a useful balance.

For example some systems insist on emailing a code to confirm logins. This can be useful.
The login link expires after a finite time, also a good idea.

When the link expires before the email is delivered or is invalidated when the next is requested will lead to loops where it is not possible to access a system.

Storybook is Amazing

I have recently added Storybook to one of the UIs that I am working on.

Storybook is an envitonment for providing a place to display UI components in a catalog. Typically this is used for development of a component library.

It is also useful slightly higher up the stack. Having entire forms or parts of forms testable in isolation is a big win. This allows you to show a form in all its possible states, even if some of them would require exotic conditions.

This can greatly free up development time while ensuring that the component can be refactored.

Having the components testable in isolation makes testing cross browser much easier. You can stand up Storybook locally without any backend services.

Given that I mostly work on an application with a React frontend with a GraphQL backend this reduces the effort on isolating changes to the frontend. So far I have not managed to use the fake GraphQL services, but by splitting the components into GraphQL layers and a pure function allows the pure function to be tested.

Magic The Gathering

I am just getting back into this game.
The last time I had played was 1997 so the modern game is very different.

The new restricted formats are an interesting twist.

Pauper – 60 or more cards, only if they have ever been common.

Commander – 1 Commander and 99 cards. No duplicated cards except for basic lands. There are a few exclusions.

The mana burn rule has been removed so you don’t need to have sinks for using up all of the spare mana you have floating around.

Mulligans help avoid the no land/all land hands.

The second step of the Mtg Online tutorial opponent could have been using my first Pauper deck, with Raging Goblins and Goblin Grenade!

I started to build my own commander decks from my collection. Only when checking the counts of the cards I found that the following two were banned:

  • Balance
  • Limited Resources

    I can see how devastating Limited Resources could be in multiplayer commander! Only having 10 lands across all of the players could mess up most decks.

Eyre’s First Law

If a utility is useful for testing it will eventually make its way into production.

I have seen this pattern many times.

You add a piece of code (possibly to help set up a test) that sets some state.
This then gets extracted from the test to a shared library.
It then gets added to the backoffice tool for development purposes.
This is then required for production.