Ruinous Writing

Ruinous Writing—Read at your own peril.

I was trying to get Gitea to sign my initial commits, merges, and everything else not done directly by a user and ran into some frustration with the documentation. Here's how I solved it for my docker-compose setup, YMMV.

I created a git user on my machine, and passed through the .ssh directory as outlined [here].

su - git
gpg --generate-key

I kept getting permission denied errors when trying to finalize the key, apparently gpg will prompt you for a passphrase and the tty permissions do not allow it. I was able to run the commands inside of tmux, and everything worked just fine.

WARNING I skipped setting a passphrase because I wasn't sure how to make Gitea unlock the gpg key inside of docker. If anyone knows how to do this correctly, please let me know.

After I had the key, I needed to mount the .gnupg directory inside my docker container

version: "3"

services:
  server:
    image: gitea/gitea:latest
    environment:
      - USER_UID=1000
      - USER_GID=1000
    restart: unless-stopped
    volumes:
      - /opt/gitea/data:/data
      - /home/git/.ssh:/data/git/.ssh
      - /home/git/.gnupg:/data/git/.gnupg
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "127.0.0.1:3300:3000"
      - "127.0.0.1:2222:22"

After all that was set, I needed to edit my app.ini file. (located in /opt/gitea/data/gitea/conf/app.ini on my local system).

[repository.signing]
SIGNING_KEY = X8A0091299678863B5A2CBF3E478FEC0EA152FE5
SIGNING_NAME = Some Name
SIGNING_EMAIL = [email protected]
INITIAL_COMMIT = always
CRUD_ACTIONS = pubkey, twofa, parentsigned
WIKI = never
MERGES = pubkey, twofa, basesigned, commitssigned

The signing key is the key id that you just generated. You can get the keyid by running gpg --list-keys. Put that key id into the SIGNING_KEY field, and then be sure to set SIGNING_NAME and SIGNING_EMAIL.

I restarted my docker containers, and voila, I had fully signed repos from initial commit, to all merged pull requests.

— © 2022 [email protected]

I need to communicate better with my team. I created a framework to help myself. Introducing the DUH Framework. See the Github repo iamruinous/duh for the most up to date version.


DUH Framework – Communicate Better, duh.

Version 1.0.0

I commit myself to using a simple, action-oriented, framework to better communicate with my team.

During the process of doing work, what I am doing will change, and I will repeat the cycle.

Declare My Intent

Variability in schedules is challenging for me and my team to understand the current state of work.

Action: Every time I take on work, I will declare my intent to work on it for my team to see.

Update Regularly

Forgetting to communicate openly and frequently when working on a project I am passionate about can be dangerous. It is also difficult to remember to ask for help.

Action: I will update my team on my progress at least one per day, preferably more frequently.

Have A Goal

It is easy to get sidetracked if the goal is unclear. It is also hard to get support from the rest of the team if they don't understand my goal. I have master plans in my head that only the people I have spoken with may (or may not) know about. I am also not allowing input and feedback to improve my ideas.

Action: Update the roadmap of the project with my desired end-state before starting the work. As part of Declare My Intent, I will re-state the goal to my team to remind myself why I am doing the work and where I want to end up.

— © 2022 [email protected]

I believe in a radically different organization than what exists in the world today. In order to build the new economy (and thus a new world) our ideas of how an organization works must be challenged (“You can’t make an omelete [sic] without nuking the existing social order“). A keystone of this “new way” is Autonomy. In order to get the best results, Freedom is essential. I have begun the process of capturing my theory in my “Twenty-Something Theses of Autonomy.” This list will evolve as I expand on each of these Theses, however, I want to begin the improvement process now by starting a discussion.

Do you see anything obvious missing? What has your experience taught you? Let’s talk.

Twenty-Something Theses of Autonomy

  • Customer Delight Cannot Exceed Worker Delight
  • Fully Engaged + Fully Present = Fully Human
  • Humans Own Outcomes
  • Creativity Seeks Free Spirits
  • Nonlinear Innovation Needs Creativity
  • Innovation Breeds Failure Breeds Innovation
  • Community Improves Results (and Expedites Failure)
  • Fear is the Org Killer
  • Telling Triples Turnover
  • Demanding Delivers Dummies
  • Teams Solve Difficult Problems
  • Autonomy Trumps Hegemony
  • Ivory Towers Are For Wizards (and Look Where That Got Saruman)
  • Only Gamblers Pick Winners
  • Diversity Wins
  • The Best Ideas are at the Market
  • Heterogenous Systems Increase Effectiveness (over time)
  • Simple is Better
  • Maximize Laziness
  • Effort is Expensive
  • Results > Effort
  • Only Results Matter
  • Adults Come to Work
  • Team = Product
  • (Team + Product)^n = Organization
  • Leaders Don’t Manage
  • Results Cover a Multitude of Sins

— © 2022 [email protected]