I installed the ActivityPub plugin and now people should be able to follow my website from the fediverse! I’m excited about it. I’ve been really enjoying Mastodon, but my website has really languished. I’m hoping that by adding it to the fediverse, I’ll be able to enjoy both. I also added the WordPress app to my phone, so maybe I will write short posts from time to time on the bus. We will see!

Here are a few notes about how I did it. I followed the guide about it on Fedi.tips. I also added a new user to my website so that it should show up on the fediverse as @david@davidbruffner.com. You should be able to search for that handle on whatever fediverse application you use, and then you can follow it and receive posts in your timeline if you like.

This is a test to make sure that everything works.

It’s been a little over a year since my last post. Since you’re reading my personal blog you might be interested to know what I have been diving into in the meantime. Here’s a short list:

  • Artificial intelligence and machine learning. I really think that AI systems need to be free to learn in order to become really useful. I was excited by Jeff Clune’s work on open-ended learning. I heard about his work through the TWIML podcast. Jeff Clune worked on this amazing project called POET where the AI system created obstacle courses and used them to train its parkour skills. I also got into Neural Operators which are a class of neural networks that map between functions instead of between vectors like normal neural nets. The sound like they are great for physics simulations.
  • Personal knowledge graphs. I switched from Evernote to Obsidian and Joplin. I adapted my task management workflow using this post, by Ruben Berenguel, as inspiration. There was a lot of fiddling and learning involved, but I like how all my notes are in markdown text files now. I feel more free.
  • Joined Mastodon social network. I’ve been really enjoying it. If you haven’t heard of it, it is a decentralized social network kind of like Twitter. It is part of the Fediverse which is a collection of different decentralized social networks that all interoperate together. Here’s my Mastodon profile, https://raphus.social/@davidruffner. Come check out the Fediverse!
  • Free and Open Source Software (FOSS). I did a deep dive into it. I learned a lot from the Libre Lounge podcast, hosted by Serge Wroclawski, and the FOSS and Crafts podcast, hosted by Morgan Lemmer-Webber and Christine Lemmer-Webber. I’ve been slowly transitioning my apps to open source alternatives.
  • I’ve been dabbling in the Elixir and Scheme programming languages. I took the Hands-On Guile Scheme for Beginners class and enjoyed it. I’m still looking to get better at the Actor Model, but have definitely gotten some exposure to functional programming.
  • I did a dive into Category Theory. I think someone shared about it on Mastodon, and I was blown away by this series of lectures by Bartosz Milewski.
  • I’m did a deep dive into Marshall Rosenberg’s Non-Violent Communication. It has helped me to grapple with what is going on between Israel and Gaza, and closer to home as helped with interpersonal conflicts. I’m taking the Bigbie Method intro course and enjoying it so far.
  • FOSS video games. I’ve been having a lot of fun finding free and open source video games to play myself and to share with my two sons (5 and 2). Here are some of the top games so far:
    • SuperTuxKart. We all love it! I got some xBox360 controllers so we can play on the computer as if it is a gaming console. It’s fun finding fan-made tracks and cars too.
    • Sonic Robo Blast 2 a fun retro 3D Sonic game.
    • 0 A.D. An excellent real time strategy game like Age of Empires

Note: It’s been almost two years since my last post. We had a baby, and life has been more full with two little boys. It’s been lots of fun! But I kept coming back to this post, so eventually I was able to finish it. No guarantee on when the next post will be...

Recently, I have been really excited about the Free Will Theorem by John Conway and Simon Kochen. It states that if we have free will then elementary particles have some degree of free will too1. If you believe we can make free decisions, then this theorem has profound implications. In particular, it challenges that dichotomy between inanimate matter and us humans with our minds, emotions, and free will. Perhaps electrons and galaxies also have some degree of internal life?

But first do we have free will? I believe we do have a limited ability to choose between different options and that our decisions have the potential to change the course of the unfolding universe. But this feels like a religious belief, because I can’t prove it. When I look at the laws of physics, things look to be deterministic or to be driven by randomness. Fundamentally, I’m a bunch of electrons, protons, and neutrons that obey the laws of physics, so how does my free will fit into this picture if it exists at all?

These questions about free will are core to the mind-body problem. One way to state the problem is, since we are matter where does our subjective inner life come from? I want to write about some of my grappling with the mind-body problem, and about how the Free Will Theorem helps.

Wondering about the mind body problem

I’ve struggled with what you could call the mind-body problem since I was a young. I remember feeling uncomfortable when people described the human brain as “just a bag of chemicals”. It didn’t make sense to me. How could a bag of chemicals learn, make decisions, and love? But we are are made from matter, so I was left with an unsettled feeling, that maybe I was wrong. In college, I considered the idea that maybe inner life doesn’t exist at all. I didn’t know it at the time but this is called eliminative materialism2. To me that is an incredibly dark idea. Fascinating that you could have a whole universe without any awareness, but also deeply lonely and disturbing. But I could not accept this idea because it would mean denying my own inner life.

I also considered the idea that perhaps I am the only one that experiences inner life. What if the people I’m talking to are just responding according to the electrical signals in their brain that have been trained by their experiences and by evolution? What if they have no subjective experience? Perhaps them talking about it is just a quirk of evolution like peacock tails. I also didn’t know this at the time but this describes solipsism3. It didn’t make sense to me because I’m probably not that special, so most likely other people have an inner life as well.

After graduate school, I entered a period of questioning the foundations of my Catholic faith, and in the process learned about Pierre Teilhard de Chardin. He writes in “The Phenomenon of Man” about his theory that all things have a inner subjective experience4. I found this idea to be profound. I had already believed that animals have some type of consciousness, but now I was invited to consider even electrons to have some small amount of inner life. Teilhard’s view of the world and the mind is a form of panpsychism, specifically panexperientialism5. This idea suggests that all matter has some degree of mentality from humans down to electrons.

But say we and everything else in the universe has this inner experience, does it matter? Do our thoughts change anything or are they fully determined by our evolving physical configuration? Is free will an illusion? I am definitely biased is this area. I can’t shake the idea that our choices matter, that we are not entirely determined by our past. I do admit that I am heavily influenced by my environment, but still I believe that at least in a small way I can choose between different paths.

With these types of questions there are no easy answers, but the Free Will Theorem gives a useful perspective. It describes free will as the ability to take an action that can not be predicted by any previous information in the universe. If this type of free will exists then it can change the course of the universe; the story is still being written.

The Free Will Theorem

John Conway and Simon Kochen are both mathematicians but their Free Will Theorem has implications in physics and philosopy. Conway gave a series of lectures about this theorem, and acknowledged that you have to be a little crazy to make a big statement outside your field6. But they had something important to say.

The setup

To make their proof, they imagined a situation where two spin-1 particles (for example certain atoms) are first “twinned” or entangled (in a singleton state) and then one of them is moved to Mars while the other remains on Earth. There is an experimenter A on Earth and an experimenter B on Mars and each experimenter can measure the spin of their respective particle. If they measure the squared component of the spin along a certain direction, then they will get a 1 or a 0. It turns out that for spin 1 particles, if one experimenter measures the spin in three orthogonal directions then result will be two 1’s and one 0 in some order. This is derivable from quantum mechanics (I don’t know how!), but they take it as an axiom which they call the SPIN axiom.

The second key piece of the experiment is that the particles are entangled. Even though one particle is on Earth and the other is on Mars, when each experimenter measures the spin in the same direction they will measure the same value for the spin. This a strange effect. We don’t see this type of behavior in daily life, but it is what we observe experimentally for entangled electrons and other very small particles in entangled states. Conway and Kochen call this effect the TWIN axiom.

The final setup for the theorem is the limit on the speed that information can travel between the two experimenters. From relativity theory, we know that no signals carrying information can travel faster than the speed of light. Since the experimenters are so far apart this means that each has time to perform an experiment before the other can influence it by sending a signal. They call this the FIN axiom. With these three axioms they derive the following theorem.

The theorem

This paper has set up a situation that relates the experimenter’s choice of measurement direction to the response of the particles. The theorem shows that if the experimenters can freely choose the direction to measure a particle then the particle’s response is free in the same way. This is a strange, but intriguing idea. Here is how they state the theorem:

The Free Will Theorem (assuming SPIN, TWIN, and FIN)].

If the choice of directions in which to perform spin 1 experiments is not a function of the information accessible to the experimenters, then the responses of the particles are equally not functions of the information accessible to them.

John Conway and Simon Kochen

The measured spin does not exist before the measurement

We are used to properties existing before you measure them. For instance, we don’t expect that measuring a box will change its dimensions. But small particles in the quantum regime are different. They can be in a state where the measurement outcome is random. It turns out for this specific example of spin 1 particles, you can prove that the measured spin does not exist before the measurement. If it did then there would be a deterministic function that gives the spin based on the direction of measurement. Such a function, called a 101-function, does not exist. The proof is call the Kochen-Specker paradox and depends on a geometric puzzle with no solution7. That’s good, because if the measured value already existed then the particles would definitely not have any choice in how they responded to the measurement.

Breaking down the proof

Not only does the measured spin not exist until the experiment, the Free Will Theorem proves that it can’t be predicted. The proof works by contradiction. First it assumes the opposite, that it is possible to predict the measured spin of the particle from information available to the particle. After a series of deductions John Conway and Simon Kochen find a contradiction. If the opposite of the Free Will Theorem is false, then the Free Will Theorem is true.

So how do they find the contradiction? Here are the steps they follow:

  1. First they assume that there actually are functions that could predict the responses of the particles given any information available to the particle before the direction of measurement was chosen by the experimenter.
  2. Then they use the TWIN axiom, that the particles are entangled, to show that the function for particle a is equal to the function for particle b if the measurement directions match.
  3. Next they note that the information available to particle a before the measurement does not include the direction of the measurement of particle b, because according to relativity there are some frames of reference where particle b is measured before particle a. This allows them to define a function that returns the measured spin values using only the measurement directions as input.
  4. Finally they observe that this new function is a 101-function, but such a function does not exist. So by contradiction they prove the Free Will Theorem

I keep having to re-read the theorem to follow through the logic, but each time it makes sense. If you’re interested, I definitely recommend you read it yourself. As far as mathematical papers, it is relatively accessible.

Implications of the Free Will Theorem

At the low level, the Free Will Theorem is just talking about whether it is possible to predict the outcome of a particular experiment, but the conclusion has deep implications. If the experimenters could pick the directions for the experiment then the particles could pick their response. How can particles pick a response? Do they have some degree of consciousness? It strange to think about everything in the universe having some small amount of inner life, but if it is true then it points to where our own free will comes from. Perhaps the free choices of the particles that make us up don’t completely cancel out, which would leave us with some ability to make free choices ourselves. In their philisophical remarks, John Conway and Simon Cochen write:

The authors strongly believe, however, that there is a way our brains prevent some of this cancellation, so allowing us to integrate what remains and producing our own free will

John Conway and Simon Cochen

It is not clear at all how that emergence of our free will comes from the free wills of our constituent particles. But it makes a lot of sense to me. From this perspective, there is no need for a magical life force that animates the body. Matter itself is animated and has some limited ability to determine its own destiny.

Of course, there is no requirement to believe in free will for people or for sub-atomic particles. The Many Worlds interpretation of quantum mechanics is a deterministic interpretation that is gaining popularity8. The idea is that the wavefunction of the universe is what is ultimately real. It evolves deterministically, but contains projections that correspond to different versions of reality. Each projection is a parallel world. Every time there is what appears to be a free choice of a particle or a person, the world divides with one world for each possible outcome. There is a certain beauty to this theory because everything can be explained mathematically, in principle.

I find this Many Worlds interpretation to be unsatisfying, because I have such difficulty letting go of the idea that I can make choices and that they could make a difference. But I want my beliefs to match reality as much as possible. The Free Will theorem provides a coherent picture of how free will works if it exists. I find it to be an expansive and exciting view of the world. I like how John Conway and Simon Cochen end their paper:

