Acorns and Oak Trees

Hamming talks about planting acorns that will grow into oak trees, and to make sure that you're planting the acorns that will grow into oak trees. With that in mind, I need to come up with a vision, and figure what the acorns I need to plant are. Then I need to acquire the art of hustling to encourage those acorns to grow. I need to do something worth doing, which I think might be what's been holding me back from being involved in good communities.

So let me consider a vision. Maybe it's this: rethinking how we're doing computers.

What are the acorns? What will actually grow? Here's a few fields that seem fertile:

  • Capability systems: it seems to me that this is a useful field for building robust, secure systems of the future.

  • Virtualisation: this is the basis for running efficient distributed systems, and is a rich field.

  • File systems and storage: the way we're doing file systems now is really oriented to a centralised data storage.

So what acorns do I plant? I'm thinking more research on capability systems, to start with. Fundamentally, I get the idea but I need to cross over into understanding the implementations. One acorn is a simple capability system. I think the Nebula rewrite will be helpful here, but I think it's something that has to extend into the operating system. This means that I need to also do a lot of reading on ocap systems: KeyKOS, EROS, L4. It would be good to develop an L4-based system.

With virtualisation, I really need to implement a hypervisor. Maybe it's not bare-metal at first, but that needs to happen.

File systems and storage is something Nebula touches on. I think it's a useful acorn project that will help me learn to think about these problems with increased clarity.

On a related note, my CS and math skills are, to put it gently, pitiful. I need to up my game there. I need to stop wasting time and start getting better about spending regular time working through my math books and learning CS. First step: finish reading Mathematical Logic. The next step is the discrete math book that I have. I also really need to finish WYAS and CIS-194, especially if Haskell is going to become my go-to language.

To quote from the inspirations page:

“ If what you're doing is not important or not likely to be important, why are you doing it? … If you don't work on important problems, you are not going to do important things except by the dumbest of dumb luck. Let me reorganise my life. Let me quit spending my time reading nonsense magazines and thumbing through the newspaper—they're not very important to my career. Let's spend my time studying things for my career.

Always be hustling, I guess.


Tags: