022 - 10 months
Looking at the devlog it may seem like development has slowed down. I've only posted three times in the last quarter vs. eight in the preceding one. In actuality, my productivity has been quite good for the past couple months (as previously discussed, July was a writeoff). Earlier in the year I would often force myself to write a blog post after a lacklustre week to allay some of the shame of not having got much done. Now it's more often that I'm in the flow with some code I'm writing and I don't want to interrupt that to blog.
rewriting the data model...again
I rewrote the data model that backs eno for the fourth time. I think I finally have something that can work. The earlier versions were way too complicated and relied heavily on mutating state. The new model has an append only
structure. The reason the latest model took so long to arrive at is that the raw format of the data doesn't really look like anything to the human eye. Instead, the data has to be materialized
into a representation that resembles text in a document like you might expect. This materialization
can be parameterized in different ways to get different views of the data (for instance, showing all additions and deletions since an earlier version of the document or switching between multiple branches of edits).
Looking backwards, I alternate between wishing I'd worked harder and wishing I'd worked less. On first blush, it seems obvious that I would be further along if I had worked harder. However, had I done more work on the three versions of the data model that I threw out, that work would have been entirely wasted. Unless doing that extra work would have caused me to determine the flaws in the data model earlier?
It's hard to account for the subtle ways in which my understanding of the problem has evolved over the 10 months that I have been thinking about it now. I only kind of vaguely remember the way I was thinking about things in January. I really had no idea what I was building. I had some visions in my head of workflows that would be very exciting. I didn't really know what would be required to get there. Now my thinking is much more technical. I can describe with a lot of detail the fundamentally different approach I am taking to storing data and all the interactions that this unlocks. I have a lot more confidence about what my model can handle.
a hole in the ground
Someone reached out to me with some comments on the blog and asked me if I experience a "sense of dread". The answer is overwhelmingly "yes". I feel a huge pressure to make eno do something imminently so I can justify continuing to work on it indefinitely. While part of this is financial, it's mostly social. It just starts to get really embarrassing if people ask to see the word processor you have been working on for a year and you have nothing to show them.
When a house is under construction in the neighbourhood, it always seems to me like it spends months and months as nothing but a big hole in the ground. Then suddenly one day I walk by and there is a house there that is nearly finished. A couple weeks later and there are cars in the driveway and people in the windows and it's like the house was always there. Perhaps ambitious projects spend a very long time looking like a hole in the ground until one day they transform into a complete product in just a few weeks.
With this in mind, I have been starting to think about what it would take for eno to stop looking like a hole in the ground. Concretely, I am trying to hone in on what a first version of eno could look like: not my ideal first version, but a first version that I could actually get into people's hands in a matter of months, not years. This forces me to stop some of the blue sky thinking and get more realistic. It also needs to have some novel aspect that would make someone use it over any other product out there. I think I have found something that might work - more on that in a future post.
other posts
Another reason I haven't blogged much is because the things I find myself drawn to writing about don't have much to do with eno. I think the audience for this blog wants to read about the journey of making an ambitious software project - not random musings on culture from some tech bro. That said, the best performing posts have had the least direct ties to the actual development of eno. Anyway, if you have strong feelings about this let me know.
Note: Credit to my amazing piano teacher for the hole in the ground metaphor.
If you enjoyed this post, subscribe below to get notifications for the next one.
We also have an RSS feed