Einstein could not bring himself to believe that “God plays dice with the world,” but perhaps we could reconcile him to the idea that “God lets the world run free.”

John Conway and Simon Cochen

A world where all the protons and electrons are running free sounds great to me. I hope it’s true. Until I find evidence that disproves it, I’ll take it as an article of faith,


  1. Conway, John and Kochen, Simon. “The Free Will Theorem”. URL=Arxiv.orghttps://arxiv.org/abs/quant-ph/0604079v1
  2. Ramsey, William, “Eliminative Materialism”, The Stanford Encyclopedia of Philosophy (Summer 2020 Edition), Edward N. Zalta (ed.), URL = https://plato.stanford.edu/archives/sum2020/entries/materialism-eliminative/
  3. Stephen P. Thornton. “Solipsism and the Problem of Other Minds”, Internet Encyclopedia of Philosophy, URL=https://iep.utm.edu/solipsis/#H1 accessed 12/30/2022.
  4. Pierre Teilhard de Chardin, The Phenomenon of Man, p56-57
  5. Kind, Amy. “Panexperientialism, Cognition, and the Nature of Experience”, Psyche 2006: VOLUME 12 ISSUE 5. URL=http://journalpsyche.org/files/0xab06.pdf2021-05-27 09:05 Panpsychism
  6. Conway, John. “Free Will and Determinism in Science and Philosophy”, lecture series, URL=https://mediacentral.princeton.edu/media/Free+Will+and+Determinism+in+Science+and+Philosophy/1_h7r12hbc
  7. Kochen, S., Specker, E., J. of Math. and Mech. 17 (1967), 59–87. URL=http://www.iumj.indiana.edu/IUMJ/fulltext.php?artid=17004&year=1968&volume=17
  8. Sean Carroll. “Reality as a Vector in Hilbert Space”, 2021. URL=https://arxiv.org/abs/2103.09780

I recently read Positive Discipline, the First Three Years, by Jane Nelson and Roslyn Ann Duffy, and have found their approach to be practically useful in learning how to better parent my almost three year old son1. It does not magically solve all problems, but does help me to roll with the punches. This is very important because when parenting a small child everything can be going along fine and then all of a sudden things change abruptly. Nelson and Duffy illustrate the importance of understanding your child’s (mis)behavior, so you can understand what is age appropriate and what could be an effort to regain connection. With that understanding of your child as a foundation, Nelson and Duffy recommend being kind and firm toward your child.

My wife and I are frequently realizing that we need a new plan when my son’s behavior abruptly changes. This happened after Christmas, when my son picked up the habit of throwing all his toys on the floor and then climbing on Mom or Dad’s desk and getting into stuff2. He also started throwing marathon fits when we turned off the TV. I started getting frustrated and angry and was overly forceful in taking my son away from my desk. It wasn’t effective because my son got a defiant look in his eyes, and went right back. Things felt out of control and unworkable for me. I wished that my son would just “listen” to me more.

Nelson and Duffy point out that if we want our kids to be strong and assertive as adults then we can’t demand them to be quiet and compliant as kids (Ch. 2). So that argues against yelling or punishing to enforce my arbitrary rules. But I also can’t let him watch many hours of TV and play with scissors, because things would get chaotic and dangerous – not good for us parents or the child. So what can I do? Positive Discipline gives some parenting tools that can help.

First I need to understand my son’s behavior, to figure out what is age appropriate (Ch 9.). At his age play is super important so it makes sense that he would want to get into his toys right away. With more toys than normal because of Christmas, maybe he just wants to see all of them before he decides on a toy. From that perspective throwing them all on the floor makes some sense. And then getting into Mommy and Daddy’s desks makes sense too because he has a need to explore and because he wants to imitate us. Finally with the TV, my son wants to have the autonomy to decide how long to watch. So these behaviors are totally age appropriate, but very difficult for us parents. This knowledge helps diffuse my anger. My son is not a little demon, he’s just a little person trying to explore and have autonomy.

