<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://rkd.zgib.net/</id>
  <title>Blog - Posts by Richard Darst</title>
  <updated>2026-09-15T06:53:50.073343+00:00</updated>
  <link href="https://rkd.zgib.net/"/>
  <link href="https://rkd.zgib.net/blog/author/richard-darst/atom.xml" rel="self"/>
  <generator uri="https://ablog.readthedocs.io/" version="0.11.13">ABlog</generator>
  <entry>
    <id>https://rkd.zgib.net/blog/2026/the-unaccountability-machine/</id>
    <title>Book review: The Unaccountability Machine</title>
    <updated>2026-09-13T00:00:00+00:00</updated>
    <author>
      <name>Richard Darst</name>
    </author>
    <content type="html">&lt;section id="book-review-the-unaccountability-machine"&gt;

&lt;p&gt;I’ve been interested in why organizations work (or seem to not work,
despite everyone in them being good people).  Another book cited the
book “The Unaccountability machine”
(&lt;a class="reference external" href="https://en.wikipedia.org/wiki/The_Unaccountability_Machine"&gt;wikipedia&lt;/a&gt;,
&lt;a class="reference external" href="https://helmet.finna.fi/Record/helmet.2605064?sid=5513401888"&gt;HelMet
libraries&lt;/a&gt;)
as being related to this topic, so I checked it out.  In the end, the
book did provide some thoughts on this, mainly through the lens of
complex webs of decision making and accountability sinks.  The first
half was most relevant to me; the second half ventured into economics
and society (which was still interesting, but not my main focus).&lt;/p&gt;
&lt;section id="summary"&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;In modern times, the word “cybernetics” makes one think of
human/machine combinations or maybe computer technology in general,
but the original definition (1940s and onward) was about decision
making, feedback, and control of systems (machines, organizations,
economies, etc.).  It’s important to keep this in mind, otherwise the
topic and review below can easily get confused with unrelated
technology matters.  Cybernetics and the book are about &lt;em&gt;information
flows&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Systems don’t have motivations.  They are made up of people who have
motivations and outside influences.  How can a system made of good
people have bad outcomes?  How can it be avoided?  These are the kinds
of questions I wanted to answer.&lt;/p&gt;
&lt;p&gt;There are several main lessons I got from the book:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The number of states a system can be in vs the amount possibly
gradations of control input.&lt;/strong&gt;  This is known as
“&lt;a class="reference external" href="https://en.wikipedia.org/wiki/Variety_(cybernetics)"&gt;variety&lt;/a&gt;”.
An example from my university:&lt;/p&gt;
&lt;p&gt;The university defines there are four categories of data (levels of
confidentiality), and that should dictate how the data is handled.
However, a university is a complex thing with very different
{operations, teaching, research} divisions, and four categories to
control data (&lt;em&gt;input variety&lt;/em&gt;) just isn’t enough to express the wide
&lt;em&gt;variety&lt;/em&gt; of actual data (and there isn’t enough variety of other
processes or exceptions).  This leads to people doing whatever they
want (ignoring the rules since they don’t seem applicable), or
never-ending discussions about how the system needs to be tweaked to
make it work.&lt;/p&gt;
&lt;p&gt;The idea that the internal complexity of a system has to match the
external complexity it faces is the &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Variety_(cybernetics)#Law_of_requisite_variety"&gt;Law of Requisite
Complexity&lt;/a&gt;,
and once I realized this, I started seeing almost every
dysfunctional thing of our university being caused by its violation.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cyberneticists have broken down organizations into five systems
needed for their control&lt;/strong&gt; (&lt;a class="reference external" href="https://en.wikipedia.org/wiki/Viable_system_model"&gt;Viable system
model&lt;/a&gt;)
(&lt;strong&gt;operations, regulation, optimization or integration,
intelligence, and philosophy or identity&lt;/strong&gt;, see more in Chapter 5’s
summary below).  My own team is too small to have these as defined
roles, but thinking of them helps me realize some things we need to
make sure get done.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Any complex organization isn’t one mind, or many individuals, but
many different parts (people) communicating in a complex network.&lt;/strong&gt;
This can easily allow decisions to be made and propagated elsewhere
in a way that doesn’t quite make sense, with little feedback or
accountability to the place the decisions were made.  This makes the
accountability sinks (which was apparently defined here, though I
would have thought it was older).&lt;/p&gt;
&lt;p&gt;A complex network of nodes sending signals to each other, sometimes
having a result that is undesired?  Sounds like “artificial
intelligence” these days, with hallucinations and wrong answers,
doesn’t it?  Just like with “AI”, there needs to be a feedback
system to keep an eye on things.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The second half of the book is focused on economics and society
(because the author is somewhat of an economist) and less relevant to
my work, but I found that it was quite useful to me anyway.  Overall,
I found some good points that I could apply to my own non-economics
life.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="overall-thoughts"&gt;
&lt;h2&gt;Overall thoughts&lt;/h2&gt;
&lt;p&gt;I liked the book and was happy to read something that combined
something in my comfort zone (science-ish description of cybernetics)
with something outside it (economics).  I’ve learned some buzzwords
that I can use in my job to push for changes, though I predict it’s an
uphill battle to get anything actually done.&lt;/p&gt;
&lt;p&gt;As my team gets more complex, we need to encapsulate different parts
and have their internal variety and management, while having a more
limited variety that reaches higher levels for the systematic decision
making.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="chapter-by-chapter-analysis"&gt;
&lt;h2&gt;Chapter-by-chapter analysis&lt;/h2&gt;
&lt;p&gt;Below is a summary of each chapter.  I state what the book says (with
some of my opinions or take-away messages mixed in), but I am not
qualified to judge if the book is correct or not.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="part-1-the-nature-of-the-crisis"&gt;
&lt;h2&gt;Part 1: The nature of the crisis&lt;/h2&gt;
&lt;/section&gt;
&lt;section id="introduction"&gt;
&lt;h2&gt;(0) Introduction&lt;/h2&gt;
&lt;p&gt;The industrialization of society makes larger and more complex
organizations, and they need to be controlled.  The theory of these
control structures is “cybernetics” (the original definition).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I liked this intro, because it related to my thing about
industrialization (of finance, control, etc) being the more relevant
problem in our society than just capitalism that most people complain
about.  The idea is that when things get too big, they somehow makes
more than their share of problems.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="something-s-up"&gt;
&lt;h2&gt;(1) Something’s up&lt;/h2&gt;
&lt;p&gt;Organizations sometimes do things that just make no sense, for
example, the banking crisis of 2008.  No person wanted this, yet
somehow it happened.  There were even people who could predict it, but
no one would listen to them because the system was on autopilot and
not taking feedback.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Accountability sinks&lt;/strong&gt; are ways that decisions can be made such that
no individual person is accountable.  A decision may come out of the
organization, but all the individuals of the organization can say “I
don’t agree with this but it’s not me who decided” - so where does it
come from?  Who takes accountability?  These are quite common when you
start looking for them, when everyone can pass off the responsibility
for a decision/rule to someone else (often laundering it through
various policies or laws).&lt;/p&gt;
&lt;p&gt;I will choose to not mention one example the book gives involving
animals, since it’s just too tragic.  Another example given is
academic publishing.  Professional publishers have managed to insert
themselves into the academic system and extract huge amounts of money,
and most people agree there are serious problems with relying almost
exclusively on citations for academic career purposes.  Yet, still, it
stays, because it’s now part of the system and the politics of making
any other decision about careers would be too much.&lt;/p&gt;
&lt;p&gt;There are two types of decision-makers, kings (who are humans and to
whom decisions can be appealed), and priests (who speak the word of
god and thus you can’t appeal to them).  Too often, a decision may be
made by a “king” but gets conveyed by “priests”, and there is no way
to send feedback that something is wrong.  This can cause unrest.&lt;/p&gt;
&lt;p&gt;All the above isn’t just an accident.  It’s a trade-off, discretion
(to do the right thing) vs following the rules.  What’s the balance?
This is the next chapter.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Overall, this chapter said what I wanted to hear about
organizations, bad choices, and and unaccountability and left me
wanting an analysis.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="stafford-beer"&gt;
&lt;h2&gt;(2) Stafford Beer&lt;/h2&gt;
&lt;p&gt;This chapter is about the historical context.&lt;/p&gt;
&lt;p&gt;Stafford Beer was one of the founders of management cybernetics - as
discussed above, how decisions get made.  Beer looked at systems as
composed of black boxes (something with defined inputs and outputs,
but the internals can’t be examined): different components, and each
component had some behavior.  You couldn’t/didn’t look into the boxes.
Of course, you could recursively look into them if you wanted, or
package multiple black boxes into another black box.  Still, at some
level, one has to draw black boxes around some parts of the system and
analyze the parts outside of that.&lt;/p&gt;
&lt;p&gt;Management cyberneticists looked at systems as black boxes and that
interact with each other, to discover various theories of control.
Thinking in terms of black boxes gives the saying “&lt;a class="reference external" href="https://en.wikipedia.org/wiki/The_purpose_of_a_system_is_what_it_does"&gt;the purpose of a
system is what it
does&lt;/a&gt;”.
This is important to keep in mind so that one doesn’t blame the
individuals for what the system does - you have to look at the
connections and control structures.&lt;/p&gt;
&lt;p&gt;In the end, systems/organizations are controlled by meetings between
the different levels and components.  This often happens by resource
bargains between different components, so that each part can focus on
its internals with a defined interface to the outside.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I understand the concept of the black boxes, it took some time to
fully internalize the recursive nature of them.  I’m still not quite
clear where one should decide to draw the black boxes (what level and
what size), but I guess that’s part of the art of the field.  You
should probably draw them at the places that are most useful for your
current problem.  In the end, this question doesn’t matter too much
for my understanding.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="aliens-among-us"&gt;
&lt;h2&gt;(3) Aliens among us&lt;/h2&gt;
&lt;p&gt;So, a system is made up of black boxes once you go deep enough.
These are all connected and sending signals to each other.  It becomes
a… neural network?  There are clear metaphors to “artificial
intelligence” here, where the system takes on a mind of its own, but
each individual part can’t have accountability.  This also relates to
the &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Chinese_room"&gt;Chinese room (translation) thought
experiment&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This applies to all kinds of things, from social media algorithms to
corporate management.  Yet, we know the organization itself is not
sentient.  So, the organization itself isn’t accountable, but neither
are the independent parts (because they are just playing their role).&lt;/p&gt;
&lt;p&gt;The more connections a system has, the harder it is to understand.
However hard you look, you will probably miss something.&lt;/p&gt;
&lt;p&gt;If you are interacting with one of these systems, you can be given the
policies/documents in response to a query about why a decision was
made a certain way.  But that never explains why &lt;em&gt;the policies&lt;/em&gt; are
made a certain way.  The accountability for them has been sunk into
the network itself, and if people only try to hold individuals
accountable, everyone can escape accountability.&lt;/p&gt;
&lt;p&gt;So, in the end, you see the same thing over and over again.  Comments
about an organization that say they admire all the people inside, but
despise the overall organization.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This part of organizations being a computing network really made
sense to me and started to build my understanding of why it is so hard
to change broken policies (and certainly matches with my “most people
I know are well-intentioned and good at their jobs”).  When we need
something to change, we can’t just blame individuals.  We should
definitely start thinking of organizations as their connections, not
only as their individuals.  It doesn’t give a solution yet, though.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="intermission-computing-ponds-and-rabbit-hole"&gt;
&lt;h2&gt;Intermission: Computing ponds and rabbit hole&lt;/h2&gt;
&lt;p&gt;This was about the idea of a pond of decaying matter sending signals
to each network and becoming sentient or otherwise a network of
intelligence.  Or other ways of making systems of “dumb” objects
sending signals to each other to form a larger whole that appears
capable of purposeful action.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;As a person in computing, this all flowed quite naturally and makes
sense in the concept of neural nets/artificial intelligence.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="part-2-pathologies-of-the-system"&gt;
&lt;h2&gt;Part 2: Pathologies of the system&lt;/h2&gt;
&lt;/section&gt;
&lt;section id="how-to-psychoanalyze-a-non-human-intelligence"&gt;
&lt;h2&gt;(4) How to psychoanalyze a non-human intelligence&lt;/h2&gt;
&lt;p&gt;This starts off with an explanation of why “cybernetics” these days
refers to computers: because people got too good at building
transistors and computing devices.  It took all the attention from the
decision making part of the field.&lt;/p&gt;
&lt;p&gt;This chapter talks about how systems can be controlled and analyzed.
The main consideration is what kind of information controls it, and
this gets to the concept of variety of information.
&lt;a class="reference external" href="https://en.wikipedia.org/wiki/Variety_(cybernetics)"&gt;Variety&lt;/a&gt;, in my
own words, somehow relates to the number of states a system can have,
or its inherent complexity.  It can also refer to the number of
possible outside stimuli or control settings a system has.  Variety of
internal states (or complexity) needs to somehow be aligned with
variety of control.&lt;/p&gt;
&lt;p&gt;Example: Let’s take a room’s thermostat.  It has one input, the
temperature, and has one output, amount of heat applied.  The variety
of control matches the variety of internal states of the system.  If
we wanted to control temperature &lt;em&gt;and&lt;/em&gt; humidity, but only have heating
control, it is quite possible that we can’t react to all possible
states of the room and bring it to the desired state.&lt;/p&gt;
&lt;p&gt;When you have a complex system consisting of lots of black boxes,
there are many different states you can be in.  What happens if you
can’t measure enough information about the state, or have enough
control knobs to affect it?  You have a problem.  The &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Variety_(cybernetics)#Law_of_requisite_variety"&gt;Law of
Requisite
Variety&lt;/a&gt;
says you need as much control variety as you have variety of internal
states.&lt;/p&gt;
&lt;p&gt;This is a general argument and note that it doesn’t require knowing
exactly what the measurements and controls are.  You can reason that a
system has lots of internal variety but not that many ways of control,
and know you have a problem - even without knowing exactly what the
states or controls are.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This chapter resonated with me and I like the general theory of
variety.  It provides me a powerful tool to say “you are
over-simplifying the policies you are making” - though I imagine it
will be hard to get the right people to understand this, if they don’t
want to understand what is wrong with their policy from the policy
itself.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="cybernetics-without-diagrams"&gt;
&lt;h2&gt;(5) Cybernetics without diagrams&lt;/h2&gt;
&lt;p&gt;This tries to get into the deep theory of cybernetics without being
too technical.  It says this is hard, and perhaps it’s not so
interesting.  However, one part was quite interesting:&lt;/p&gt;
&lt;p&gt;A system that maintains its state needs different parts to be a
&lt;a class="reference external" href="https://en.wikipedia.org/wiki/Viable_system_model"&gt;viable system&lt;/a&gt;
that is capable of maintaining control over itself.  There are
different standard functions needed to stay in homeostasis with its
environment.  The cyberneticists thought that such a system
needs to have:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;System 1: operations.&lt;/strong&gt; What the system actually tries to do for
the real world.  It does the main thing (say, run a computing
cluster), but left alone it could go out of control and over- or
under-build what is needed or not coordinate maintenance and use.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;System 2: regulatory.&lt;/strong&gt; This is the basic regulation of operations
to make sure that operations stays synced.  In our computer cluster
example, it may coordinate hardware upgrades, software
installations, and maintenance to make sure the system works.  This
makes the basic resource bargains for how stuff works.  This is
about preventing clashes and managing conflicts (things everyone
thinks are necessary).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;System 3: optimization or integration.&lt;/strong&gt; This directs different
components towards a main purpose and allocates things between
different System 1 operations.  This is about the overall mission
(compared to System 2).  This is the first real “management” level
and what some people complain about being unnecessary.  In our
cluster example, this might include allocating resources from
hardware upgrades to support and vice versa depending on overall
needs of the users.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Systems 1 and 2 absorb most of the variety of customers, but sometimes
customers will need something beyond what they can provide.  In this
case, System 3 needs to step in and adjust the mission by escalating
to the level above.  Too much System 3 involvement in System 1 (rules
with no exceptions) can result in breakdown, since System 3 can’t
process &lt;em&gt;all&lt;/em&gt; the variety coming in to System 1.  This is
micromanagement and takes time away from what System 3 should be
doing.  The other system, of leaving everything to System 1, can
result in no planning.  The book makes a point that there can be an
informal System 3 by System 1 managers; this is OK as long as they
make sure it gets done - this is the value of informal meetings.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;System 4: intelligence.&lt;/strong&gt;  If System 3 manages what is happening
now, System 4 is planning for the future by looking outwards to the
world (not just the current state but predicting what is coming).
In our cluster example, this might be looking at emerging
technologies that change the way clusters are run.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;System 5: philosophy or identity.&lt;/strong&gt; In some sense this balances
changes identified by System 4 with the need to keep unit running
from System 3 (you can’t change too fast or you lose your identity,
and then maybe you cease to exist).  It balances the broad
organizational units.  System 5 decides what the system does, and
thus its purpose.  In our cluster example, this might involve
thinking of the role of clusters as cloud computing and AI become
more common.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These systems are recursive throughout the organization.  The whole
organization has its five systems, then each sub-unit will have its
five systems, and so on all the way down.&lt;/p&gt;
&lt;p&gt;It doesn’t say these have to be different people or units, just that
they need to happen.  I do sort of wonder how rigorous the
justification is for separating all of them (the book didn’t go into
detail about how they were decided).&lt;/p&gt;
&lt;p&gt;These systems also have their own amount of variety of signals going
in and out.  They variety in control signals to each system to be
matched to the complexity of the task they are performing.&lt;/p&gt;
&lt;p&gt;If they don’t have enough variety to handle an emergency, they need to
be able to “declare an emergency” and call a higher level in order to
bring the resources needed to solve a problem.  The book uses the
example of a &lt;strong&gt;red handle&lt;/strong&gt; in a train that means you have to do an
emergency stop and notify the control center.  All schedules are now
messed up and you need a higher level of the organization to fix the
problem.  (This doesn’t just mean a higher System number; it means the
higher recursive “viable system” level with all its boxes).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;While I wouldn’t go building these into my teams, it is a good
checklist I would use to make sure our team is handling everything
that needs to be done.  It also provides some good abstraction levels
for dividing up tasks, once a team gets large enough.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="intermission-decerebrate-cats"&gt;
&lt;h2&gt;Intermission: decerebrate cats&lt;/h2&gt;
&lt;p&gt;This tells a metaphor about how you can cut the link in a brain
between the cerebellum and the rest of the brain.  The living being
still seems alive (walking, eating, grooming itself, etc.).  But by
any measure, it doesn’t think or have purposeful actions anymore.  It
can keep living and functioning as long as the environment is what it
is used to, but once the environment changes, it can’t adapt.  This
was apparently part of real experiments done.&lt;/p&gt;
&lt;p&gt;Stafford Beer talked about decerebrate organizations which similarly
have lost the ability to adjust to the world.  It will keep surviving
until a shock comes up, and then goes into crisis.  If it can’t
re-establish the higher-level Systems, it will simply collapse.  It
warns that if someone sees their organization decerebrate-ing itself,
start updating your CV and looking for new jobs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The book gives the example of universities as typical decerebrate
organizations, and this is when I started getting sad.  It’s exactly
what I have been seeing with some parts of my university, in
particular about challenges challenges with legal compliance processes
or data classification.  The world is more complex than it was before
and it’s trying to apply old processes to new things, but no one can
take a step back and say “wait, we need to adjust how we see ourselves
to fit the current state of the world.”  It might be more about
feedback rather than the System 5, but still I got feelings from
reading this&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="part-3-the-blind-spots"&gt;
&lt;h2&gt;Part 3: The blind spots&lt;/h2&gt;
&lt;p&gt;Now, the book makes a clear shift and starts connecting to economics
and society.  This was interesting to me, but not the main thing I
intending to learn about.  You could say this part attempts to explain
how “late-stage capitalism” works (and has become such a buzzword for
everything that’s wrong in the world).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If you don’t care about the society-wide aspects, capitalism, and
economics, you can scan the rest of the summary.  Even the book’s
conclusion focuses on economics and society and was not exactly
relevant to my work.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="economics-and-how-it-got-that-way"&gt;
&lt;h2&gt;(6) Economics and how it got that way&lt;/h2&gt;
&lt;p&gt;First, what is an economist?  The book says that economics is the
science of optimizing scarce resources (and since everything is scarce,
economists get to play the rulers of society by making models to say
the best way to run everything in the world).  It does this by trying
to express everything in terms of money.&lt;/p&gt;
&lt;p&gt;Like many fields, economists have “physics-envy” and have tried to make
models and predictions.  However, economists can often forget that
these are just models and many assumptions have gone into them,
and the assumptions can pre-determine the conclusions.  You can also
forget that the model is just a model, and the real world can do
things outside what you predict (this is especially the case since
humans are complex) - it calls this the Ricardian Vice.&lt;/p&gt;
&lt;p&gt;This is obvious to physicists but worth making clear: just because
something is proven in your nice model with the complexity stripped
out doesn’t mean it is true in the real world.&lt;/p&gt;
&lt;p&gt;One of the dominant models is that an economy is so complex it’s
impossible for any normal control methods to handle it - you can’t
bring enough variety to control all the components.  Thus, the
assumption is that a free market composed of many different parts
making their own contracts and looking after their own needs serves a
computing fabric that can work to control the economy.&lt;/p&gt;
&lt;p&gt;Everything can combine into a “the market knows best” (if you make the
right assumptions), with the market serving as a computing fabric for
making complex decisions - and is the seed of unaccountability.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;“Market as computing fabric” matches with mainstream western
thought, and I don’t really object to that.  Later the book explains
what is wrong beyond “capitalism bad”.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="if-you-re-so-rich-why-aren-t-you-smart"&gt;
&lt;h2&gt;(7) If you’re so rich, why aren’t you smart?&lt;/h2&gt;
&lt;p&gt;This starts by talking about how economics is a theoretical and not
practical science.  Economics is not accounting and most economists
couldn’t deal with real businesses, and the book claims this is
because economists want to be seen as their own special profession
above accountants, managers, and similar.&lt;/p&gt;
&lt;p&gt;Accounts and accounting are the basic ways to measure a business, and
they serve two purposes.  One is to control the business, another is
to tell outsiders how the business is doing.  Accounting is difficult
in any big enough business, and while there are standard practices,
there are some choices made.  The same set of numbers aren’t
necessarily good for all purposes (mandatory reporting for public
companies vs internal bookkeeping for how it’s going).&lt;/p&gt;
&lt;p&gt;Financial reporting also by its nature reduces variety, and makes
fewer signals than there are internal states of the company.&lt;/p&gt;
&lt;p&gt;So, what signals does one use to manage a company?  It’s easy to hire
management consultants and they work to optimize the short-term public
financial results at the cost of long-term operational value.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;We need to be careful that our reports match with what we need to be
measuring.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="intermission-meanwhile-in-chile"&gt;
&lt;h2&gt;Intermission: Meanwhile, in Chile&lt;/h2&gt;
&lt;p&gt;Stafford Beer went to Chile during its socialist era with the idea of
applying management cybernetics to a command economy that was
nationalizing industries (and thus had to manage them).  They had
computers and were trying to get enough information all in one place
(the futuristic-looking “operations room”) to manage it.  While it
sounded like an interesting idea, applying the law of requisite
variety makes one think even this wasn’t enough.&lt;/p&gt;
&lt;p&gt;In the end, the US supported a coup (as usual) before it could go far
enough to get results (or not).&lt;/p&gt;
&lt;/section&gt;
&lt;section id="part-4-what-happens-next"&gt;
&lt;h2&gt;Part 4: What happens next?&lt;/h2&gt;
&lt;p&gt;Now we get fully into the economics and politics of the modern world.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="enter-friedman"&gt;
&lt;h2&gt;(8) Enter Friedman&lt;/h2&gt;
&lt;p&gt;This section first taught me about Milton Friedman, a name I had heard
often but didn’t know the story of.  Intentionally or not, he
popularized the “neoliberalism” chain of thought which, more or less,
said that a corporation can’t know what is best for society, so the
best it can do is try to maximize its profits and let the market (the
“computing fabric”) work out the rest.&lt;/p&gt;
&lt;p&gt;There’s a distinction between the managerial class (those working to
manage the companies, they may care about it) and the investing class
(or capitalist class) which only cares about profits.  The basic idea
of neoliberalism was that, if the management class tries to do
something for the benefit of society, it’s spending someone else’s
money and lacks accountability (taking on the role of a government).&lt;/p&gt;
&lt;p&gt;This whole “maximizing shareholder value” concept (combined with
“legal personhood” and “limited liability”) are purely artificial.
It’s simply a choice that could have been made another way, or not at
all.  And we’ll see this invented philosophy causes many downstream
effects.&lt;/p&gt;
&lt;p&gt;The “leveraged buyout” is when private equity buys a company that is
under-performing to replace the management or otherwise force it to be
more efficient.  This was seen as the ultimate threat for any managers
that didn’t sufficiently try to maximize their companies’ profits, to
“keep companies in line”, so to say.  Once bought-out, the companies
were given their own debts and forced to cut back anything else in
order to repay those debts, on threat of going bankrupt.  All
together, this replaces any signals of “care about society” with
“ignore everything else and maximize your profits in the short term”,
which in the end leads to everything falling apart long-term.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This chapter is the thesis of the book, what is wrong with
“late-stage capitalism” and all that.  In summary, the financial
industry is so focused on optimizing profits (one signal) that
everything else is falling apart.  This matches what I have seen.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="the-morbid-symptoms"&gt;
&lt;h2&gt;(9) The morbid symptoms&lt;/h2&gt;
&lt;p&gt;This starts off summarizing the book (this is my paraphrasing):&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;The basic problem is that systems/companies need to be able to
re-organize themselves as the world changes.  However, due to the
financialization of everything, all the other signals needed for
society/companies to react to the world can’t be processed,
because “make profits” and “pay off debt” override it.  This leads
to society’s polycrisis.&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;Stafford Beer’s philosophy was to pay attention to information
crossing boundaries.  As companies get sliced up, managers’ ranks
thinned, and functions outsourced, you lose the capacity to convey
this information.&lt;/p&gt;
&lt;p&gt;Some theorists had, about 100 years ago, thought the function of the
investing class was to take risks and provide what the working class
needed, while insulating the working class from the ups and downs of
the business cycle.  Now that is reversed, where people think the
system is the investing class works to maximize its profits, using the
working class in the process.  The rise of things like populism is the
“red handle” that things are not going OK.&lt;/p&gt;
&lt;p&gt;The chapter ends by saying this is the nature of the current polycrisis.
The system is growing and getting more complex.  It has been assumed
that the free market will take care of things, but the signals of the
computing fabric has been subverted and now all it can care about is
short-term profit maximization.  All the middle layers of
communication are slowly being gotten rid of because it’s unnecessary
bloat, but really they were the ones carrying the messages.  No one
protests “red tape (of bureaucracy) holds us together”.&lt;/p&gt;
&lt;p&gt;**I agreed with the what is here, but then again I don’t have the
knowledge to know if I should agree or not.  Still, roughly makes
sense from what else I have read about problems with society.**qq&lt;/p&gt;
&lt;/section&gt;
&lt;section id="what-is-to-be-done"&gt;
&lt;h2&gt;(10) What is to be done?&lt;/h2&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;“If you can hear the problem, you can hear the solution.”&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;As for the problem of private equity and leveraged buy-outs, one
proposed solution is that limited liability should be moderated.
Limited liability serves as an accountability sink to whoever buys a
company.  The author thinks this might be enough.&lt;/p&gt;
&lt;p&gt;Broadly, what the author thinks is needed is more viability and less
maximization of single goals.  Right now, financialization has made
one goal take full precedence over everything else, and the very
limited variety of these signals means so much gets left out of the
decision-making process, at least at the highest levels.&lt;/p&gt;
&lt;p&gt;Going back to the artificial intelligence metaphor, we have made an
artificial intelligence, told it to maximize profit, and it’s going
wild.  Every system set up as a maximizer needs another system
watching over it.&lt;/p&gt;
&lt;p&gt;The book hypothesizes that things like social media provides more ways
for more signals to be sent, but how will all these be managed?  Can
they be?  Will AI (another maximizing system) be assigned to do it?
It’s just another system that can be blamed.  I read this as idle
thoughts rather than a fleshed-out proposal (and personally I would be
quite hesitant to go down this path, but it’s an interesting thought).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Overall I didn’t quite think there was a great conclusion for the
book, but as the first quote says, maybe that’s not the point.  This
is hard, and if we can see the problem, maybe we can work towards it.
I’m hesitant to for any solution that involves social media sending
signals, but it is an interesting thought to come back to.  Anyway, I
don’t need a conclusion or recipe for what to do about our economy,
I’m happy with the lessons I learned along the way.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://rkd.zgib.net/blog/2026/the-unaccountability-machine/"/>
    <summary>I’ve been interested in why organizations work (or seem to not work,
despite everyone in them being good people).  Another book cited the
book “The Unaccountability machine”
(wikipedia,
HelMet
libraries)
as being related to this topic, so I checked it out.  In the end, the
book did provide some thoughts on this, mainly through the lens of
complex webs of decision making and accountability sinks.  The first
half was most relevant to me; the second half ventured into economics
and society (which was still interesting, but not my main focus).</summary>
    <published>2026-09-13T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://rkd.zgib.net/blog/2026/chat-news-channels/</id>
    <title>News channels in chat</title>
    <updated>2026-07-31T00:00:00+00:00</updated>
    <author>
      <name>Richard Darst</name>
    </author>
    <content type="html">&lt;section id="news-channels-in-chat"&gt;

