#+SETUPFILE: ../../../template/level-2.org
#+TITLE: Identity and Society
#+DATE: <2021-05-23 Sun 13:37>
#+AUTHOR: vaeringjar
#+EMAIL: vaeringjar@land
#+DESCRIPTION: Project ideas for self-sovereign identity and others on how politicians need to know more about engineering.
#+KEYWORDS: identity


* TLS and the identity layer

This came up in my mine again this week. If I had a zillion bucks, I
could do something like Francisco Corella's idea to extend TLS. The
elegance of this solution comes from the extension of the transport
layer to facilitate an identity layer. The main issue I see here is
that several implementations of TLS would need to adopt it. But with a
zillion bucks, I would not have to worry about how much time. The task
seems feasible. Some use cases or possible applications remind me of
the open banking topic.


** Tasks

- define the set of secrets, eg the IDs
- backup the IDs
- synchronize the IDs among devices
- decide whether to create IDs based on the device and whether to sync
  them as well
- choose which existing tools to reuse, as well as the frameworks and
  languages


*** medical clearance

- IDs for medical staff
- IDs for general users
- process for medical staff to sign general users to prove or indicate
  some kind of clearance


* Society

Another topic came up this week several times among topics of
conversation I either listened or participated in. Right now most of
human societies have no real long term plan, or even if they do, they
still use deception or politics instead of engineering.

Take the state of the pandemic in the United States. At this moment,
the goal is to get as many folks vaccinated by Independence Day. While
the US has some great velocity for the vaccinations, it still seems up
in the air whether or not the population will reach herd immunity. So
in the less desirable case, a mingling population will end up
prolonging the pandemic. Also, note that Canada lags behind in
vaccinations. Even with the border closed to recreational traffic,
it's a huge border, where in some places one could just cross the
street, let along walk down the sidewalk. And this only represents two
countries in just one of the continents.

In the last year we've had other things that have called out the
failed planning and responsibility of governments. And by we I mean
Earthlings, I'm not just talking about American'ts. Some of if we've
done to ourselves or each other. I don't want to see what happens when
something bigger happens to us rather than because of us, such as The
Big One happens off the coast of Cascadia. We need to disarm, rebuild,
repair, and get ready.

Put a good engineer in charge, someone with a stem background, not a
reality game show host and not a hollywouldn't celebrity.


* Developer brain dump for the week


** LibreOffice spell checker

I ran into a weirdness this week where my spell checker died in
LibreOffice. Because of how I learned to read as a kid, ever since
finishing my undergrad I have used non en-US whenever possible. So I
had to:

#+BEGIN_SRC bash
apt install hunspell-en-gb
#+END_SRC


** C development

I went down a rabbit hole this week looking at a C package manager
called clib. It reminds me of poetry/cargo/npm and has a much easier
learning curve than guix. At the moment, it only has so many packages
that it officially supports, but just the fact it exists and has such
a huge set of string libraries (always my first metric) makes me
happy. It would be really cool if every project in awesome-c could be
packaged for both guix and clib... that actually seems like a
worthwhile effort.

Anyway, just to throw it out there, I typically look for these in a
package manager in terms of support and existing packages:

- the package manager (step 0!)
- env/virtual env/container (alt step 0)
- tests
- fixer
- linter
- debugger
- per language extensible features

Or in prose: I basically want configurability, a way to mess with the
OS as little as possible, a way to write tests for the code, and a way
to both fix and lint the code. Debuggers come next, but if one writes
the code well enough, the tests can usually engineer away the need for
a debugger. And then finally, specific to C, a higher level string
library.


* See also

- [[https://pomcor.com/2011/10/16/deployment-and-usability-of-cryptographic-credentials/][Francisco Corella's idea to extend TLS]]
- [[https://github.com/clibs/clib][clibs/clib]]