Next I need to take action in a kind and firm way, that is respectful of my son’s needs and desires and of mine and my wife’s. Nelson and Duffy talk about the importance of deciding what you will do instead of what you want your child to do. It makes sense to focus on what you control. So in this case, I decided to pack away some of my son’s toys to make it more manageable when he throws them on the floor. It turns out that with fewer options, he ended up playing with the toys more and got into our desks less (a nice surprise!). With the TV fits, I didn’t know what to do so I looked it up and brainstormed with my wife. We came upon the idea of using a timer to set up an agreed upon time for TV (use of timers described in Ch.5). I was shocked when my son quietly shut off the TV after the timer went off! Since then there have still been fits, but the timer has helped a lot.

In writing about this episode, I realize how I could have done things differently that might have been better. The most important thing is to first connect with the child before taking corrective action. I could have validated my son’s feelings and apologized for being overly forceful. Sometimes just asking for a hug makes all the difference. Second, I need to remember that these Positive Discipline tools are not about controlling the child to make my life easier. Instead the idea is to collaboratively come up with a solution that works for all. As the parent with more experience and power, I definitely take the lead, but it’s critical to involve the child as much as possible. Sometimes that means offering limited choices and letting the child decide, or sometimes it means asking the child to help.

It’s about finding what works for you and your specific child. The specific actions will change with each kid and over time, but the overall approach can be helpful. Instead of yelling and punishing the child, we can seek to understand and connect. Letting kids do whatever they want is not the only alternative. Nelson and Duffy show there is a way to be firm while still being kind. We can involve kids in decisions and activities, allow them to face the challenges of life, and be there for them to encourage them. Ideally this approach respects the needs and desires of the child and the adult. I find it hopeful. I don’t think it will make things easier for me (or the child!), but I hope that it will make the experience more meaningful and joyful.

It’s difficult to share my experience with applying Positive Discipline to my parenting because I don’t want to come off as having figured everything out. Since starting to write this post, we have come up against new parenting challenges. Things are definitely a work in progress! But, writing about it helps me to learn, and maybe someone else will find this book useful too. To anyone who interacts with kids, I’m curious to hear what you find helpful. And if you are a kid, let me know what parenting approaches you prefer!


  1. Jane Nelson and Roslyn Ann Duffy. Positive Discipline, the First Three Years. Harmony 2015. https://www.positivediscipline.com/products/positive-discipline-first-three-years-revised-and-updated
  2. As remembered by me and with permission from my wife and son. March, 2021.

I’m interested in building up a personal store of knowledge – good ideas, data, memories, and notes – and saving it in a way that I can quickly and easily make use of this information. Without some external way of saving things, I tend to forget them. The dream is that these ideas and pieces of information don’t have to be re-thought up or re-found each time but can be explored to rapidly generate more ideas. Ideally this would help me solve problems and help generate new knowledge for the wider society.

In reality this has turned out to be much harder than I expected. In my experience, it is easy to save information but hard to find it and make use of it later. The vast majority of my files have never been used after I saved them. When I do happen to remember a piece of information that I want to look up, I tend to have trouble finding it. This unfortunate situation surprised me. I had bought into the idea that there is essentially no cost to saving things digitally so I should save everything, and second that digital tools should make it easy to find things. I was wrong on both counts.

The difficulty of storing information became a real problem for me in grad school when I was doing research for my PhD in physics. I had to deal with countless journal articles, presentations, calculations, brainstorming sketches, experimental data, notes from talks/classes, and different versions of code (I wasn’t using version control, aaahhh!). At first, I thought my problems were just caused by the wrong organizational system. So I tried different systems, but despite having advantages and disadvantages they didn’t solve the underlying problem for me.

Thanks to my misadventures, I’m learning that forgetting is a feature not a bug. When I try to remember all my ideas and information, the default organizational systems struggle and while specialized tools can help they also tend to silo information. It turns out, there is a need to limit the inflow of information and the amount of work in progress. I need the information and ideas that are relevant to me, and everything else is unlikely to be needed, and should be let go. In a way my organization system for saving ideas and information is an extension of my brain. My brain is quite good at forgetting things (sometimes too good!). So while it is important to have good tools and organization, shouldn’t my system also forget things?