&lt;p&gt;I hope we had a low threshold for sharing anything in chat, as long as
the sharer puts a bit of effort into a summary.  In the CodeRefinery
chat, we’ve thought about how to build more interaction in our chat
(even though, compared to some orgs, we think we have quite a bit.
Perhaps that’s the &lt;a class="reference internal" href="../../2026/zulip-guide/"&gt;&lt;span class="doc"&gt;power of Zulip&lt;/span&gt;&lt;/a&gt;).  My proposal is &lt;strong&gt;“news
channels”&lt;/strong&gt;.  The goal is like a blog or news aggregator, with the
similar goal of educating ourselves and getting to know each other
better.&lt;/p&gt;
&lt;p&gt;I like seeing a wide variety of links, but time is limited.  Not
everyone can read every link posted, so I hope that people put their
human brain into a summary (suitable for the readers) that is
educational even if read alone.  Not clickbait, and not “read the link
for more”.&lt;/p&gt;
&lt;p&gt;The basic idea is that we people want to blog more, but that’s a lot
of work.  It’s lower threshold to declare some chat channels to be
“blog-like” and encourage even off-topic things to go there.
Hopefully it leads to more blogging, too.&lt;/p&gt;
&lt;p&gt;For example, I propose the CodeRefinery chat declare these as news
channels:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;#general&lt;/span&gt;&lt;/code&gt;: News channel for anything remotely related to scientific
computing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;#random&lt;/span&gt;&lt;/code&gt;: News channel for anything else.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;“News channel” does not mean that channel is for only news posts, or
for things that could be blog post.  It means “for things you might
want to tell others about”.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This post is my personal opinion, but will be updated with the
practices of the organizations I work with (CodeRefinery, Aalto
Scientific Computing).  You are welcome to copy and modify this.  This
should not be used to tell people they are doing something wrong, but
only to encourage new interaction.  You don’t have to do what is here.&lt;/em&gt;&lt;/p&gt;
&lt;section id="what-is-clickbait"&gt;
&lt;h2&gt;What is clickbait?&lt;/h2&gt;
&lt;p&gt;Philosophy: Clickbait (according to wikipedia) “is designed to attract
attention and to entice users to follow (“click”) that link”
&lt;span class="inote" role="button" aria-expanded="false" aria-label="Inline note: note - click to expand" onclick="this.classList.toggle('expanded'); this.setAttribute('aria-expanded', this.classList.contains('expanded'));"&gt;[note&lt;span class="inote-content"&gt;: normal clickbait is often misleading or sensationalized, and that’s not a problem in our chats.&lt;/span&gt;]&lt;/span&gt;.  My main consideration is you
need to click through to know the actual story.&lt;/p&gt;
&lt;p&gt;To me, anti-clickbait means putting the main message as early as
possible so that one can stop reading as early as they want and still
get something:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Read the first sentence, get a 1-sentence understanding of the
topic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Read the first paragraph, get a 1-paragraph understanding of the
topic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Read the first section, get a 1-section understanding of the topic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Apply this recursively at every level.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This requires more thought in writing, but is a service for the
reader.  I think we should strive more towards this &lt;span class="inote" role="button" aria-expanded="false" aria-label="Inline note: note - click to expand" onclick="this.classList.toggle('expanded'); this.setAttribute('aria-expanded', this.classList.contains('expanded'));"&gt;[note&lt;span class="inote-content"&gt;: Does this post meet these criteria? I usually try to, but I don’t always manage.&lt;/span&gt;]&lt;/span&gt;.  It’s related to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Bottom-line&lt;/span&gt; &lt;span class="pre"&gt;Up&lt;/span&gt; &lt;span class="pre"&gt;Front&lt;/span&gt; &lt;span class="pre"&gt;communication&lt;/span&gt; &lt;span class="pre"&gt;&amp;lt;https://en.wikipedia.org/wiki/BLUF_(communication)&amp;gt;&lt;/span&gt;&lt;/code&gt;__, from which I
got some of these ideas.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="basics"&gt;
&lt;h2&gt;Basics&lt;/h2&gt;
&lt;p&gt;This is my proposal:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;News channels are non-work channels, and you don’t have to be
subscribed.  Don’t expect all your colleagues to be subscribed.  If
you have an announcement for a team, make sure you mention it in a
work channel, too.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can post anything within the scope, for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Link to other content you have found interesting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Link to you blog posts or things you have created.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pictures you have taken.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Original ideas that might become blog posts later.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Things you have learned (doesn’t have to have a link), watched,
etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A question or thought you have (including something you might blog
about later).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Put some human effort into describing it (see below).  Please no
bare or low-context links.  Yes, people can read things themselves,
but there’s too much.  Our networks helps filter summaries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There’s not a limit (yet) on the amount you can post, but in
general, the more you post, the more human effort you should put
into describing things.  People can independently subscribe to
wherever you get material from if they want everything from there.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Follow-up discussion on any content is encouraged, but not required.
Don’t get discouraged if no one reacts.  It might mean your
description is good enough.  Do react to interesting things to
encourage more of that type of thing.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You are especially encouraged to post anything new you create, no
matter how small it is.  This is how we learn of each other’s skills.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="how-to"&gt;
&lt;h2&gt;How-to&lt;/h2&gt;
&lt;p&gt;Further thoughts, adapt as is appropriate:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Create a new topic for each new thing.  Don’t worry about making too
many topics, but you can always reply with more stuff for relevant
old topics if it’s relevant.  Topics are the way someone quickly
filters through it, and remember they will “Mark all as read” once
they have browsed enough.  &lt;strong&gt;People may look through their Zulipchat
inbox at topics and decide what to click or not, so make it easy for
someone to know if it’s relevant to their interests.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can use a detailed topic description, for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;“TIL: uv for python package installation”&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“OpenAI has acquired Astral (the company behind uv)”&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“venv-apptainer: new script for containing virtual environments”&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Include a description&lt;/strong&gt; - not just a bare link or wall of text.
&lt;strong&gt;You should put some human effort into the description, even if
only one sentence.  If you can do this, we will be happy with
whatever it is.&lt;/strong&gt;  The description should be enough for someone to
learn some bare basics if they don’t read further (and know if they
should read more).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;At minimum, an initial description that stands alone and provides
some education.  &lt;strong&gt;Not just clickbait, but a real description.&lt;/strong&gt;  Can
be anywhere from a sentence or two, to a paragraph.  People have a
limited time and attention, so write for that.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You are welcome to go as far in depth as you would like after
that… long info is OK.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Especially consider giving your own thoughts on the matter, if
it’s by someone else.  Do you agree with it?  Disagree?  Have
further ideas?  These kind of reviews make links far more
interesting, because many people don’t have the full context to
understand things.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Even if you wrote something elsewhere and you are linking to it,
give a summary in the chat.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A reminder: Do not use this blog post to tell people they are doing
something wrong.  Don’t think the barrier is too high.  Don’t assume
this post is the best practices.  We want you to do your best, and
read what others do, and everyone to continually improve.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="the-benefits"&gt;
&lt;h2&gt;The benefits?&lt;/h2&gt;
&lt;p&gt;Does this seem like a lot of work?  Well, yeah, but it’s the trade-off
to engagement.  In the age of generated content, we want human effort.
&lt;strong&gt;Look at it this way: thinking about, writing, and reading these
summaries is good general communication practice with people outside
your field.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://rkd.zgib.net/blog/2026/chat-news-channels/"/>
    <summary>I hope we had a low threshold for sharing anything in chat, as long as