The default ways of organizing tend to be digital analogues to the way we store papers: papers on the desk, in notebooks, and in folders. These systems fail in similar ways to paper based systems. The simplest approach is to just put everything you need on the desktop, but this quickly fails if you have more than around ten files. The next simplest is to create notebooks; essentially storing the files in chronological order (for example by starting the filename with the date). This helps because you can quickly find a file if you remember when you worked on it, which tends to happen for things you recently worked on. However this approach makes it hard to see connections between ideas from different times1. You can’t re-arrange the ideas as you learn more; they are fixed in chronological order.

The next strategy that I’ve tried is putting files in a folder structure according to topic. This seems like a reasonable idea, but quickly becomes quicksand for ideas. Inevitably, I need to change the folder structure as I learn to better reflect the association between my files. The changes make it hard to remember where things are and breaks any references to file paths. As I create more folders, I find it difficult to remember the context underlying the relationships between folders. This can lead to folders with mashed up collections of files and sub-folders that don’t make sense.


Based on these struggles, I have turned to more specialized tools as a way to solve my organizational challenges. They can make a huge difference, but can create silos of information. For example, I started using Zotero in grad school, to keep track of all my research articles. This was a huge improvement over putting papers in topic based folders and trying to cram paper keywords into the filenames. Zotero has useful tools that allowed me to generate bibliographies automatically and to save papers directly from the browser. But now I had a separate store of papers that wasn’t tightly integrated with my research data and information; it was in a separate silo. This turned into a problem when I needed to reinstall my operating system. All my other files were restored but I had trouble recovering my Zotero papers. Eventually I was able to recover them, but it highlights that separate silos increase the complexity of securing my data.

Ultimately tools won’t help if the information is not useful. Marie Kondo says throw away all papers (except what you really need)2, and I think the same could be said for digital information too. She says this because according to her core principle, your things should “spark joy” and she finds papers rarely spark joy. Do my digital files and information spark joy? The majority probably don’t. I’m not totally sure because most are in these old folders that I never look at.

Information tends to bring me more joy when it is connected to something bigger, and this is where tools can help. For example, the “Untitled” file in an old folder called “New” is probably not useful. The context is lost; it is just a fragment. In contrast, a note in an Evernote notebook is part of something bigger. Evernote allows the notes to be displayed in different ways which can help the context to be recovered, and it is easy to search. It’s also easier to make connections between different notes with tags or with links.


Based on these experiences, I have begun to seriously fight the accumulation of unnecessary fragments and now try to only keep things that are part of a “whole”. One practice that has helped a lot is to channel the inflow of information. By default, there many different places that new files are saved, which is bad because it’s hard to evaluate what should be kept. To make things more manageable, I create a single “Inbox” folder where any new file is saved temporarily until it can be saved in an appropriate place (I got the idea from this blog post3). This little change gave visibility to the problem, because I could easily see files building up. Now that the files were in one place, it was more straightforward to decide what to keep and what to delete (although I still put it off sometimes!). This is a small step toward protecting my digital space and being intentional about what I allow in.

Limiting the amount of work in progress is also critical. Work in progress can be many things: unfinished projects, ideas that need to be pursued, or emails that need to be responded to. Too much work in progress is bad for multiple reasons (Agile frameworks like Kanban4 and Scrum5 are dedicated to limiting work in progress), but in regard to storing information, the unfinished work means that there are lots of associated files and information that don’t bring joy. Instead of being sources of useful information, these incomplete files require additional work and are difficult to understand because of missing context. One tactic that helps limit the work in progress is to create a single “Current Projects” folder for things that are being actively worked on (this is another good idea from this blog post3). With all the active work in one place it is easier to see when things are getting overwhelming. When that happens, I need to let go of things that I am never going to do and work to finish the projects that are important.

Organization requires deep change in behavior. I am part of the knowledge organization system, so if the system is going to succeed then I need to be working too. This means being more intentional with what I keep and with how I keep the things that are important. The hard part is letting go. Sometimes that means deleting now and sometimes it means letting something be buried in the bottom of a list of notes. Either way this reserves the prime spots for the most useful information. As part of my system, I also need to focus on what is most important. This is a huge challenge because it requires saying “No” to some demands, and risking the disapproval of others. When those demands come from bosses, significant others, or children it’s difficult to say no. But by setting limits, I will be able to make the most of my limited resources and give the most back to those in my life.

The effort is worth it for me. As I have been implementing these changes, I have found that I spend less time searching for files, notes or projects from a few months ago. It still happens sometimes, but usually when I didn’t follow my own rules! My store of information is not some magically useful thing that I will use in the future, but a limited resource that I rely on and enjoy now. It has room to grow, with plenty of unneeded information that can be pruned and lots more that can be added in an integrated way. This practice is helping me to think more clearly. Letting go of information, forgetting, is helping me to make connections between the important ideas that are left.


  1. David B. Clear, “Zettelkasten — How One German Scholar Was So Freakishly Productive”, https://writingcooperative.com/zettelkasten-how-one-german-scholar-was-so-freakishly-productive-997e4e0ca125.
  2. Kondo, Marie. the life-changing magic of tidying up. 2014 p 96.
  3. Mark Virtue, “Zen and the Art of File and Folder Organization”, https://www.howtogeek.com/howto/15677/zen-and-the-art-of-file-and-folder-organization/.
  4. David J. Anderson, Kanban: Successful Evolutionary Change for your Technology Business.
  5. Kenneth S. Rubin, Essential Scrum: A Practical Guide to the Most Popular Agile Process.

Image of restored specimen of a squat quadruped with knobby back
An ankylosaurus: by Emily Willoughby (e.deinonychus@gmail.com, http://emilywilloughby.com) – Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=30925563

Like many kids, I was into dinosaurs. I had fun reading about the different types of dinosaurs, and trying to figure out which was the biggest, strongest, or most powerful. Over the years, I got interested in other things so dinosaurs have not been in the front of my mind. Recently my son has helped me to reconnect with the amazing world of dinosaurs. My son (two and half years old) loves dinosaurs and has been starting to learn some of their names (like ankylosaurus) so I have naturally been learning with him. To my surprise I’ve found that dinosaur research, and paleontology as a whole, has made tremendous progress since I was a kid.

Here are some specific examples:

  • Spinosaurus is the largest carnivorous dinosaur ever and had a crazy looking spine on its back. The finding of new Spinosaurus fossils as spurred a lot of research trying to understand whether it was aquatic, what the spine was for, and what it ate. The evidence is suggesting that it may have been one of the only swimming dinosaurs!
  • Tyranosaurus Rex was huge, but how fast was it? There has been a lot of back and forth but according to this 2017 paper, they probably weren’t that fast and mostly walked. Very disappointing! I still am hopeful that they could run as fast as a Jeep, but it did get me interested in the general relationship between animal size and speed (see this interesting blog post going into the details about animal speed)
  • Dinosaurs had efficient respiration with air sacs like birds (living dinosaurs!). In addition their bones were often pneumatic meaning that the air passages went through the bone. This made the bones light and strong which may have been one of the traits that allowed dinosaurs to get so big.
  • There is a wealth of evidence and theories about how different dinosaurs and other animals evolved. I really enjoyed this Eons show exploring how pterosaurs evolved the ability to fly.

Dinosaurs remind me that the world has not always been like it is now; it has changed and most likely will continue to change. The dinosaurs showed that huge land animals are possible. Could they evolve again? Could genetic engineering help? Jurassic park made it seem like a bad idea, but I would be for it. On a darker note, the asteroid impact that wiped out the dinosaurs (except the birds!) in particular is a reminder that millions of years worth of effort can be erased in a day. But perhaps the survival of our ancestors and the ancestors of other current species is an inspiration that life could survive the next big catastrophe. I like to remember we are part of the same story that includes the dinosaurs, and it is not over yet!

When developing software, I want to build applications quickly. In my sometimes painful experience, low quality work gets in the way of this goal. There are a lot of problems with poor code quality, but I want to focus today on how code quality is directly tied to the amount of work in progress. Low quality code leads to large work in progress which in turn causes slow and uncertain delivery time of new features.

I tend to think of low quality code as any code that leads to defects that require rework, i.e. bugs. There is an inherent challenge in this definition because it’s hard to know what will cause a bug until the bug shows up. But from experience, I know there tend to be more bugs when I write the code quickly, working alone, and without writing or running tests. There are a lot of different ways to write bad code, but those are some of the common ways I do it : ).