the sharer puts a bit of effort into a summary.  In the CodeRefinery
chat, we’ve thought about how to build more interaction in our chat
(even though, compared to some orgs, we think we have quite a bit.
Perhaps that’s the power of Zulip).  My proposal is “news
channels”.  The goal is like a blog or news aggregator, with the
similar goal of educating ourselves and getting to know each other
better.</summary>
    <published>2026-07-31T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://rkd.zgib.net/blog/2026/wiki-vs-code-rules/</id>
    <title>“Code” vs “wiki” (vs “book”) rules for project contributions</title>
    <updated>2026-07-20T00:00:00+00:00</updated>
    <author>
      <name>Richard Darst</name>
    </author>
    <content type="html">&lt;section id="code-vs-wiki-vs-book-rules-for-project-contributions"&gt;

&lt;p&gt;I have sometimes said the phrases “wiki rules”. or “cade rules” about
contributing to a project.  What does this mean?  Roughly, “code
rules” is being careful and making sure everything is correct before
finalizing a contribution.  Wiki rules is just doing something and
letting it get improved later.  Both ways have their place, and I
think sometimes we can get so obsessed with being “right” that we
forget to get stuff done.  I’ll discuss below.&lt;/p&gt;
&lt;section id="code-rules"&gt;
&lt;h2&gt;Code rules&lt;/h2&gt;
&lt;p&gt;This comes from contributing to code projects, where there are often
standards for a review before merging anything, exhaustive tests to
make sure that everything new is correct, and there should be no
possibility of regression.  The basic philosophy is that an error
anywhere can break things everywhere, so try to prevent errors from
making it into the project.&lt;/p&gt;
&lt;p&gt;For stable, mature projects , this makes sense.  It can extend to
non-code things, too, when the expectation is “do nothing wrong”: say,
you are organizing a big event and you need to have a consistent
message to attendees for everything you publish.&lt;/p&gt;
&lt;p&gt;Code rules requires enough time to review and fix things up.  It could
be done without contribution guidelines, but then you spend more time
reviewing and it can have a demotivation problem, if the review is
perceived as too harsh.  With extensive contribution guidelines, the
barrier to contribution becomes higher.&lt;/p&gt;
&lt;p&gt;Examples of this include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;The general idea that one should make a pull request, get it
reviewed, and if it’s OK, then merge it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CodeRefinery would sometimes pedantically teach that all code should
be reviewed, even if you are the main person of a project - since it
improves quality and teaches others what is going on.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Look at most mature project’s contribution guidelines and they are
usually somewhat specific and include reviews.  At a big scale, this
is needed.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://numpy.org/doc/stable/dev/index.html"&gt;Numpy contribution
guidelines&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Extensive &lt;a class="reference external" href="https://book.the-turing-way.org/community-handbook/community-handbook/"&gt;contribution guidelines for the book “The Turing
Way”&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="wiki-rules"&gt;
&lt;h2&gt;Wiki rules&lt;/h2&gt;
&lt;p&gt;On the other hand, wikis usually operate on the idea of “press ahead”,
make your change directly, and if so anything isn’t perfect, it will
be iteratively improved later.  If people disagree, there are ways to
resolve conflicts later on.  There are few, if any, checks before
committing to the history.  This doesn’t mean there aren’t standards
and expectations, but there is tolerance if new contributors don’t do
it just right in their contributions.&lt;/p&gt;
&lt;p&gt;For a new, rapidly changing project with few contributors, this can
make sense.  If there are few contributors who communicate a lot, it is
easy.  If there are many contributors, there need to be good standards
(as there is some hope of convergence) and enough contributors to
converge to those standards.  Wiki rules requires a strong mental
model that everyone shares.&lt;/p&gt;
&lt;p&gt;Disadvantages include the time needed to fix things up (or even notice
the wrong thing…).  It can also be demotivating if someone goes and
makes a big change, and it gets iterated to significantly change it.
(Sound similar to code rules, right?)&lt;/p&gt;
&lt;p&gt;Examples of this include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://en.wikipedia.org/wiki/Wikipedia:Be_bold"&gt;Wikipedia’s “Be Bold” guide page&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;[According to my memory,] The OpenStreetMap wiki (contributor
instructions) used to have a page “Press Ahead” with a message to
just add things to the best of your ability and it will be improved
later.  I can’t currently find the page, I presume because there’s
enough maturity that stability is more important now.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="new-one-book-rules"&gt;
&lt;h2&gt;New one: book rules&lt;/h2&gt;
&lt;p&gt;Added 2026-09-14: There is one more possibility, “book rules”, where
there is an author who is taking overall editorial control, and there
are usually not direct changes by others.  There may be suggestions,
by others, but usually one person listens to all the suggestions,
decides the direction, and chooses the final wording.  Any review may
end up essentially re-writing it to get the exact phrasing the main
author wants.&lt;/p&gt;
&lt;p&gt;In this, contributions are of the form of ideas and suggestions
without exact wording being provided.&lt;/p&gt;
&lt;p&gt;Examples of this might include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Opinion pieces such as &lt;a class="reference external" href="https://rkdarst.github.io/thoughts-on-academic-supervising/"&gt;my notes for academic
supervisors&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="summary"&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;I guess it all comes down to “don’t let the perfect become the enemy
of the good”.  When there are few people and you communicate often,
you can iterate and improve.  If you get large and stable (or people
depend on complete correctness), then maybe it’s time to switch to
code rules.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I think the difference is not exactly “are there strict contribution
guidelines?”.  The difference is if someone should contribute
something possibly wrong and let it be fixed later, or strict
pre-review.&lt;/strong&gt;  Every project needs to find their balance of amount of
contribution guidelines, amount of prior review, amount of other
contribution, and wiki/code rules.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="examples"&gt;
&lt;h2&gt;Examples&lt;/h2&gt;
&lt;p&gt;A project could have an in-person meeting to make a plan, then switch
to wiki rules to implement the plan, then a round of review and
discussion followed by more iteration.  After it has stabilized,
moves towards code rules.&lt;/p&gt;
&lt;p&gt;Early in planning a conference, we use wiki rules to combine all our
ideas onto the website (before anyone even sees the site) and refine
them, aggressively narrowing down.  To avoid wasted work, it’s
“first-draft” or “notes” level work at the beginning if we aren’t sure
about it.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://rkd.zgib.net/blog/2026/wiki-vs-code-rules/"/>
    <summary>I have sometimes said the phrases “wiki rules”. or “cade rules” about
contributing to a project.  What does this mean?  Roughly, “code
rules” is being careful and making sure everything is correct before
finalizing a contribution.  Wiki rules is just doing something and
letting it get improved later.  Both ways have their place, and I
think sometimes we can get so obsessed with being “right” that we
forget to get stuff done.  I’ll discuss below.</summary>
    <published>2026-07-20T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://rkd.zgib.net/blog/2026/debian-with-unionfs-root/</id>
    <title>Debian with unionfs root</title>
    <updated>2026-07-13T00:00:00+00:00</updated>
    <author>
      <name>Richard Darst</name>
    </author>
    <content type="html">&lt;section id="debian-with-unionfs-root"&gt;