The low quality code really starts to be a problem when I “finish” some features and move on to developing new features. The poorly written code is not really done. Most likely it still needs some rework to really function the way it is intended. So in reality, I have more work on my plate than I can handle efficiently. Major bugs crop up more frequently interrupting me and causing the time to finish any feature to increase.

It turns out that there is no way to get around the fact that more work in progress leads to longer delivery time; it’s Little’s Law. If you have a system with items coming in that have to wait in a queue before they can exit the system, then the number of items in the queue is directly proportional to how long, on average, that it takes to process a single item. This makes sense. Long lines mean long wait times. But when it comes to planning work, it is easy to think that I can get everything done at once.

To achieve a quicker cycle time, I need to insist on high quality work to avoid the pile of work in progress from unexpected bugs. A faster feedback cycle is super beneficial. With complex products each bit of work that we complete gives us new insight into the system, and ideally we would like to incorporate those learnings into deciding what to do next. The only way we can do that effectively is to have short delivery time of features.

This is my understanding of the connection between work in progress and delivery time related to my experience, but I learned about this connection first in Kanban: Successful Evolutionary Change for your Technology Business by David J Anderson and more recently in Essential Scrum: A Practical Guide to the Most Popular Agile Process by Kenneth S. Rubin.

I hope to write upcoming posts about specific things that I have found helpful in my efforts to improve the quality of my code.

I was at the the beach this past week, and one of the days we got a chance to do some star gazing. It was a new moon, and the sky was full of stars (and some satellites). I wanted to take a picture to capture the majesty. In the past, I’ve tried to take pictures of the stars and have failed, but recently I’ve been getting better at manual mode on my Galaxy S9, so I tried again. This time it worked! Here was the result:

The night sky at the Jersey Shore.

There were a couple of settings that made the picture possible. With manual mode, I set the focus to infinity so the stars would be resolved. I fully opened the aperture to let in more light, and I set the phone down on a box so that it did not move. When it was taking the picture, the phone automatically determined the exposure time which ended up being around 10 seconds. I also raised the ISO level, but that may not have been the best idea because it can introduce noise. If you’re interested in learning more, there are many guides available, I came across this one today and found it to be informative.

Good luck with your astrophotography! Here’s a picture of the big dipper to close:

The big dipper.

I recently finished reading A Tale of Doings by Phil Quense. I really enjoyed it. As I read it, I felt immersed in the world of the story and the lives of the characters. It is a dystopian future, with the world owned by a few large corporations, that felt relatable really a natural progression from the way things are now. I enjoyed how the complexities of the world unfold through unexpected revelations throughout the story.

But the characters really make the story. There are several who play major roles in the story, and I felt like I got to know them. Sometimes I would get frustrated at a character for making a terrible decision, but they all have good hearts (except perhaps a few of the villains). I would root for them and get excited as they got swept up in the adventure.

Sometimes life can be numbing. We go to school, so we can get a good job, so that we can retire, so that we can . . . die. The default life in our society seems to be selfish and narrow. This story raises the hope that life can be rich and meaningful although perhaps more dangerous and exciting than we could imagine.

I keep on going back to the same sites for updates about coronavirus. Here are the ones that I like:

Update 5/5/2020

Also I like reviewing the IMHE predictions.

Update 5/26/2020

Update 7/29/2020

Nice dashboard of covid reproduction rates https://rt.live/