&lt;p&gt;I wanted to make a virtual machine that has a root that is immutable -
when booted, it would have a tmpfs for all files, and then when
reboots, everything goes back to normal.  I set this up before the
&lt;a class="reference internal" href="../../2026/debian-read-only-root/"&gt;&lt;span class="doc"&gt;read-only root filesystem&lt;/span&gt;&lt;/a&gt;,
but the use case is slightly different here.  I want a way to test
things on the internet, without going through my home network, more
lightweight than making/snapshotting and deleting a VM every time.  It
might also be useful when you want a system that is mostly normal but
home directories are in memory.&lt;/p&gt;
&lt;p&gt;This post is mostly internal notes but may be helpful to others.&lt;/p&gt;
&lt;section id="the-idea"&gt;
&lt;h2&gt;The idea&lt;/h2&gt;
&lt;p&gt;I make a VM and give it an overlayfs for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/home&lt;/span&gt;&lt;/code&gt;.  This has the base
(the real &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/home&lt;/span&gt;&lt;/code&gt; and the upper directory &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/tmp/home&lt;/span&gt;&lt;/code&gt; where any
modifications are stored.  &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/tmp&lt;/span&gt;&lt;/code&gt; is an automatic tmpfs, and then
there is no permanent changes made to one’s home directory.&lt;/p&gt;
&lt;p&gt;First, install the VM and I have found it is good to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;touch&lt;/span&gt;
&lt;span class="pre"&gt;~/.Xauthority&lt;/span&gt;&lt;/code&gt; before doing the overlay, so that &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;ssh&lt;/span&gt; &lt;span class="pre"&gt;-X&lt;/span&gt;&lt;/code&gt; works.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="filesystem-mounts"&gt;
&lt;h2&gt;Filesystem mounts&lt;/h2&gt;
&lt;p&gt;This is implemented via an overlayfs.&lt;/p&gt;
&lt;p&gt;On the Debian version I have, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/tmp&lt;/span&gt;&lt;/code&gt; is already a &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;tmpfs&lt;/span&gt;&lt;/code&gt;.  If
not, you should set up that first.&lt;/p&gt;
&lt;p&gt;I add the following into &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/etc/fstab&lt;/span&gt;&lt;/code&gt;.  It seems to automatically
make the directories within /tmp, which of course are never saved
since it is a tmpfs.:&lt;/p&gt;
&lt;div class="highlight-default notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;homeoverlay&lt;/span&gt;   &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;          &lt;span class="n"&gt;overlay&lt;/span&gt;  &lt;span class="n"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;nofail&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;unbindable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;lowerdir&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;upperdir&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;workdir&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;work&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The following line makes a bind-mount of root which I hoped to use to
access the underlay of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/home&lt;/span&gt;&lt;/code&gt; without having to reboot, but this
line did &lt;em&gt;not&lt;/em&gt; work that way (the binds were passed through, even
though it is &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;bind&lt;/span&gt;&lt;/code&gt; and not &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;rbind&lt;/span&gt;&lt;/code&gt; which should be recursive).
Any other bind-mounts I tried to do did not work as expected:&lt;/p&gt;
&lt;div class="highlight-default notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;             &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mnt&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;bind&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;none&lt;/span&gt;     &lt;span class="n"&gt;defaults&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;bind&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;To bind-mount (via qemu or whatever it was) from outside, I have this
fstab line:&lt;/p&gt;
&lt;div class="highlight-default notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;          &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;           &lt;span class="n"&gt;virtiofs&lt;/span&gt; &lt;span class="n"&gt;defaults&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;auto&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;section id="network-bridge-to-vpn"&gt;
&lt;h2&gt;Network bridge to VPN&lt;/h2&gt;
&lt;p&gt;The network is bridged to a separate vlan to further isolate it (this
vlan is managed by my home router outside the host, so there is no way
this system could possibly send traffic without the vpn).  In
virt-manager, I set it to a bridge device I have configured on the
host to be bridged to the VPN.  I’m recording this here since it’s
relevant.&lt;/p&gt;
&lt;p&gt;First, you need to make a bridge device.  I add the following to
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/etc/network/interfaces&lt;/span&gt;&lt;/code&gt;.  I don’t make this automatically
activate, since on the host I don’t want long-term effects unless I do
something.  The VM fails to start if it isn’t activated:&lt;/p&gt;
&lt;div class="highlight-default notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;iface&lt;/span&gt; &lt;span class="n"&gt;br&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;vpn2&lt;/span&gt; &lt;span class="n"&gt;inet&lt;/span&gt; &lt;span class="n"&gt;dhcp&lt;/span&gt;
  &lt;span class="n"&gt;bridge_ports&lt;/span&gt; &lt;span class="n"&gt;enp4s0&lt;/span&gt;&lt;span class="mf"&gt;.22&lt;/span&gt;
  &lt;span class="n"&gt;metric&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Activate the bridge with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;ifup&lt;/span&gt; &lt;span class="pre"&gt;br-vpn22&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Modern Linux send bridge traffic through netfiter (iptables).  You can
either allow it in the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;FORWARD&lt;/span&gt;&lt;/code&gt; chain if it’s not set by default,
or for my case it was easiest to make it not use netfilter:&lt;/p&gt;
&lt;div class="highlight-console notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gp"&gt;# &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;tee&lt;span class="w"&gt; &lt;/span&gt;/proc/sys/net/bridge/bridge-nf-call-iptables
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If you don’t do the above, remember to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;sysctl&lt;/span&gt; &lt;span class="pre"&gt;net.ipv4.ip_forward=1&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://rkd.zgib.net/blog/2026/debian-with-unionfs-root/"/>
    <summary>I wanted to make a virtual machine that has a root that is immutable -
when booted, it would have a tmpfs for all files, and then when
reboots, everything goes back to normal.  I set this up before the
read-only root filesystem,
but the use case is slightly different here.  I want a way to test
things on the internet, without going through my home network, more
lightweight than making/snapshotting and deleting a VM every time.  It
might also be useful when you want a system that is mostly normal but
home directories are in memory.</summary>
    <published>2026-07-13T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://rkd.zgib.net/blog/2026/zulip-guide/</id>
    <title>Zulipchat guide: managing too much information</title>
    <updated>2026-06-29T00:00:00+00:00</updated>
    <author>
      <name>Richard Darst</name>
    </author>
    <content type="html">&lt;section id="zulipchat-guide-managing-too-much-information"&gt;

&lt;p&gt;Zulip is a chat platform (open-source and self-hostable).  I think it
is very good, but often confusing to newcomers.  This post explains
how I see it and how I think others can manage all the information.
This isn’t meant to be a Zulip basics guide.&lt;/p&gt;
&lt;p&gt;I can’t recommend Zulipchat enough if you want a proper online
community.  I’m not paid to say this.&lt;/p&gt;
&lt;section id="the-fundamental-contradiction-of-chats"&gt;
&lt;h2&gt;The fundamental contradiction of chats&lt;/h2&gt;
&lt;p&gt;I think it’s important to start with why I believe people have a
problem with Zulipchat.  It’s because it works.  People use it to
talk, and it leads to thriving chat communities.  This leads to too
much information.  It doesn’t lead to a large number of one-to-one or
group direct messages, but functioning communities.&lt;/p&gt;
&lt;p&gt;On the other hand, it has good tools to filter things and let you
focus on what you want.  It takes some getting used to, but it’s
possible.&lt;/p&gt;
&lt;p&gt;So, don’t be afraid.  You are joining a community which has decided to
be a community, and that community is probably here to help you with
that.  The cost is that you need to manage your time, so read on.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="zulip-basics"&gt;
&lt;h2&gt;Zulip basics&lt;/h2&gt;
&lt;p&gt;The main concepts are:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Channels&lt;/strong&gt; (formerly known as “streams”) are the basic organization,
like in other chat systems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Topics&lt;/strong&gt; are like email subjects of threads within a channel, which
have no similar concept in other chat systems.  This is what lets
someone get a summary of what is going on and manage the flow.  You
can mention &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;topic&lt;/span&gt;&lt;/code&gt; to get just those active in a topic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Messages&lt;/strong&gt; are as expected, but all messages have both a channel and
topic.  (These days you can actually send a message without a topic
and it appears as “&lt;em&gt;general chat&lt;/em&gt;”, but I would recommend avoiding
this as possible.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your view can be narrowed to certain channels, topics, or other
search terms.  There are a wide variety of places to click to do
this (from almost any view).  Click around and see how it works - it
will save you lots of time.  If you click on a channel/topic name, it
narrows to that channel/topic around that message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you click on actual messages, it opens reply boxes in that topic.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This has two major implications.  First, you have to think a little
bit before you start to type.  This slows you down by a few seconds,
but it’s not so hard and worth it to think “what am I talking about
here?  Is there an existing thread to join?”  But don’t worry too
much, a quick search is enough.&lt;/p&gt;
&lt;p&gt;Second, once you have things sorted, you can much more easily filter
and find what’s important to you.  You can see more of past
conversations.  If you see a new interesting message, you can click on
it and see all the past history.  You can get notified for specific
conversations and hide others.&lt;/p&gt;
&lt;p&gt;As a newcomer, you won’t know what all has happened before, so thus
may start duplicate topics.  That’s OK!  In all the organizations I am
part of, there are some people who act as “curators” and organize
topics, combining or splitting them.  They may combine, split, or
move yours.  This isn’t bad.  Just chat and let others deal with that.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="notification-levels"&gt;
&lt;h2&gt;Notification levels&lt;/h2&gt;
&lt;p&gt;There are three levels of following/notifications:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Following&lt;/strong&gt; where you get notifications (sound/pop-up/email/etc.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Default&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Muted&lt;/strong&gt; where you don’t even see the messages by default, but if you
get &amp;#64;-mentioned then you do.  You can then click on the message and see
the whole topic.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In your personal settings, there are a variety of settings to make
yourself auto-follow anything you interact with (send messages to) or
get mentioned in.&lt;/p&gt;
&lt;p&gt;Also, &lt;em&gt;every one of these can operate per-channel or per-topic&lt;/em&gt;.  Thus,
you have lots of flexibility.  (Of course this leads to the paradox of
choice, where more options decrease happiness).&lt;/p&gt;
&lt;/section&gt;
&lt;section id="zulip-conventions"&gt;
&lt;h2&gt;Zulip conventions&lt;/h2&gt;
&lt;p&gt;My organizations tend to:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Not &amp;#64;-mention people as much as in other places (it can be done when
you need to, but if you know someone actually follows the chat, they
can usually find the relevant topics).  People set the auto-follow
depending on their needs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Not quote-replying that often, unless it’s not very recent in the
topic or you want to emphasize it.  People can always click the
topic and see history, no matter when they see it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Have fewer channels and rely more on setting topics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rely less on private messages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do make a search for any past topics and re-post to them if it’s
relevant.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do rearrange messages after they are sent, as topics diverge and
converge.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make new topics frequently, but also split/join topics often when
they drift.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“Curators” who have been around a while often move/organize topics
that other people start, with a low threshold (this doesn’t mean
something went wrong, and it may connect you to older info).  But
anyone is welcome to do this.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="strategy-if-you-follow-selectively"&gt;
&lt;h2&gt;Strategy: if you follow selectively&lt;/h2&gt;
&lt;p&gt;If you are like most people and can’t follow everything, that’s OK.
When you check chat:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Check your “&lt;strong&gt;Inbox&lt;/strong&gt;” view.  This shows everything new and unread (and
you can limit it to where you have been mentioned/where you are
following).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Alternatively, check the “&lt;strong&gt;Recent topics&lt;/strong&gt;” view.  This will show
you every topic that has been active, sorted by most recent.  You
can read the topics and see if there’s anything interesting.  When
you click on a topic, you can scroll back to all the old history,
not just the unread messages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;If you want&lt;/em&gt;, you can scroll the “Combined feed” that shows
everything if you want.  This has all the messages mixed together,
which will be hard to follow, but you might see something that
catches your eye.  Click the topic name and you will narrow to that
topic and see the whole thing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then, and I can’t emphasize this enough, mark everything as read.
It’s in the past, you won’t catch up.  If something is still
relevant, it will re-appear in the recent topics and you can still see
all the history.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A variant of this is to go click on each channel separately on the
sidebar, which makes its recent topics appear.  You can then either
browse the channel in chronological order or click on the relevant
topics to narrow to them.&lt;/p&gt;
&lt;p&gt;You can select “Inbox” or “Recent topics” as your default view.&lt;/p&gt;
&lt;p&gt;Even if you try to follow everything, when you come back from a
vacation or similar, do this and “mark all as read”.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="strategy-if-you-follow-everything"&gt;
&lt;h2&gt;Strategy: if you follow everything&lt;/h2&gt;
&lt;p&gt;Some people want to try to follow everything.  In this case, set
&lt;strong&gt;combined feed&lt;/strong&gt; as your default home view (Personal settings &amp;gt;
Preferences) and you will see every message in chronological order
(with all the topics interleaved).  This lets you quickly follow new
things, but can easily become overwhelming.  When you see something
that is interesting, you click on its topic and see the history of
that topic.&lt;/p&gt;
&lt;p&gt;You might want to disable the auto-follow settings (in your personal
settings).  Since you follow everything on your own time, you don’t
need to&lt;/p&gt;
&lt;p&gt;In reality, I often combine these strategies.  I’m one of the topic
curators, so I tend to follow everything.  Still, if I’m away from a
few days it’s too much, so I click through each channel separately to
catch up by-topic before going back to the combined feed.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="strategies-to-follow-what-s-important-to-you"&gt;
&lt;h2&gt;Strategies to follow what’s important to you&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;For your most important channels, you can pin the to the top.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“Follow” certain topics so that you get notified.  I do this for
topics such as “lunch” (“where are we eating today?”)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you don’t look often, change your personal settings to
automatically follow any topic you get &amp;#64;-mentioned in or interact
in.  Un-follow them if/when your input is no longer needed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set up alert words (personal settings) which tag certain words as
&amp;#64;-mentions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="strategies-to-ignore-what-is-not-important-to-you"&gt;
&lt;h2&gt;Strategies to ignore what is not important to you&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;You can be in a channel but have it muted, so you don’t see it by
default, but you can be mentioned within in (and you can see it when
you click on it).  If there’s a private channel, this is probably a
better strategy than not being in it (since you can’t as easily
re-join).  This also means it’s easy to occasionally click on it to
see what’s going on, while not taking up mental space on a daily
basis.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mute specific high-volume topics that are not relevant to you.  I do
this for some high-volume automated alerts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Change the “followed messages count” to only include followed
topics, DMs, and mentions” - so that indicator isn’t always taking
your mental focus.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="emoji-reactions"&gt;
&lt;h2&gt;Emoji reactions&lt;/h2&gt;
&lt;p&gt;The organizations I am in often use Emoji reactions.  This works like
other places, but there are some conventions I try to use (note these
are something I think, not an official policy or anything):&lt;/p&gt;
&lt;p&gt;For expressing agreement/disagreement:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;🔼 (&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;:upvote:&lt;/span&gt;&lt;/code&gt;): Reacting to a concrete suggestion, it means “in no
uncertain terms I approve of you taking that action”.  I use this,
and the following four, since “no one is answering, what should I
do?” is a big problem with decisions via chat.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;⏫ (&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;:double_up:&lt;/span&gt;&lt;/code&gt;): I agree with you and am willing to do work to
help make it possible.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;↕️ (&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;:up_down:&lt;/span&gt;&lt;/code&gt;): I’m neutral&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🔽 (&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;:downvote:&lt;/span&gt;&lt;/code&gt;): I don’t support this action&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;⏬ (&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;:double_down:&lt;/span&gt;&lt;/code&gt;): I don’t support this action and am willing to
do work for some other sort of solution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;👍 (&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;:+1:&lt;/span&gt;&lt;/code&gt;): General “I agree with the sentiment” message, but
perhaps less specific than the upvote arrows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✔️ (&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;:check_mark:&lt;/span&gt;&lt;/code&gt;) and similar: I have done whatever was in this
message.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🧾 (&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;:receipt:&lt;/span&gt;&lt;/code&gt;): I’ve read the message and acknowledge receipt but
no other comment yet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🛠️ (&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;:working_on_it:&lt;/span&gt;&lt;/code&gt;): I’m working on this now.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Anything else means some general sentiment, usually positive, but no
specific meaning to me.  You can figure out some sentiments by what
it is and/or how (in)frequently it’s used.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For the voting things, it’s something I once read was used in some
other open source project, but I can’t find any trace of it.  The
system was based on a {-2, -1, 0, +1, +2} to be able to express not
just “good idea” but “who has time/willingness to do something”.  A
human needs to do the final interpretation of the results.  Maybe I
should write about this elsewhere.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="summary"&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;When you use Zulip chat, you get a ton of information, but you have
ways to filter it if you need.  I think this also gives good
possibilities for passively following along, which is also helps with
onboarding and learning things.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="see-also"&gt;
&lt;h2&gt;See also&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://zulip.com/help/getting-started-with-zulip"&gt;Zulip official docs, getting started guide&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://doi.org/10.5281/zenodo.18624144"&gt;Zulip quick start guide&lt;/a&gt;
by people I know.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://blog.zulip.com/2025/01/27/year-in-review-2024/"&gt;Zulip 2024 in
review&lt;/a&gt; that
gives some underused features.e&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://rkd.zgib.net/blog/2026/zulip-guide/"/>
    <summary>Zulip is a chat platform (open-source and self-hostable).  I think it
is very good, but often confusing to newcomers.  This post explains
how I see it and how I think others can manage all the information.
This isn’t meant to be a Zulip basics guide.</summary>
    <published>2026-06-29T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://rkd.zgib.net/blog/2026/digital-sovereignty-actions/</id>
    <title>My digital sovereignty actions</title>
    <updated>2026-06-17T00:00:00+00:00</updated>
    <author>
      <name>Richard Darst</name>
    </author>
    <content type="html">&lt;section id="my-digital-sovereignty-actions"&gt;

&lt;p&gt;Digital sovereignty refers to owning or having control over your data
and digital services.  This post talks about what I do.&lt;/p&gt;
&lt;p&gt;I’m interested in this not just to get away from US-based companies,
but for preparing for the internet to get more locked down and closed
with things like age verification, forced identification, etc.&lt;/p&gt;
&lt;p&gt;A basic goal is I’d like to do things that I can recommend to others.
I used to self-host many things (like my own email, web servers, etc.)
and still could, but I am much busier now.  Furthermore, not everyone
can or has time to self-host things.  I would rather learn and use
things that I can recommend to, for example, my parents and friends,
rather than the theoretical perfect thing for a person with plenty of
time.  As you’ll see, I have various things at different levels of
from “self-hosted” to “cloud”.&lt;/p&gt;
&lt;section id="proton-services"&gt;
&lt;h2&gt;Proton services&lt;/h2&gt;
&lt;p&gt;I use &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Proton_AG"&gt;Proton&lt;/a&gt; for my email,
with my own domain.  I pay for this.  The custom domain setup was
extremely easy (though of course I’m an expert here, but still… it’s
almost doable by anyone).&lt;/p&gt;
&lt;p&gt;With plans above the minimum, you get an incredible amount of stuff:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;mail (works well)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;calendar (I don’t really use)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;drive (works well, but I don’t sync my computer to it)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;docs (working, including spreadsheets), but not good enough for my
primary use yet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;password manager (this has been an unexpectedly useful for me)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;VPN&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The basic benefits of Proton are client side encryption, being
exclusively funded by users, mostly controlled by a foundation, and
having a critical mass to continue developing services and expanding.
Their goal is to make good services which are intended for wide
adoption (not theoretical perfection), which is a trade-off I support.
Other basics, like clear backups and recovery (which is difficult with
client side encryption) are taken seriously and made usable, so that
(for example) my parents would not lose all their data if they do the
backup/recovery steps suggested.&lt;/p&gt;
&lt;details class="admonition-is-proton-bad admonition"&gt;
&lt;summary class="admonition-title"&gt;Is Proton bad?&lt;/summary&gt;
&lt;p&gt;I often see complaints about Proton in the news, but in my analysis
most are unfounded.  They are a serious company making the hard
trade-offs needed to provide a service to as many people as possible,
which I think is good.  I think most complaints (while having a
factual basis) are either general negativity, or perhaps targeted
attacks.&lt;/p&gt;
&lt;/details&gt;
&lt;/section&gt;
&lt;section id="cryptpad"&gt;
&lt;h2&gt;Cryptpad&lt;/h2&gt;
&lt;p&gt;&lt;a class="reference external" href="https://cryptpad.fr/"&gt;Cryptpad&lt;/a&gt; is a web-based client-side encrypted
drive service.  It has OnlyOffice as a document suite, providing very
high quality documents, spreadsheets, presentations, etc.  It also has
forms and markdown document support.  I know crypto researchers what
have colleagues who develop on CryptPad and recommend it, so that’s a
good review to me.  It’s run by a French company.&lt;/p&gt;
&lt;p&gt;I don’t pay for this and get 1 GiB free.  I used this when I needed
competent office suites or documents I can share via a link, but I
don’t use it for much else.  Sign-up was completely anonymous (and you
can even do basics without registering).&lt;/p&gt;
&lt;/section&gt;
&lt;section id="home-servers"&gt;
&lt;h2&gt;Home servers&lt;/h2&gt;
&lt;figure class="align-right"&gt;
&lt;img alt="https://rkd.zgib.net/_images/digital-sovereignty-actions-pis.png" src="https://rkd.zgib.net/_images/digital-sovereignty-actions-pis.png" /&gt;
&lt;/figure&gt;
&lt;p&gt;I have two &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Raspberry_Pi"&gt;Raspberry Pis&lt;/a&gt;
running stock Raspberry Pi OS. (There are other Raspberry Pi images
that are designed to host home services more easily, but I could
manage them myself.  Also, someday I may switch to raw Debian.)&lt;/p&gt;
&lt;p&gt;A Raspberry Pi 4 serves as an internal file server, though the files
are just stored on USB flash drives so it’s not a fully developed,
backed-up NAS yet.  Sometime I’d want to make it a full RAID array.
One USB drive holds basic shared files, one USB drive is backups.  (I
need to set up better off-site backups.)  This one basically runs Samba
with world-rw permissions, but is inside our internal network so guests
don’t have access.&lt;/p&gt;
&lt;p&gt;A second Raspberry Pi 5 serves as a web server.  It has a dual M2 NVMe
hat with (currently) one 500 GiB NVMe.  Nginx serves as a reverse
proxy and various servers run in Docker.  This is accessible to the
world and is in the guest network.&lt;/p&gt;
&lt;p&gt;I got Raspberry Pis since it’s a Europan company and I wanted new things
that would have a long lifetime.  To increase reliability, I made the
root filesystem on the SSD cards to read only
(&lt;span class="xref std std-doc"&gt;debian-read-only-root&lt;/span&gt;).  The idea is I want to treat these like
an appliance with a long lifetime, not so getting I mess with all the
time.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="self-hosted-nextcloud"&gt;
&lt;h2&gt;Self-hosted Nextcloud&lt;/h2&gt;
&lt;p&gt;On the Raspberry Pi, I installed
&lt;a class="reference external" href="https://en.wikipedia.org/wiki/Nextcloud"&gt;Nextcloud&lt;/a&gt; via the &lt;a class="reference external" href="https://github.com/nextcloud/all-in-one"&gt;“all in
one” distribution&lt;/a&gt;.  With
this, you pull one docker image and it controls the swarm of other
docker images.  The interface seems quite well developed and while
this self-hosting is still advanced, the barrier to using it was much
less than I expected.  There have been some problems I have had to
solve with my Linux experience (partly caused by my particular
setups), which makes it hard to recommend this for everyone.&lt;/p&gt;
&lt;p&gt;This is all self-hosted at home.  I could use a VM somewhere, but I
haven’t wanted to go that far and pay for that yet.&lt;/p&gt;
&lt;p&gt;I learned that Nextcloud isn’t just a drive thing, but has a huge
variety of apps built in.  It has user management and file storage,
but also things like a teleconference solution (what I use to talk to
my parents now), chat, documents, calendar, etc. It’s basically a full
replacement for Google Workspace / Microsoft stuff, and really could
be used by an organization to replace those US services.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Drive: store files via the web, Android sync, etc.  It can even
use SMB as a storage backend, so in theory the NAS could be the file
storage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deck (task management / kanban)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Talk (chat and video chat.  I use this to talk to my parents now)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Notes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;And much more.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The office suite is either Collabora (which I think is LibreOffice
based), or OnlyOffice like Cryptpad.  I found OnlyOffice to be better,
but the EuroOffice project was started and is forking OnlyOffice to
improve it some.  EuroOffice is actually a collaboration among many
companies that includes Proton, Nextcloud and Xwiki (the company
behind CryptPad)&lt;/p&gt;
&lt;p&gt;NextCloud had good apps for Android, and is taking over some of the
basic note taking and task management I need to do (for example I am
drafting this post in the Notes app).  The office suite isn’t good
enough for me to fully replace Google Docs yet.&lt;/p&gt;
&lt;p&gt;So, while this self hosting is still not in the reach of everyone,
this is on the easy side of self-hosting.  Still, self hosting has a
lot of things that can go wrong (I’ve already had to fix various
things), so it’s hard to recommend this to everyone.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="desktop-computers"&gt;
&lt;h2&gt;Desktop computers&lt;/h2&gt;
&lt;p&gt;My desktop runs &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Debian"&gt;Debian&lt;/a&gt;
(“Linux”).  It’s been stable for ages and is nice and boring.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="networking-and-routers"&gt;
&lt;h2&gt;Networking and routers&lt;/h2&gt;
&lt;p&gt;I have two &lt;a class="reference external" href="https://en.wikipedia.org/wiki/MikroTik"&gt;Mikrotik&lt;/a&gt; network
devices in my home, one router and one PoE ceiling mounted access
point.  Mikrotik is a Latvian company, and their device are known to
be very powerful but hard to use, which is the trade off I don’t mind
making.  The easy setup was easy enough for anyone, and the powerful
interface wasn’t that hard, if you know Linux networking (there is
always the difficulty that if you can do anything, you want to and it
gets complicated.  The basics are easy enough to do) - and really, a
huge amount of Linux networking capabilities are exposed. They can be
used fully without any cloud services.&lt;/p&gt;
&lt;p&gt;My home cable modem/router (provided by the ISP) is in bridge mode
(routing/firewall by own router), so that it has no access to the rest
of the internal networks.  Internally, I have a networks:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;primary (own devices)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;guest (guests and insecure)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;IoT (no access to the internet, I can access from the primary
network) (not that I have IoT devices yet anyway)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;VPN (this is routed so that in can only access the internet through
Proton VPN, which runs on the router.  It’s also exported to the
wired network with a tagged vlan, that I can access from a vpn-only
virtual machine on my desktop.  I don’t use it for much but
it was a fun diversion / good proof of concept.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ipv6-only (with native ipv6 connectivity, and only that.  I don’t
use it for anything but it was educational setting it up.)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I invested in these to prepare for a future when routers might get
more locked down and I need to be more self-sufficient.&lt;/p&gt;
&lt;p&gt;One future goal is to give my home two public IP addresses: one for my
home’s outgoing traffic, one for incoming web traffic.&lt;/p&gt;
&lt;p&gt;I have a &lt;a class="reference external" href="https://mikrotik.com/product/rb5009upr_s_in"&gt;RB5009&lt;/a&gt; and
&lt;a class="reference external" href="https://mikrotik.com/product/cap_ax"&gt;cAP ax&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="phone"&gt;
&lt;h2&gt;Phone&lt;/h2&gt;
&lt;p&gt;I have a &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Fairphone_5"&gt;Fairphone 5&lt;/a&gt;
running the stock OS.  This is at least a European company and doesn’t
forcibly install much extra stuff.  Updates come a bit slow, but the
hardware seems perfectly suitable for my uses.&lt;/p&gt;
&lt;p&gt;For a travel phone I installed e/OS on an old Pixel 3a.  e/OS seems
like it worked well and is an option for my main phone if I ever
needed to get away from Google.&lt;/p&gt;
&lt;p&gt;To talk to people I only use
&lt;a class="reference external" href="https://en.wikipedia.org/wiki/Signal_(software)"&gt;Signal&lt;/a&gt;.  Yes, it is
US-based but it is run by a nonprofit and has the right balance of
usability and security.  If this ever goes down, I will have Nextcloud
Talk (self-hosted) (the chat function) that I can use for the people
closest to me, even from phones.&lt;/p&gt;
&lt;p&gt;I’d want to improve phone stuff later, but it hasn’t been a focus so
far.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="todo"&gt;
&lt;h2&gt;ToDo&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;I need a better backup solution.  The best I am thinking is some
client-side encrypted backup to a public cloud cold storage object
storage.  Backups and disaster recovery (or lack thereof) is a major
risk when people try to self-host things.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://rkd.zgib.net/blog/2026/digital-sovereignty-actions/"/>
    <summary>Digital sovereignty refers to owning or having control over your data
and digital services.  This post talks about what I do.</summary>
    <published>2026-06-17T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://rkd.zgib.net/blog/2026/vision-of-nordic-scientific-computing/</id>
    <title>A vision of Nordic Scientific Computing</title>
    <updated>2026-05-16T00:00:00+00:00</updated>
    <author>
      <name>Richard Darst</name>
    </author>
    <content type="html">&lt;section id="a-vision-of-nordic-scientific-computing"&gt;

&lt;p&gt;I was asked what is my vision for Nordic collaboration in scientific
computing support.  This is something I have been thinking about for
years, so I thought I would write it so that everyone can see.  In
short, there are close collaborations, but we need some down-to-earth
events to bring it together at the hands-on user-support level.&lt;/p&gt;
&lt;section id="what-are-we-aiming-for"&gt;
&lt;h2&gt;What are we aiming for?&lt;/h2&gt;
&lt;p&gt;Research is important for society, and thus computing and research is
important.  Often times, academics get all the attention, but us
backend people (who I broadly call “research engineers”) are quite
important too.  Research infrastructure support is important for
research, but often doesn’t get that much attention.  It is valuable
skill that needs practice, and isn’t taught in “school”.  User support
is equally important, and even less taught in school.  Both need
practice and a community, just like academics need to do their job.&lt;/p&gt;
&lt;p&gt;My particular interest is scientific computing - broadly defined to
include data, HPC, coding, and so on.  These lessons also apply to
other research engineer type fields, and we can use the lessons there,
too.&lt;/p&gt;
&lt;p&gt;See also: &lt;a class="reference external" href="https://docs.google.com/presentation/d/1lF-2QtVa6obI_ceSYJ8wq0PhaiQVCf2Jmb_KUo6H-rQ/edit?slide=id"&gt;Architects vs engineers (in computing)&lt;/a&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="my-idea"&gt;
&lt;h2&gt;My idea&lt;/h2&gt;
&lt;p&gt;I think that &lt;a class="reference external" href="https://neic.no/"&gt;NeIC&lt;/a&gt; is a good model and about the
right size.  There is enough critical mass, and distances and cultures
are close.  NeIC has good collaboration for its projects, and the idea
should go beyond the accepted projects.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="teaching-collaboration"&gt;
&lt;h2&gt;Teaching collaboration&lt;/h2&gt;
&lt;p&gt;CodeRefinery has a great teaching collaboration going.  I think this
should continue and be enhanced.  Some of the benefits are:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;It is the level-1 RSE training.  Most of the RSEs I have hired have
attended CodeRefinery and for some of them it inspired their career
choice.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Teaching is a concrete activity that we can do together.
&lt;strong&gt;CodeRefinery team-teaching provides high amounts of interaction
between instructors, so that they can learn from each other, too.&lt;/strong&gt;
Open materials suitable for reference later on are also a valuable output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Team teaching (including helpers, notes Q&amp;amp;A, and local breakout
rooms) for advanced topics provides a way to spread the knowledge
and promote staff development.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="admonition-teaching-actions admonition"&gt;
&lt;p class="admonition-title"&gt;Teaching actions&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Expanded in-person breakout rooms for CodeRefinery courses.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This turns into more advanced (beyond CodeRefinery level) joint
courses, which serve to save time teaching + share knowledge across
countries.  Teaching (even with a limited audience) serves as a way
to connect.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;section id="conferences-and-meet-ups"&gt;
&lt;h2&gt;Conferences and meet-ups&lt;/h2&gt;
&lt;p&gt;I want to get back the magic of my first NeIC conference (2017), which
I felt was very much focus on hands-on mechanics of computing.  Part of
this is remembering the past more fondly than the present, but I think
there was something there.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;I want conferences and meet-ups that are not top-down (manager or
funding focused) but bottom up (what are our actual problems?  What
isn’t known?).  &lt;strong&gt;Also present things which are problems or
in-progress, not nice-looking solutions.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I want a special focus on usability and users, not a race for the
biggest or coolest systems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Basically, I want more things like the &lt;a class="reference external" href="https://aaltoscicomp.github.io/NoBSC/"&gt;Nordic Basic Scientific
Computing&lt;/a&gt; meetup I helped
organize.  I can do this by helping NeIC conferences, or I can
continue NoBSC myself.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The key points of NoBSC were: present problems and in-progress
work, not just completed solutions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="admonition-meet-up-actions admonition"&gt;
&lt;p class="admonition-title"&gt;Meet-up actions&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;I will continue to organize NoBSC in 2027.  I plan for 2027 to still
be focused on Finland and 2028 to focus on Nordic expansion, but if
there is interest the expansion can already happen in 2028.  (In all
cases others are always invited, just not with an explicit
advertising focus)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I would happy to drop that and instead focus on NeIC conferences and
meetups to bring my ideas there, instead.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;section id="joint-scicomp-support"&gt;
&lt;h2&gt;Joint SciComp support&lt;/h2&gt;
&lt;p&gt;It’s hard to build joint support structures, since it’s hard to do
free work for other organizations.  It’s hard to fully transfer a
support case to someone else.  However, it is possible to ask for and
give advice freely.&lt;/p&gt;
&lt;p&gt;The two points above (teaching and meetups) promote a network that
lets us know who to refer to.  This is like the NeIC model, but
broader, not just those employed in a NeIC project.&lt;/p&gt;
&lt;div class="admonition-support-actions admonition"&gt;
&lt;p class="admonition-title"&gt;Support actions&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;I would focus on the two points above.  It makes a network, and
after there is a network where we can ask each other for help.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;As part of the teaching + meetups, I would have a focus on usability
and user support.  This will help with internal support. (I have to
do user support training when we hire new people, and would be happy
to share this.)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://rkd.zgib.net/blog/2026/vision-of-nordic-scientific-computing/"/>
    <summary>I was asked what is my vision for Nordic collaboration in scientific
computing support.  This is something I have been thinking about for
years, so I thought I would write it so that everyone can see.  In
short, there are close collaborations, but we need some down-to-earth
events to bring it together at the hands-on user-support level.</summary>
    <published>2026-05-16T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://rkd.zgib.net/blog/2026/hopes-for-new-it-compliance/</id>
    <title>Hopes for new IT compliance</title>
    <updated>2026-05-11T00:00:00+00:00</updated>
    <author>
      <name>Richard Darst</name>
    </author>
    <content type="html">&lt;section id="hopes-for-new-it-compliance"&gt;

&lt;p&gt;I recently saw that due to “organizational change”, our small-scale
development IT compliance process is changing.  As usual for these
matters at my organization, security by obscurity is the rule (even
when it’s not security related), so I won’t go into the details.  But
I do have thoughts, and writing lets me give suggestions.&lt;/p&gt;
&lt;p&gt;Not all details are known yet, so this shouldn’t be seen on commentary
of any decisions, but hope of what can come next in the best possible
case.&lt;/p&gt;
&lt;section id="what-is-compliance"&gt;
&lt;h2&gt;What is compliance?&lt;/h2&gt;
&lt;p&gt;Let’s not be overly-complicated here.  I don’t aim to go in-depth
here, but there are various laws that you have to comply with when you
do IT systems (let’s focus on personal data management here: privacy
notices, legal use of the data, etc).  An organization needs to ensure
that anything its employees make is legal, so they set up some process
for that.&lt;/p&gt;
&lt;p&gt;Ideally, the process is as minimal and simple as possible.  In some
cases… it becomes much longer and harder than the original laws that
were to be satisfied.  There become many more friction points and
bottlenecks, which isn’t that great for agility, and in fact can
paralyze the whole organization.  Clever organizations would make sure
that the “compliance process” adjusts to the need of each thing that
needs to be complied with.&lt;/p&gt;
&lt;p&gt;It’s my general thought that ours doesn’t do this.  I don’t want to go
into why: if you know, you know.  If you don’t know, maybe the
following won’t be that interesting to you.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="what-happened"&gt;
&lt;h2&gt;What happened&lt;/h2&gt;
&lt;p&gt;Roughly, there seems like there will be less central review of
compliance forms and people/units need to take more responsibility
themselves.  This is likely only the case for small-scale development
(as in research and services which do not have an impact on other
services).  I don’t know for sure, but I presume large scale
procurement and development is staying the same.&lt;/p&gt;
&lt;p&gt;This will be unfortunate if there are still very specifically defined
requirements how to be compliant (stricter than the law says) - the
narrow definitions for a diverse organization are the very origin of
the problems we have had.  But there is potential.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="what-i-hope-happens"&gt;
&lt;h2&gt;What I hope happens&lt;/h2&gt;
&lt;p&gt;Some of this can happen because of the upstream changes.  Some could
have happened anyway, but hopefully we have a good excuse to work
together to implement them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Delegation to units and adjustment to their local needs.&lt;/strong&gt;  There are
very different needs from a unit which is mostly procuring outside
services and one which is mostly developing research methods only on
local infrastructure (before these were treated identically).  Unit
heads will now hopefully be able to adjust processes to suit the
actual needs, tempo, and risks of their work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Better separation of goals and procedures.&lt;/strong&gt;  Our legal teams will
hopefully be able to specify what the necessary requirements to meet
legislative requirements, rather than hide the requirements behind
some process which is not transparent to anyone.  This will help us to
satisfy the actual needs and be able to communicate about with each
other better about how to do that.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Better interactions with legal services.&lt;/strong&gt;  Instead of interactions with
legal services being focused on filling some forms (and much friction
caused by the difference between procedures and reality), legal
services will be available for more interesting questions.  I envision
a future where we can proactively approach legal services with
questions such as “Our goal is X, but we are uncertain how it
interacts with the law, can you help us think through this?”&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;More local knowledge.&lt;/strong&gt;  Instead of all compliance knowledge being
centralized in a few people, units will have to skill up.  This way be
seen as a bad thing, but it’s better than not having skills and also
not being able to do anything because it takes too long to get
answers.  For basic things, the difficulties are not too much (and I
would point out that for research purposes, all things are already
documented and, in practice, delegated to the end researchers).  Legal
staff will have time to help with advanced cases, and local staff will
be better prepared to work with them.  Instead of a hub and spoke
model where the only interaction is with a central team, we can talk
with and learn from each other.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;More sharing.&lt;/strong&gt;  I hope that, with more local responsibility, we will
have more local sharing of our documents and practices.  Right now, it
is too centralized, and there is very little sharing, so everyone is
trying to figure out things themselves.  (It’s almost treated like a
quiz, instead of collective challenge.)  This sharing requires some
work from us, but will lead to great improvements in the long term.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;More time where it is needed.&lt;/strong&gt;  For projects with interesting legal
questions, such as third-party data transfers, I hope our legal
services will have more time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Better possibilities for security reviews.&lt;/strong&gt;  Right now, compliance is
often called security, but actually security is a small aspect, one
which can not be reached without going through many other steps which
are not always relevant.  I hope that our security teams can produce
better checklists (usable by our local teams independently) to be
considered during development processes and will be there for real
security advice for more projects than they were previously.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Standard operating procedures.&lt;/strong&gt;  As of now, standard operating
procedures have not been allowed - everything needs separate review.
With this delegation, there is much more possibility for streamlining
the normal cases and focusing on the complex ones.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Don’t replicate research compliance.&lt;/strong&gt;  There is a whole other
well-working process for managing personal data in research.  In the
past, this has been disconnected from the one for IT systems (so
researchers have to figure out how to do both), even though it has the
same goal and most of the same steps.  I hope that research projects
can use only that process.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;More compliance.&lt;/strong&gt;  This may seem ironic, but as units determine their
local procedures and checklists, they will be more inclined to use
them.  Lower cost means higher uptake.  Less projects will fall
through the cracks.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;More data sovereignty.&lt;/strong&gt;  Since we can do small-scale development
faster, we will be less reliant on purchased services from large US
tech companies.  We can adjust progresses to make this possible.&lt;/p&gt;
&lt;p&gt;I don’t know if these will happen or not, but I hope we can work
towards them.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://rkd.zgib.net/blog/2026/hopes-for-new-it-compliance/"/>
    <summary>I recently saw that due to “organizational change”, our small-scale
development IT compliance process is changing.  As usual for these
matters at my organization, security by obscurity is the rule (even
when it’s not security related), so I won’t go into the details.  But
I do have thoughts, and writing lets me give suggestions.</summary>
    <published>2026-05-11T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://rkd.zgib.net/blog/2026/the-platform-compliance-pitfall/</id>
    <title>The platform compliance pitfall</title>
    <updated>2026-05-09T00:00:00+00:00</updated>
    <author>
      <name>Richard Darst</name>
    </author>
    <content type="html">&lt;section id="the-platform-compliance-pitfall"&gt;

&lt;p&gt;Roads don’t have to accept responsibility of who drives on them.
There are some standards for being safe, though.  Imagine how much all
construction would get slowed down if it gets bogged down in
administartive work looking in detail about who goes over the road?&lt;/p&gt;
&lt;p&gt;Even if, like me, you don’t want the world overflowing with cars,
hopefully you agree that the best way to do that isn’t to excessively
increase the costs of roads.&lt;/p&gt;
&lt;section id="the-point"&gt;
&lt;h2&gt;The point&lt;/h2&gt;
&lt;p&gt;In my work, we maintain various learning platforms.  This is what one
of their privacy notices could drop like:&lt;/p&gt;
&lt;div class="admonition-privacy-notice-for-student-data admonition"&gt;
&lt;p class="admonition-title"&gt;Privacy notice for student data&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Data contains: whatever you upload&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data source: you, when you upload&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data usage: as you choose to analyze it&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data removal: when you delete it&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To update or correct data: correct it yourself&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;Or this, for the assignments submitted via the platform&lt;/p&gt;
&lt;div class="admonition-privacy-notice-for-student-data admonition"&gt;
&lt;p class="admonition-title"&gt;Privacy notice for student data&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Data contains: whatever your teacher requests you submit (in
accordince with privacy notice for teaching)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data source: you (in accordince with privacy notice for teaching)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data usage: as decided by your teacher (in accordince with privacy notice for teaching)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data removal: when your teacher deletes it or requests we remove
their course page (in accordince with privacy notice for teaching)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To update or correct data: contact your teacher (in accordince with privacy notice for teaching)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;As you can see from this, the we and the platform itself isn’t
deciding how the data is used.  Students can use in for their own
work, in which case students decide themselves.  For the submitted
assignments, teachers decide how date is used (hopefully in compliance
with the privacy notice for studies!).&lt;/p&gt;
&lt;p&gt;The problem comes when we are required (by others in the university
compliance teams) to make a privacy notice just for this platform
covering everything that happens on it.  In legal terms, we are forced
to act like the controller of the data on the platform.  For the data
submitted as assignments, this is somewhat reasonable, since there is
only one legal entity involved.  For students, it makes no sense since
legally, the closest model is that we are a data processor to the data
the control themselves.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: I expect someone to say “no, what you describe isn’t what is
actually required.  Well, then please help us to avoid spending so
much time in meetings related to the above.  The purpose of this post
is to help us realize when this is happening and change our mindset,
not to complain or claim I know the best.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Note that the metadata of the platform, such as the login details
would be covered under its own privacy notice.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="the-effect"&gt;
&lt;h2&gt;The effect&lt;/h2&gt;
&lt;p&gt;What happens?  We spend huge amounts of time trying to align things
that don’t make sense together.  You know how people say EU
over-regulation reduces innovation?  I think this is an example of it.
All the goals are good: transparency of how data is processed and
stored.  But when you are pushing the limits of normality
(“innovating”), the real world doesn’t line up with the expectation,
and when you are in a risk-adverse society (because of huge penalties
of doing things wrong), lawyers will slow down everything that isn’t
normal-looking.&lt;/p&gt;
&lt;p&gt;Instead of time doing productive work (our final goal or understanding
the complexities of the situation), we spend time fighting ourselves..&lt;/p&gt;
&lt;/section&gt;
&lt;section id="what-to-do"&gt;
&lt;h2&gt;What to do&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Disclaimer: I’m not a lawyer but have been involved in these things
for a while. I know the problem exists, but you need someone else to
tell you if the below is possible and how to do it.  Or hire someone
who will make it possible.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Part of this is baked into the system and there is not much to do.&lt;/p&gt;
&lt;p&gt;But our organizations need to spend more time trying to interpret
things usefully, not make our documents look as normal and boring as
possible.  This actually takes skill, which I would think would be
more interesting than debating documents the way is done now.&lt;/p&gt;
&lt;p&gt;We should accept that some things are platforms and the privacy
notices can be delegated to another part of our organizations.  And
better acknowledgment that sometimes we are a data processor but not
controller (and the controller may be a private individual or a
different part of the organization).&lt;/p&gt;
&lt;p&gt;This will both be more transparent for our users (which is the actual
intention after all), easier for us to document (long term, once we
understand how to do it), and more interesting for our legal services
who are supervising things.  I’m not saying it will be easy, or even
possible, but it will be useful.&lt;/p&gt;
&lt;p&gt;While I haven’t been that involved in these “platform compliance
problems”, I’ve seen this and think we should give more thought to the
platform effects in the future.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://rkd.zgib.net/blog/2026/the-platform-compliance-pitfall/"/>
    <summary>Roads don’t have to accept responsibility of who drives on them.
There are some standards for being safe, though.  Imagine how much all
construction would get slowed down if it gets bogged down in
administartive work looking in detail about who goes over the road?</summary>
    <published>2026-05-09T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://rkd.zgib.net/blog/2026/book-review-first-break-all-the-rules/</id>
    <title>Book review: First, break all the rules</title>
    <updated>2026-04-26T00:00:00+00:00</updated>
    <author>
      <name>Richard Darst</name>
    </author>
    <content type="html">&lt;section id="book-review-first-break-all-the-rules"&gt;

&lt;p&gt;I recently read the book &lt;a class="reference external" href="https://en.wikipedia.org/wiki/First%2C_Break_All_the_Rules"&gt;First, break all the rules&lt;/a&gt;, based
on seeing it referred to in another source.  It is one of these things
about management, and I hoped to learn something that would help me in
my job.  It seemed to be a bit more practical and useful than some
management books, and it was roughly true.&lt;/p&gt;
&lt;p&gt;The idea behind it is that the Gallup organization (known for polls,
but apparently they do more) had investigated many companies and these
authors had ideas based on what they learned.  Most relevant to me was
twelve questions they found had the most correlation to
high-performing workplaces.  These sure seem reasonable to me, even
as someone who isn’t an expert in this:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;&lt;p&gt;Do I know what is expected of me at work?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do I have all the materials and equipment I need to do my work
right?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;At work, do I have the opportunity to do what I do best every day?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the last seven days, have I received recognition or praise for
doing good work?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Does my supervisor, or someone at work, seem to care about me as a
person?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Is there someone at work who encourages my development?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;At work, do my opinions seem to count?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Does the mission/purpose of my company make me feel my job is important?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Are my co-workers committed to doing quality work?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do I have a best friend at work?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the last six months, has someone at work talked to me about my
progress?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This last year, have I had the opportunities at work to learn and grow?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;They are divided into groups, and for most workplaces the bottom needs
to be in place before the higher levels can be achieved.  There is a
good metaphor of mountain climbing and altitude sickness if you go to
high too fast with acclimating:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;They define questions 1-2 as “base camp” (basic fundamentals of a
job).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Questions 3-6 are focused on one’s individual contribution (“camp 1”)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Questions 7-10 are focused on belonging in the workplace (“camp 2)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Questions 11-12 are focused on growth&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It then makes a point that a lot of management consulting and
teambuilding things try to fix the higher levels without making sure
that the bases are in place.&lt;/p&gt;
&lt;p&gt;The other major point that stood out to me was “talent” vs skills and
knowledge.  The book defines &lt;strong&gt;talent&lt;/strong&gt; as something intrinsic about a
person, basically their personality or interests.  &lt;strong&gt;Skills and
knowledge&lt;/strong&gt; can be learned.  The book goes through extensive arguments
why you should accept someone’s talent as they are and not try to
change them, rather than try to force people to doing what they don’t
want.  Basically, treat everyone as an individual and find a way for
all individuals to do they best they can do while meeting your goals,
even if it gets creative.  Don’t try to change people, understand and
adapt to them.  (To think of types of talents, it says there are
striving, thinking, and relating.)&lt;/p&gt;
&lt;p&gt;This seems pretty obvious to me, especially since at one point I
decided “I’m not doing academics, let me adjust to what I’m good at”.
Perhaps when the book was written more than 25 years ago, it was more
novel?&lt;/p&gt;
&lt;p&gt;For selecting employees, it says:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;When selecting someone, they &lt;strong&gt;select for talent&lt;/strong&gt;… not simply
experience, intelligence, or determination.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When setting expectations, they &lt;strong&gt;define the right outcomes&lt;/strong&gt;.  Not
the right steps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When motivating someone, they &lt;strong&gt;focus on strengths&lt;/strong&gt;… not on
weaknesses.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When developing someone, they help [them] &lt;strong&gt;find the right
fit&lt;/strong&gt;… not simply the next rung on the ladder.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is some info on making customers happy, which is also relevant
for my team.  It says on four levels, in hierarchical order:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;&lt;p&gt;Customers expect accuracy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Customers expect availability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Customers expect partnership.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Customers expect advice.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Overall, I’m glad I read the book and think these questions are a good
guide for our team, however, I’m not saying others should read it.  It
was entertaining enough and wasn’t that hard to read, though, and gave
me stuff to think about.  The things above are enough of a reminder
for my future use, even if there isn’t &lt;em&gt;that&lt;/em&gt; much different from what
I try anyway.&lt;/p&gt;
&lt;/section&gt;
</content>
    <link href="https://rkd.zgib.net/blog/2026/book-review-first-break-all-the-rules/"/>
    <summary>I recently read the book First, break all the rules, based
on seeing it referred to in another source.  It is one of these things
about management, and I hoped to learn something that would help me in
my job.  It seemed to be a bit more practical and useful than some
management books, and it was roughly true.</summary>
    <published>2026-04-26T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://rkd.zgib.net/blog/2026/debian-read-only-root/</id>
    <title>Notes on Debian with a read-only root</title>
    <updated>2026-04-12T00:00:00+00:00</updated>
    <author>
      <name>Richard Darst</name>
    </author>
    <content type="html">&lt;section id="notes-on-debian-with-a-read-only-root"&gt;

&lt;p&gt;I run several Raspberry Pis for home servers.  They currently use SD
cards for their root filesystems (the actual data is stored either on
USB disks on NVMe disks), and I wanted a way to preserve the life of
the SD cards.  Can I make them more like an appliance, that just works
and only rarely gets updates, rather than a normal server that’s
always writing to disk.&lt;/p&gt;
&lt;p&gt;This was tested with Debian 13.4 but probably works even for much
older.&lt;/p&gt;
&lt;section id="the-basics"&gt;
&lt;h2&gt;The basics&lt;/h2&gt;
&lt;p&gt;Basically, add &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;ro&lt;/span&gt;&lt;/code&gt; to the mount options for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/&lt;/span&gt;&lt;/code&gt; in &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/etc/fstab&lt;/span&gt;&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight-default notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;PARTUUID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="n"&gt;ad6db44&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;02&lt;/span&gt;  &lt;span class="o"&gt;/&lt;/span&gt;   &lt;span class="n"&gt;ext4&lt;/span&gt;    &lt;span class="n"&gt;defaults&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;discard&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;noatime&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;ro&lt;/span&gt;    &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This worked enough for the computer to boot and me to ssh to it, and
my feeling is it’s hard to get locked out enough that you can’t ssh to it.&lt;/p&gt;
&lt;p&gt;When you need to go to read-write mode, you can &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;mount&lt;/span&gt; &lt;span class="pre"&gt;-o&lt;/span&gt; &lt;span class="pre"&gt;remount,rw&lt;/span&gt;
&lt;span class="pre"&gt;/&lt;/span&gt;&lt;/code&gt;, do what you need (package upgrades, etc.), and then reboot (or
you can try to remount to ro, but it might not work if some files are
open rw).&lt;/p&gt;
&lt;/section&gt;
&lt;section id="stuff-that-automatically-works"&gt;
&lt;h2&gt;Stuff that automatically works&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;The following are automatically mounted as tmpfs by default (among
other things)
* &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/tmp&lt;/span&gt;&lt;/code&gt;
* &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/run&lt;/span&gt;&lt;/code&gt;
* &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/run/lock&lt;/span&gt;&lt;/code&gt;
* &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/var/run&lt;/span&gt;&lt;/code&gt;
* &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/dev/shm&lt;/span&gt;&lt;/code&gt;
* &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/run/user/0&lt;/span&gt;&lt;/code&gt; (per-user tmp)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What is also already set up on a Debian system:&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/etc/mtab&lt;/span&gt;&lt;/code&gt; (a symlink to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/proc/self/mounts&lt;/span&gt;&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;Systemd / journalctl seem to track recent logs in memory, so it just
works as expected (you get logs from the last boot, plus logs that
were written to disk before the logs dir weth read-only).&lt;/p&gt;
&lt;/section&gt;
&lt;section id="things-to-do"&gt;
&lt;h2&gt;Things to do&lt;/h2&gt;
&lt;p&gt;Install &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;resolvconf&lt;/span&gt;&lt;/code&gt; and it will move &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/etc/resolv.conf&lt;/span&gt;&lt;/code&gt; to
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/run/resolvconf/resolv.conf&lt;/span&gt;&lt;/code&gt;.  For certain network tools you need
to configure them, but it seems that for all the default stuff, it
just works.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="samba"&gt;
&lt;h2&gt;Samba&lt;/h2&gt;
&lt;p&gt;A samba server will fail if it can’t open certain directories
read-write.  For some, you can mount a tmpfs there via
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/etc/fstab&lt;/span&gt;&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight-default notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;tmpfs&lt;/span&gt;    &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;samba&lt;/span&gt;         &lt;span class="n"&gt;tmpfs&lt;/span&gt;   &lt;span class="n"&gt;defaults&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt;   &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="n"&gt;tmpfs&lt;/span&gt;    &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;cache&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;samba&lt;/span&gt;       &lt;span class="n"&gt;tmpfs&lt;/span&gt;   &lt;span class="n"&gt;defaults&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt;   &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="n"&gt;tmpfs&lt;/span&gt;    &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;samba&lt;/span&gt;         &lt;span class="n"&gt;tmpfs&lt;/span&gt;   &lt;span class="n"&gt;defaults&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt;   &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="n"&gt;tmpfs&lt;/span&gt;    &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;samba&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;private&lt;/span&gt; &lt;span class="n"&gt;tmpfs&lt;/span&gt;   &lt;span class="n"&gt;defaults&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt;   &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;I don’t know if mounting /var/lib/samba will cause problems long-term,
but in my case, where there is no client state needed, it seems to
work.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="nginx"&gt;
&lt;h2&gt;Nginx&lt;/h2&gt;
&lt;p&gt;We need to make it able to open logs.  In &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/etc/fstab&lt;/span&gt;&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight-default notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;tmpfs&lt;/span&gt;    &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;nginx&lt;/span&gt;          &lt;span class="n"&gt;tmpfs&lt;/span&gt;   &lt;span class="n"&gt;defaults&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt;   &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This would need checking to see if we run out of space for the logs,
but hopefully logrotate works frequently enough.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="docker"&gt;
&lt;h2&gt;Docker&lt;/h2&gt;
&lt;p&gt;I have already moved &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/var/lib/docker/&lt;/span&gt;&lt;/code&gt; away from the SD card to a
NVMe disk on the system.  Docker didn’t need anything else, but
containerd needed something mounted to be able to start.  In
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;/etc/fstab&lt;/span&gt;&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight-default notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;tmpfs&lt;/span&gt;    &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;containerd&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;    &lt;span class="n"&gt;tmpfs&lt;/span&gt;   &lt;span class="n"&gt;defaults&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt;   &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://rkd.zgib.net/blog/2026/debian-read-only-root/"/>
    <summary>I run several Raspberry Pis for home servers.  They currently use SD
cards for their root filesystems (the actual data is stored either on
USB disks on NVMe disks), and I wanted a way to preserve the life of
the SD cards.  Can I make them more like an appliance, that just works
and only rarely gets updates, rather than a normal server that’s
always writing to disk.</summary>
    <published>2026-04-12T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://rkd.zgib.net/blog/2026/it-department-manifesto/</id>
    <title>Manifesto on university IT departments</title>
    <updated>2026-03-10T00:00:00+00:00</updated>
    <author>
      <name>Richard Darst</name>
    </author>
    <content type="html">&lt;section id="manifesto-on-university-it-departments"&gt;

&lt;p&gt;&lt;em&gt;Alternative title: Challenging patterns with university IT for research&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This was written in 2025 and first publicly read on 12 June 2025.
It’s now being released publicly.&lt;/p&gt;
&lt;p&gt;BEGIN MANIFESTO&lt;/p&gt;
&lt;p&gt;In my travels, I’ve met many people and seen one pattern: at every
university, people are upset at their (central university) IT
departments.  Why is this?  I’ll argue it isn’t because of the
people: individually, at my university, all the people I know in our
IT Services unit are quite competent and motivated.&lt;/p&gt;
&lt;p&gt;I think the problem goes deeper.  Organizations have learned that IT
can become just as chaotic and unmanageable as any physical objects
can be.  Enterprise IT has adapted to treat IT like any other
infrastructure: make sure it is stable, secure, and efficient over
long-term.  Since IT is so critical and not simply something to be
thrown away if it goes wrong, IT departments must make sure that
nothing goes wrong.&lt;/p&gt;
&lt;p&gt;Some research just needs reliable and normal IT tools to do their
work, since their work isn’t about the computing.  For them, an IT
department is just what they need - it’s a basic infrastructure
department like plumbing or electricity.&lt;/p&gt;
&lt;p&gt;But for those of us for whom the computing/data/software IS the
research, it’s different.  By definition, we move fast and break
things, and for us, it’s the IT stuff we are pushing against.  For any
impactful thing we discover, we’ve iterated through many wrong paths
along the way.  By definition, we do many things wrong all the time.
We are collectively trying to enable “radical creativity” and “game
changing” using IT departments which are designed to make sure that
there is no risk of anything going wrong.  Imagine every architecture
student needing to go through city planning permission to make a model
building for a student project - it’s just not appropriate given what
the project is and the risk to society!  This is what’s I think is
wrong with institutional IT departments: it’s not designed for the
purpose for which we are using it.  It’s infrastructure, not research
support.&lt;/p&gt;
&lt;p&gt;This doesn’t work, and in fact produces the very outcome we so much
want to avoid - a bunch of researchers going wild without control,
since they have learned that asking for help doesn’t actually help.
We want our IT related research to be secure and well managed.  But we
are trying to make that happen by a department which is working on a
whole other level, one that hardly shares the same language with the
researchers who so desperately need help.  The result?  The
researchers (either more actively or passively) ignore the IT
department and do their own thing.  If you had a fixed deadline for
graduating, finding your next job, or being promoted, would you not
also do the same?&lt;/p&gt;
&lt;p&gt;Said another way, research computing is not an IT system.  Maybe
technically it is, but, it is fundamentally different.  An IT system
processes data.  A research system is a tool for a researcher who is
the prime processor.  You can spend all the time you want trying to
make the system perfect and compliant, but in the end, it’s for
naught, since you’ve evaluated the system, and not the use of the
system.&lt;/p&gt;
&lt;p&gt;So what to do?  It’s not a problem with the IT departments.  It’s not
a problem with the people within them.  They are good at what they are
supposed to do.  It’s a problem with how they are being used.  We need
to recognize that an enterprise IT department is a reliable base to
build on, not a research support unit.  Our management needs to
properly separate the concerns of basic IT infrastructure and research
support.  Some do this by separate departments such as “research
computing” or a “computing center”.  If they are included in the same
unit, there needs to be proper firewalling of the different concerns.
If they must stay the same, we need managements who will provide a
better mission for IT departments, and IT department leadership with
the vision to handle both halves at the same time.&lt;/p&gt;
&lt;p&gt;We’ve built the worst of both worlds: computational researchers who
aren’t supported, and IT research that isn’t controlled or secure.  We
can do better.  In the current world, we have to do better.&lt;/p&gt;
&lt;p&gt;END MANIFESTO&lt;/p&gt;
&lt;/section&gt;
</content>
    <link href="https://rkd.zgib.net/blog/2026/it-department-manifesto/"/>
    <summary>Alternative title: Challenging patterns with university IT for research</summary>
    <published>2026-03-10T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://rkd.zgib.net/blog/2025/systemantics/</id>
    <title>Book review: Systemantics</title>
    <updated>2025-12-15T00:00:00+00:00</updated>
    <author>
      <name>Richard Darst</name>
    </author>
    <content type="html">&lt;section id="book-review-systemantics"&gt;

&lt;p&gt;I read the book &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Systemantics"&gt;Systemantics&lt;/a&gt; by John Gall.  I saw
some reference to it from another book, and Systemantics was short, so
I figured why not.  In the end, I’m glad I did - while it’s not
scientific book, it’s given me a way to put various problems into
words, which will probably be useful.&lt;/p&gt;
&lt;p&gt;The Wikipedia page linked above describes the basic contents pretty
well, so I won’t try to give a very long summary of the contents here
and instead focus on what I got from it.&lt;/p&gt;
&lt;section id="summary"&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;The book is basically about “&lt;a class="reference external" href="https://en.wikipedia.org/wiki/System"&gt;systems&lt;/a&gt;”, as in collections of
interacting elements - in particular ones of humans working together.
Think bureaucracies, recruitment processes, supply chains, etc.  You’d
think that making a good process (= “system”) to handle something is
easy: make the process, apply the process.  But in reality almost
everything is strongly interacting with other things, and what works
in theory almost never works in practice.  There are plenty of
anecdotes, stories, and philosophies about things.&lt;/p&gt;
&lt;p&gt;Some of the more important points include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;A working big system has always grow out of a working small system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can’t just transplant a working big system from one place to
another.  You can’t really fix up a non-working complex system, you
have to start over.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Systems always grow, and when a system gets too big it always starts
to fail simply because of how complex things get when many parts
interact.  (Just think of how many sayings we have about things not
working, such as Murphy’s Law.  It’s almost like in life, we expect
things to not work by default.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Any changes tend to have unintended side-effects&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“Do it without a system if you can”, then “do it with an existing
system if you can”, then “do it with a small system if you can”.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="thoughts-on-the-book"&gt;
&lt;h2&gt;Thoughts on the book&lt;/h2&gt;
&lt;p&gt;The first thing that became apparent was this book doesn’t take itself
too seriously - it’s full of humor and almost sarcastic at times.
Still, it makes you think in a way that is useful, just as a reader
you need to apply plenty of your own thinking.&lt;/p&gt;
&lt;p&gt;One of my most memorial examples of this hyperbole is about ships and
logistics.  The book gives an example of how global shipping has grown
out of control, until the engineers, in their quest to expand the
system, have apparently forgotten that ships need to go into harbors,
and the latest large oil tankers are too large and must be loaded and
unloaded offshore.  Well, sure, ships grew too large, but the system
adapted because this is more efficient.  It wasn’t somehow forgotten.
(Still, the purpose of the example is make you think about things
growing without bound.)&lt;/p&gt;
&lt;p&gt;If you can use a critical mind and look through this, you can see
various insights into human behavior.  I probably say it isn’t
goundbreaking, and it isn’t original research, but reading it will
help me to put thoughts into words, which will help me in my
communication later on.&lt;/p&gt;
&lt;p&gt;There are definitely connections to the book I read “The Innovation
Delusion” which has the main hypothesis that people like making new
things, but very rarely there is value of keeping existing good things
going.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="relevance-to-my-work"&gt;
&lt;h2&gt;Relevance to my work&lt;/h2&gt;
&lt;p&gt;I work in a university that’s relatively new - it was merged from
parts that are much older, but many of the processes being made are
new.  Those parts are being made in a more complex regulatory
environment with greater demands both on the community and from
society.  That means we are trying to make many new complex systems.&lt;/p&gt;
&lt;p&gt;In short, there are plenty of times research has to do something new:
new laws or needs require something else (personal data protection,
security, research ethics, etc.).  What happens each time at my
university?  Let’s make a new process to deal with it!  We end up with
many parallel processes (systems) trying to do the same thing.  Quite
often, lots of work is put into them, and most of the community
doesn’t even know about it (despite the community taking part being critical).&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;We shouldn’t try to make things perfect at the start.  Start small
and grow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We should accept imperfection if it means systems are more loosely
connected, it’s less bad than strongly connected complex systems
which probably won’t work anyway.  There’s an opportunity to grow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Start small and usable and slowly grow to be better.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use existing good processes and slowly expand them to cover more use
cases, when the purposes are close enough.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://rkd.zgib.net/blog/2025/systemantics/"/>
    <summary>I read the book Systemantics by John Gall.  I saw
some reference to it from another book, and Systemantics was short, so
I figured why not.  In the end, I’m glad I did - while it’s not
scientific book, it’s given me a way to put various problems into
words, which will probably be useful.</summary>
    <published>2025-12-15T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://rkd.zgib.net/blog/rse-lessons-from-civil-engineering/</id>
    <title>RSE lessons from Civil Engineering</title>
    <updated>2025-07-31T00:00:00+00:00</updated>
    <author>
      <name>Richard Darst</name>
    </author>
    <content type="html">&lt;section id="rse-lessons-from-civil-engineering"&gt;

&lt;p&gt;I have had a long-running metaphor of {academic researchers, research
software engineers} being like {architects, structural engineers}.
The basic idea is that coming up with interesting and worthwhile
ideas/designs is a distinct field from giving ideas “structural
integrity” (=reproduciblity and technical rigor).&lt;/p&gt;
&lt;p&gt;I’ve been thinking of this metaphor a lot, and decide to learn more.
Thus, I read the book &lt;a class="reference external" href="https://search.worldcat.org/title/716208794"&gt;Civil engineer’s handbook of professional
practice&lt;/a&gt;, by Karen
Lee Hansen and Kent Zenobia (2011, first edition) (but there is a
second edition).  I expected for the book to give me various insights
that could be useful for developing a team of research engineers.  It
was about 500 pages, so not exactly recommended reading for others,
but I certainly got very many insights and am glad I read it.&lt;/p&gt;
&lt;p&gt;Below, I quickly summarize each chapter, say any particularly
interesting things I learned, and &lt;strong&gt;in bold tell any recommendations
to our team&lt;/strong&gt; based on the chapter contents.&lt;/p&gt;
&lt;section id="introduction"&gt;
&lt;h2&gt;1 Introduction&lt;/h2&gt;
&lt;p&gt;This chapter talks about the goals of the book and the education of
engineers in general.  For example, it talks about how accrediting
organizations for universities have tried to define what should be
part of various curriculum at different levels: bachelors (4-year
degree) level, masters, and professional experience.  These can be
defined in terms of Blooms Taxonomy levels, for example.&lt;/p&gt;
&lt;p&gt;My main take-aways are about how there are people who think about the
skills which should be learned, a lot like some people have tried to
define RSE training programs.  The most notable thing for me is how
plenty of the skills are only learned by professional experience after
graduation.  Somehow, this matches with my feeling: I don’t have a
direct desire to make a RSE undergraduate curriculum, but people can
learn basic skills of computational science during a variety of
undergraduate curricula.  I am currently more focused on the practical
training after becoming a computational researcher or starting a RSE
job.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I would now want to be more involved in RSE curriculum learning
goals, but not too much.  This chapter gave me lots of inspiration for
how to onboard future research engineers to our team, especially those
who join at a more junior level than our current staff.  I think the
hardest part isn’t so much about basic skills, but how to work in a
team to whose mission is supporting science.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="background-and-history-of-the-profession"&gt;
&lt;h2&gt;2 Background and History of the Profession&lt;/h2&gt;
&lt;p&gt;This chapter gives a history of civil engineering.  “Civil” originally
meant as opposed to military, though now it means construction.
Before modern times, there wasn’t a distinction between architects and
engineers, or military and civil engineers.  There were just engineers
who did it all.  The engineering profession came about because
construction became more complex during the industrial revolution -
more specialization was needed.  There is a lesson for RSEs here:
computational science has become that complex that everything a person
needs can’t be included in every undergraduate program.&lt;/p&gt;
&lt;p&gt;The book mentions how the earliest engineering projects in Mesopotamia
don’t survive, because they didn’t have many stones, or fuel for
firing bricks, that could create long-lasting structures.  There’s a
metaphor to research software which is lost to time because it wasn’t
made sustainable enough because the developers didn’t use the right
tools.&lt;/p&gt;
&lt;p&gt;These days, there is advanced engineering education with a strong
scientific basis and many career paths.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This section makes me feel good about my architects vs engineers
metaphor and gives me some new ideas to add to the metaphor.  We
should emphasize that advancing technology means that more career
specialization is needed.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="ethics"&gt;
&lt;h2&gt;3 Ethics&lt;/h2&gt;
&lt;p&gt;Engineering ethics is important because bad engineering can harm
society.  (I forget which chapter I read it in, but somewhere in this
book it mentioned how in ancient times, if an engineering work killed
or harmed someone, the engineer would be killed or harmed similarly.
That’s some real pressure to get it right.)  Different professional
organizations have their own codes of ethics.  They are divided to
fundamental principles (fundamental doctrines) and fundamental canons
(broad principles of conduct).  Common things they include are
integrity, impartiality, fairness, corruption.&lt;/p&gt;
&lt;p&gt;This chapter also talks about licensing some (getting a license to
practice and sign off on projects as the ultimate guarantor).  Imagine
if academia was so tightly controlled that a professional in research
integrity had to personally sign off on the scientific rigor and
reproduciblity on each scientific output (under the actual threat of
damage and investigation).  Considering the reproduciblity crisis,
this is a huge gap between the expected rigor of civil engineering and
academic publishing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It’s appealing to think of formalizing a RSE code of ethics,
licensing, and signing off on results.  In practice, though, I think
the harm we can do is much smaller and we can’t justify being as
strict - the risk reduction isn’t worth the slowdown.  Academia has
plenty of ethical issues, and those should be addressed within
academia first (not as a separate RSE solution).&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="professional-engagement"&gt;
&lt;h2&gt;4 Professional Engagement&lt;/h2&gt;
&lt;p&gt;A lot of this chapter is about defining work and negotiating
contracts, and different forms of project organization: for example,
is the designer the same as the builder?  Are they part of the same
contract or different contracts?  What are the different cost
structures and selection criteria?&lt;/p&gt;
&lt;p&gt;There’s a good lesson here about design-bid-build (designing and
building done by separate parties with separate agreements with the
owner) vs design-build (one organization designs and builds).  There
are plenty of places in science support where one organization gives
advice (for free) on how to do something, but doesn’t help to do the
actual task.  This is like design-bid-build and the “builders” (either
within the original research group, someone they hire, or RSEs) may
not be in a good position to implement that advice independently.
&lt;em&gt;Our RSE team is more like design-build: we give advice, and we can
implement it.&lt;/em&gt; The outcome is much better overall.&lt;/p&gt;
&lt;p&gt;There’s plenty about writing proposals (key points: don’t forget to
understand the problem, client requirements, alternatives, and other
assistance) and contracts.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In our team, we could spend more time at the beginning of projects
making sure that the scope of work and expected final state is well
understood at the beginning - some of our projects are ad-hoc now, often
diving in without fully understanding the results.  We shouldn’t
become too strict, though: unlike civil engineering, research needs
to be far more agile.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;We should learn how to write a better project plan (to confirm with
the customer) that is also as short and has the least waste.  Learn
how to narrow down to the customer’s goals more quickly (which is
harder for us since computing is much more diverse in tools than civil
engineering).&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="the-engineer-s-role-in-project-development"&gt;
&lt;h2&gt;5 The Engineer’s Role in Project Development&lt;/h2&gt;
&lt;p&gt;This chapter talks about how the client, architects, civil engineers,
and contractors (builders) relate.  Design is split into schematic
design (the broad details and vision), design development (making it
more concrete), and finally construction documents (what a contractor
can build).  A collaborative design process (client, architect,
engineer) is very important.&lt;/p&gt;
&lt;p&gt;The predesign process results in a “Statement of need”, which allows
the client to internally approve the project to go forward.  This
states the problem, but not the solution.  The sooner the needs are
known, the more efficient the project will be.  Coming up with the
statement of need is itself an art and requires a detailed
understanding of the clients needs and application of engineering
thinking.  &lt;em&gt;The engineers give the statement of need, as the have
developed it, back to the client.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The design phase has various checkpoints different fractions of the
way through.  Engineers can help the owner during the bid phase, help
supervise construction, and can help prepare operations and
maintenance plans.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A good thing about our RSE team is that we know the people we serve.
We can easily know what people need (even if they don’t know) without
an excessive amount of preparation, and work agile-y from there.  We
could do better about clarifying the statements of needs before we go
off and start working, though.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="what-engineers-deliver"&gt;
&lt;h2&gt;6 What Engineers Deliver&lt;/h2&gt;
&lt;p&gt;This chapter talks about the end product of engineering work.  Unlike
in our RSE team, where we build things ourselves, in civil engineering
the engineer usually delivers design documents, which someone else
(the contractor) will build.  Of course, there is engineering
supervision during the building and so on.  The end result of the
engineering work is various contract documents, such as drawing,
technical specifications, modifications to these, etc.  Not a
building.&lt;/p&gt;
&lt;p&gt;Mostly, this chapter is too specific to apply to us, so I won’t go
into details.  Most of our projects don’t have a separate engineering
and building phase, and we don’t have extensive design document
deliverables.  (We work in the design-build system, where we directly
implement the end product.  And our software projects are usually
small enough and agile enough that we don’t make extensive design
documents, for better or for worse.)&lt;/p&gt;
&lt;p&gt;However, it’s worth pointing out that a construction (design) isn’t
the only thing that engineers deliver.  They can deliver reports,
calculations, help with permitting, consulting to an owner about
dealing with other engineers/contractors, and more.  These are all
things that we as RSEs can do.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;We should keep in mind that RSEs can deliver more than just
software.  Projects and research have many components, and engineers
can help with all of them.  We can especially help with engineering
thinking during permitting, proposals, coming up with research
possibilities, and even sometimes analysis.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="executing-a-professional-commissionproject-management"&gt;
&lt;h2&gt;7 Executing a Professional Commission—Project Management&lt;/h2&gt;
&lt;p&gt;This chapter is about project management.  Why do projects need
management?  Because they can get so complex.  There’s a good 2D
typology of {assembly, system, array} vs {low-tech, medium-tech,
high-tech, and super-high-tech}.  The first axis is for how complex
hierarchically the thing is, the second axis defines how available and
proven it is.  The higher up the axes, the more likely it is to need
dedicated coordination.  Projects are getting more about diverse
things working together in complex manners, instead of simple
breakdowns to various specialists.&lt;/p&gt;
&lt;p&gt;What’s a project?  Something to accomplish a goal in a fixed time
period (otherwise it’s operations).  The project triangle is scope,
budget, schedule.  It’s a trade-off between them and all three have to
be part of the negotiation with the client.&lt;/p&gt;
&lt;p&gt;Who works on projects?  The owner (client), designer (decides what to
do), and builder (does it).  Often times other organizations give
advice on design without helping with the building. In a team, if’s
the same project, all must work for the same customer and goal.  In
most of our RSE projects, the designer and builder are the same, but
we do often help come up with an idea and leave it to the owner to
build it themselves (“help you do it”).&lt;/p&gt;
&lt;p&gt;Projects have phases.  In civil engineering projects, the phases
include definition (predesign, 10% design), design phase (schematic
design, design development, construction documents), 100% design,
release to construction.  Each of these has a checkpoint where the
design should be reviewed with the owner (and presumably others
internally) to make sure it’s on the right track.&lt;/p&gt;
&lt;p&gt;Estimates are very important.  Estimates should be made as soon as
possible but will be refined over time.  Make sure to update them.
Prevent surprises.&lt;/p&gt;
&lt;p&gt;A project management plan outlines how the project will be organized,
how everyone works together, and a whole lot of other important
reference information.  It’s important to have all this reference
information in one place to keep everyone on the same page.&lt;/p&gt;
&lt;p&gt;The role of a project manager is to basically take ultimate
responsibility for everything: ensure the project is done correctly,
ethically, client relationship, finance, business development, etc.
There is also a design leader who is responsible for the actual work
(who can be different from the project manager).&lt;/p&gt;
&lt;p&gt;There is various discussion about tracking the progress of projects,
but for us RSEs we have good systems using repository hosting services
so I won’t go into that.&lt;/p&gt;
&lt;p&gt;Risk needs to be managed within projects: at least mentioned and
acknowledged, preferably allocated to the different parties.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Realistically, most of our projects are too small to need a project
manager for their day-to-day work: there may be one RSE working, with
one or a few academics.  If a single project needs a dedicated
manager, it’s probably of the academic side of the work.  At our size,
I manage the team itself, and I think the RSE staff can mostly the
work within the projects (more or less independently).  However, there
are many considerations which we can learn from, such as structuring
the various phases with checkpoints and having a written management
plan that also discusses how the project itself works.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The {scope, budget, schedule} triangle, risks, and project
management plan should more frequently be discussed at the start of
our projects.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="permitting"&gt;
&lt;h2&gt;8 Permitting&lt;/h2&gt;
&lt;p&gt;This chapter is about environmental permitting.  It talks about how
engineers dislike the process, think they know better and should be
independent, and on top of that have little training in managing
permitting.  Sound like academics?  A lot of the advice applies to
academia too.&lt;/p&gt;
&lt;p&gt;Accept that permits exist for a reason (before them, there was
widespread societal harm).  Respect the agency staff implementing
permits: they are professionals and usually engineers.  If you do your
research first, understand the requirements, read the instructions,
etc. it will be much faster.  Initiate the permit process early.  Make
permits a first-order task, not a backend process (dedicated
permitting managers, consider permits from the bidding phase, engage
with the agencies, etc.).&lt;/p&gt;
&lt;p&gt;To streamline permits, 1) prepare a combined project description with
all the basic information, which can be reused among each permit.  2)
don’t skip step one.  3) Use this in each application.  This also
forces the advance planning, and it’s OK if the project description
get updated.&lt;/p&gt;
&lt;p&gt;However, I do have thoughts about this and our university’s processes.
There are different aspects of “permits” in academics (ethics,
security, etc.), and all the processes are created internally, and
still you have to go repeating things over and over again for every
single form.  The “one combined project description” strategy doesn’t
work.  Also, the ideal situation of “permit staff are experienced
engineers” isn’t as true within our university environment (see
below).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Our university should consider how to unify processes so that
materials can be reused much more than they can now (in line with the
recommendation of a unified project description for all permits).
Right now, there are many different processes, not unified and with a
lot of repeat work.  Also, unlike the description of agency staff
being experienced engineers, in our university the staff are often
lawyers or similar, thus they can’t engage with advising on the actual
research projects.  If we hired more former academics/researchers to
be involved in permitting, it could go much more smoothly.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="the-client-relationship-and-business-development"&gt;
&lt;h2&gt;9 The Client Relationship and Business Development&lt;/h2&gt;
&lt;p&gt;This chapter is about building relationships with clients and getting
work.  Engineering consulting firms are always looking for clients,
but luckily our RSE team is an internal team thus we have built-in
customers and funding.  Still, we need to keep our customers (academic
researcher) happy so they come back and give us good word-of-mouth
references.&lt;/p&gt;
&lt;p&gt;The relationship is built on trust and commitment.  It’s mediated by
communication.  That should result in understanding what the customer
needs, meeting their needs (scope/budget/schedule triangle) with
quality.  And this should be done with ethics and integrity.  It’s
important to manage client expectations and not promise too much.&lt;/p&gt;
&lt;p&gt;It’s important to keep customers: easier to keep happy customers than
to find new ones.  However, you should also be careful about what
customers you choose: make sure you choose ones that match what you
can do and set the expectations well.  Networking, volunteering, and
other engagement helps to find customers.&lt;/p&gt;
&lt;p&gt;Then there’s business development, which is the work needed to find
new business.  All employees do this to some degree, but it larger
companies there may be some dedicated to it.  You find leads, do
background research, decide if you want to bid, and prepare the bid,
and hopefully get selected.  Coming back to the beginning, since we
are an internal team, we are often selected by default since we are
“free” or “at-cost”.  But we shouldn’t forget the work needed to
maintaining these customer relationships.&lt;/p&gt;
&lt;p&gt;Conflict management with customers: collaboration, compromise,
co-existence, capitulation.&lt;/p&gt;
&lt;p&gt;Our team is viewed excellently by our customers, but we cheat since we
work for free or below-cost as part of research support.  &lt;strong&gt;Still, we
should all keep in mind the customer relationships.  We could be a bit
more picky about projects and make sure the expectations are set at
the beginning and not promise too much.  We should engage with the
broader scientific and user community to make scientific computing and
our services better known (rather than focus only on direct
marketing).&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="leadership"&gt;
&lt;h2&gt;10 Leadership&lt;/h2&gt;
&lt;p&gt;This chapter was a bit more about business leadership, rather than
project management discussed earlier.  This proposes that leadership
quadrants are (business strategy) (business economics), (technology),
and (public affairs/marketing).  Leaders plan, organize, lead, and
control.  Plenty more has been written about leadership outside of
this book and I don’t think there’s much more insight here.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;As our team gets bigger, I need to think more about how it’s led and
how I can make sure everyone can have their voices heard.  I think
I’ve been doing better here lately, and think that many of these broad
visions things will occupy the next months or years of my time.  We
can start thinking of different types of leaders within the team.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="legal-aspects-of-professional-practice"&gt;
&lt;h2&gt;11 Legal Aspects of Professional Practice&lt;/h2&gt;
&lt;p&gt;This chapter goes into details about the effects the legal system has
on professional engineers.  We are fortunate to not have to worry
about that too much, being focused on research with less stakes.&lt;/p&gt;
&lt;p&gt;There are some good thoughts about concepts such as negligence,
liability and warranties.&lt;/p&gt;
&lt;p&gt;It talks a lot about engineering contracts and problematic contract
terms.  It also talks about the main contract types, design-bid-build
and design-build, but there are even more (consultant to the client
separate from separate designer/builder, multiple prime, construction
manager, etc).  Then different types of contract, fixed price, cost
reimbursable, etc.&lt;/p&gt;
&lt;p&gt;Then there is risk management.  You want good notes on everything to
prevent “you never said that…” situations.  One particular point is
that it’s good to think about risk allocation (who bears the risk)
before you start, and it’s usually best that risk is borne by those
most able to minimize it or be aware of it.  Then a bit about
insurance.  Then there’s stuff about dispute resolution (litigation,
alternative dispute resolution).  Then anti-discrimination laws.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;We are fortunate that we work within one organization, so that we
don’t have to deal with most of these legal aspects.  However, there
are good lessons about keeping good notes (which can help conflict
resolution later) and risk management (make sure it’s discussed).
Finally, it’s worth thinking about the (internal) formal
relationships: are we design-build.  Or design-consult?  Or is it a
multi-party relationship?  This sets the expectations.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="managing-the-civil-engineering-enterprise"&gt;
&lt;h2&gt;12 Managing the Civil Engineering Enterprise&lt;/h2&gt;
&lt;p&gt;This chapter is about finances.  In addition to asking “can we do
it?”, engineering firms should ask “should we do it?” with a go/no-go
decision process.  This can ask how well the work is understood,
client’s expectations, degree of profitability, and risk factors.&lt;/p&gt;
&lt;p&gt;There is plenty about costs of labor, overheads, multiplies, financial
reporting.&lt;/p&gt;
&lt;p&gt;It also talks about human resources: who’s available for what
projects?   What’s their costs?  What’s their career path and targets?&lt;/p&gt;
&lt;p&gt;Then there is business development: finding clients and all, which
includes marketing and being involved in the community.&lt;/p&gt;
&lt;p&gt;Our team is fortunate to not have to worry about per-project profit,
since we are also paid to maintain overall research quality.
&lt;strong&gt;However, I think a “go/no-go decision” would be useful to us as a
way to make sure we understand everything before we dive in (even if
we always want to give some sort of “go”, even if it’s smaller than
requested).  And outreach doesn’t have to just be marketing for
clients but can be general engagement with the community.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="communicating-as-a-professional-engineer"&gt;
&lt;h2&gt;13 Communicating as a Professional Engineer&lt;/h2&gt;
&lt;p&gt;The chapter starts with a good general rule: “no surprises!”.&lt;/p&gt;
&lt;p&gt;Communication isn’t just sending a message, but the reception and
understanding.  When communication is important, the sender should ask
for an acknowledgment (preferably including a summary as they
understand it).  When things are important (for example, spending huge
amounts to construct something), there is no room for mistake, and it
is the engineer’s responsibility (not the client) to make sure that
communication goes through.  Don’t forget the importance of
nonverbal/nonwritten communication (tone of voice, body language,
etc.)  Efficient communication is needed to stay profitable (it saves
time and improves the work).&lt;/p&gt;
&lt;p&gt;It talks about how to use email.  I guess since the book was written,
this is now much more known, but there are some good points: be clean,
In the last 12 years this is sort of taken for granted.  Use good
subject lines.&lt;/p&gt;
&lt;p&gt;Conflict resolution was also included here.  Conflict resolution
strategies include collaboration, compromise, coexistence, and
capitulation.&lt;/p&gt;
&lt;p&gt;It then talks about report formats and so on.  As described in
previous sections, engineers have to produce lots of proposals,
responses to proposals, plans, etc. that aren’t in use by our team.
In some ways, that’s good for us, but there are some places where
better writing and planning could help us.  It’s good to make sure to
include executive summaries at the beginning and recommendations at
the end of each document (most people don’t have time to dig through
to find this or figure out what’s going on).&lt;/p&gt;
&lt;p&gt;One thing that struck me is how formal engineering communication can
be (with the idea that, you have to be very sure that you don’t get
miscommunication or people remembering things differently).  For
example, it showed example of “phone call” and “meeting” forms, to
easily make written records of verbal interactions.  This can prevent
surprises later.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I think communication should be one of our focus points.  With
users, we should make sure there are good records of what we discuss
and the plans we make.  We now have simultaneously editable web
documents, which is extremely powerful compared to 2011, and we should
use this more for project communication.  We should remember that time
is limited and communication needs to be clear and direct.  These
days, when I send emails, I always start with what I’m asking, and
then go into background.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Having “meeting record forms” is overkill, but I do think there are
some good lessons about being more clear in our communication with our
users.  Perhaps we can better use the online docs and continually add
notes of each meeting/interaction there.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I have lots of other thoughts on communication from my other interest
in learning about accidents, but I’ll talk about those elsewhere.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="having-a-life"&gt;
&lt;h2&gt;14 Having a Life&lt;/h2&gt;
&lt;p&gt;This chapter talked about work-life balance.  One example it gave is
that someone observed that, of their company’s executives, most were
divorced and hand to pay more than half their salaries to their former
partners.  The executives’ take-home salary was less than a starting
engineer.  The point is, maintain work life balance, avoid burnout,
etc. or else you will pay far more later.&lt;/p&gt;
&lt;p&gt;It gives the key components as mind, body (eat, sleep, exercise), and
spirit (feelings and thoughts).  For the mind, it’s important to
manage stress properly.&lt;/p&gt;
&lt;p&gt;I’m happy with how our team works together so that everyone can
disconnect during vacation and work the right number of hours, but of
course a lot of that is Finnish working culture.  (I was entertained
by the irony that as I was reading this chapter, I was technically on
vacation.)  The academic system doesn’t contribute to work-life
balance, and I hope that better RSE support of academics will help the
burn-out problem some, by making the work less overwhelming for
individuals.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;One of the best parts of our team is we get academic-quality people
but provide a much better work-life balance.  We should make sure this
balance continues in the future, and properly manage projects to
prevent them from affecting our lives.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="globalization"&gt;
&lt;h2&gt;15 Globalization&lt;/h2&gt;
&lt;p&gt;Globalization is the reduction of barriers of mobility of goods,
capital, services, and labor.  It’s more than just mobility: it is
mobility, simultaneity (things are available everywhere at once with
less time lag), bypass (multiple choices and being able to bypass
current structures), pluralism (not just one center dominating
things).&lt;/p&gt;
&lt;p&gt;Interestingly, this chapter is the one that talks about the effects of
climate change (with the next being more about lifecycle cost
analysis).  Among many things that don’t need to be restarted here, it
talks about how better project management and teamwork will be needed
to survive in the 21st century.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I don’t have any clever take-aways for us from this chapter.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="sustainability"&gt;
&lt;h2&gt;16 Sustainability&lt;/h2&gt;
&lt;p&gt;I guess compared to 2011, we now think much more about sustainability.
Many things in this chapter are now well-known, or at least you
probably won’t get much benefit from me repeating them.  Most of the
chapter is about design for sustainability.&lt;/p&gt;
&lt;p&gt;It estimates that construction costs can be 5-15% of a facility’s
lifecycle cost, design 1%, and operations and renovations most of the
rest.  Better design is the best way to reduce overall cost (and
environmental impact).  Likewise for software, more work at the
beginning can result in something much more usable later.  Systems
thinking is needed to improve sustainability.  Lifecycle costs
analysis include design/construction cost, maintenance costs, and
residual value at the end of the study period.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RSE already uses software sustainability as a marketing point.  We
shouldn’t forget this when talking about our benefits.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="emerging-technologies"&gt;
&lt;h2&gt;17 Emerging Technologies&lt;/h2&gt;
&lt;p&gt;This chapter isn’t just about new technology, but how the way
technology and all interacts is getting more complicated itself.  How
it’s going from “individual processes computerized/automated” to
“whole systems computerized/automated”.  A lot of this is about data
exchange between systems and having a complete, up-to-date, view of
the designs and projects.&lt;/p&gt;
&lt;p&gt;Another thing it talks about is “integrated project delivery”,
basically different teams working together more closely than
otherwise.  Instead of relationships defined by contracts and
responsibilities, a combined team is formed.&lt;/p&gt;
&lt;p&gt;It concludes a bit thinking about “engineering thinking”: how to use
knowledge to make new innovation, and how new innovation makes more
new things possible.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Our RSE team by definition is often helping others be on the
forefront of emerging technology, and we are often thinking about how
we should adapt to the next thing.&lt;/strong&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://rkd.zgib.net/blog/rse-lessons-from-civil-engineering/"/>
    <summary>I have had a long-running metaphor of {academic researchers, research
software engineers} being like {architects, structural engineers}.
The basic idea is that coming up with interesting and worthwhile
ideas/designs is a distinct field from giving ideas “structural
integrity” (=reproduciblity and technical rigor).</summary>
    <category term="rse" label="rse"/>
    <published>2025-07-31T00:00:00+00:00</published>
  </entry>
</feed>
