Newsletter #22 - Ecosystems and Integrated Thinking Environments
Welcome to the 22nd edition of DeveloPassion's newsletter.
Welcome to the 22nd edition of my newsletter.
Hello everyone! Welcome to all the newcomers. I hope that you've all had a great week!
This one has been another productivity shipwreck for me. But it's all right; life has a way to remind us that we can't control everything; far from it! It's humbling. Still, I wanted to show up and share interesting things I've discovered recently and a few of my recent thoughts.
Ecosystems > Platforms > Products
One thing I strongly believe is that ecosystems have a lot more value and potential than single platforms and single products. Ecosystems allow both users and developers to combine platforms and products in ways that often surprise their creators, and allow for seamless experiences. And the key is to create interoperable platforms rather than siloed products.
As you know, I'm embarked on a journey to improve the way we manage our personal knowledge. And while I want to create a product that combines the features of multiple others (content curation and note-taking/knowledge management), I certainly don't want to create an isolated island. I want my product to integrate nicely with others. I want to let users make use of their data as they see fit, retaining full control and full ownership. Simply put, I want my project to become an integral part of the existing ecosystem, and embrace cross-collaborations.
Technically, this translates into a number of elements. The most important one is creating a platform rather than "just" a product. On one hand, the product itself will provide an experience to manage personal knowledge. On the other hand, the platform will provide additional capabilities for users and third-party developers, such as the possibility to integrate with other platforms/products, the ability to extend the product through add-ons, the possibility of importing/exporting data in open formats, etc. Some say that one has to choose between building a product or a platform, but I disagree. I believe that we can move forward on both fronts; just one step at a time, and improve incrementally. But doing that requires thinking about the long-term vision right from the start.
So this is my long-term vision. But of course, I need to start small. IMHO, the best starting point for a platform is to expose easy-to-use APIs. First for the product itself, but also for others. By having a solid public API from the very beginning, third-party integrations become much more natural. Then, over time, the platform can grow and be improved to support more use cases.
Join my community on Slack if you want to discuss these ideas with us: https://dsebastien.net/pkm-community
Integrated Thinking Environments
An idea that I've encountered recently and found really fascinating is a parallel between Integrated Development Environments (IDEs) and the world of knowledge management: https://axle.design/obsidian-roam-and-the-rise-of-integrated-thinking-environments%E2%80%94what-they-are-what-they-do-and-what-s
Software developers have IDEs at their disposal; super powerful tools that can not only be used to edit the source code of their applications but also integrate most of the tools necessary for them to be productive. For instance, tools to debug their code, tools to test it, tools to discover quality issues, tools to transform data, tools to explore databases, and many more.
The idea of Integrated Thinking Environments (ITEs) is to be to knowledge workers what IDEs are for developers. ITEs should become the "home" of lifelong learners; the place where they go when they want to think and learn.
The question is of course: what are the tools that should be part of an ITE? Since it's still the early days of ITEs, it's pretty much open-ended and for us to imagine.
Here's my take on what an ITE should include (i.e., its Jobs-To-Be-Done):
Means to take periodic notes and review those
- Daily notes
- Weekly/Monthly/Yearly reviews
Means to discover interesting content
- A modern Stumbleupon based on your own preferences and research interests of the moment
Means to capture interesting content and ideas
- Let you capture and store everything you find interesting on the Web and elsewhere
- Store everything in a content inbox
Means to organize captured content
Means to extract ideas, insights, and knowledge
- Create literature notes and fleeting notes (Zettelkasten)
Means to progressively summarize knowledge
- Create permanent notes (Zettelkasten)
Means to link ideas, knowledge, and content
- We need to have end-to-end traceability. We need to be able to give credit where its due, and to see how ideas relate to each other
Means to explore relationships and to derive new insights
- We need to be able to dive into the knowledge we've accumulated, explore the links, derive new insights and ideas, and create new content
Means to help us create a digital twin
Means to collaborate and share with others
- Live collaboration
- Collaborative exploration/learning
- Content sharing
- Content publishing
- Exporting/Importing information
Means to help us learn and retain information in our long-term memory
- Supporting spaced repetition to support our learning efforts
Means to deal with content and knowledge decay
- The content we capture for later consumption and the knowledge we accumulate does not necessarily remain valuable/valid forever. An ITE should help us manage the decay of information
- Sometimes we need to unlearn some things to grow
Means to version knowledge
- Ideas evolve, and that evolution is interesting in and of itself. An ITE should version our knowledge so that we can go back in time and look at the evolution
To me, the goal of an ITE should be to support the complete funnel from content to atomic/networked knowledge We start by capturing our thoughts, ideas, and content. Then we send everything down the funnel. Later, we need to ingest/digest/review it all to extract the gems: facts, ideas, knowledge. Finally, we can leverage the knowledge to expand our own universe and strengthen our second brain.
This is what I would like to see in the world. What about you? Would you like to use such an integrated environment?
TypeScript keeps getting awesomer (is that a word? Probably not, but you get the idea!). I haven't checked the roadmap (https://github.com/Microsoft/TypeScript/wiki/Roadmap) recently, but it's definitely something that I'd like to do in the coming weeks, just to get an idea of what's coming next.
Here are a few articles/links that I found interesting this week:
TypeScript has a brand-new Website: https://devblogs.microsoft.com/typescript/announcing-the-new-typescript-homepage/
Two articles by Dominik Dorfmeister, an OSS contributor that maintains react-query
- The power of const assertions: https://tkdodo.eu/blog/the-power-of-const-assertions
- Exhaustive matching in TypeScript: https://tkdodo.eu/blog/exhaustive-matching-in-type-script
Anders is busy integrating tail-recursive evaluation of conditional types: https://github.com/microsoft/TypeScript/pull/45711
Dr Axel Rauschmayer explores class static blocks that will be part of ES2022: https://2ality.com/2021/09/class-static-block.html
- As we saw in the last edition, this is already available with TypeScript 4.4. Ain't that cool?!
Content-wise, it's been a very slow week for me. I only found time to publish a single article taken out of Dev Concepts. This article discusses the tradeoffs between quality and user satisfaction. It shares a few ideas about how to deal with that tension and help customers make better decisions: https://dsebastien.net/blog/2021-09-03-quality-vs-user-satisfaction
This week, I want to share a few books that I plan on reading next:
- Being You: The New Science of Consciousness by Anil Seth
- A book about consciousness, a subject that fascinates me
- How to Take Smart Notes by Sönke Ahrens
- In this book, Sönke shares important insights into better note-taking practices. I think that I've already heard about the techniques presented in the book, but I want to read the book anyways
- Good Strategy Bad Strategy by Richard Rumelt
- A book that I've been wanting to read for a while. This one explains what a good strategy is, and what distinguishes it from bad strategy. Good strategy is about solving a well-defined problem which can be observed in the market, analyzing the steps to overcome it, executing, measuring results, and experimenting relentlessly
- Effortless: Make it Easier to Do What Matters Most by Greg McKeown
- I discovered Greg McKeown with Essentialism, a book that I found really awesome. I'm curious to discover his ideas about how to focus on what matters. I imagine it will complement the ideas I have taken from Make Time by Jake Knapp & John Zeratsky
- The Medici Effect: What Elephants and Epidemics Can Teach Us About Innovation by Frans Johansson
- Ikigai: The Japanese Secret to a Long and Happy Life by Héctor García and Francesc Miralles
- I've been searching for my Ikigai for quite some time now. I think I'm getting closer and closer, but it's something that I really want to continue exploring. IMHO it's also a moving target, so the search is never over
There are a few hundred more in my "to read" list, but those are high on my list ;-)
Tell me about what you plan on reading next, I'm curious!
Links of the week, ideas, and tips
Here are a few links that I found interesting this week:
What's new in Chrome 93: https://developer.chrome.com/blog/new-in-chrome-93/
Docker Desktop is no longer free for large companies
- IMHO this is great news
An interview with Brian J. Fox, the creator the Bash shell: https://podcast.curiefense.io/22
An article about the importance of diversity to foster innovation: https://medium.com/swlh/the-key-ingredient-your-innovative-idea-is-missing-8711d95a311f
Kubescape: a tool for testing if Kubernetes is deployed securely, as recommended by NSA and CISA guidance: https://github.com/armosec/kubescape
The JSON pointer RFC: https://datatracker.ietf.org/doc/html/rfc6901
- It's not new, but I've read the RFC for the first time this week. Quite cool!
An Angular discussion about out-of-band type-checking for TypeScript and Template compilation: https://github.com/angular/angular/issues/43131
- Or how the Angular team hopes to improve developer productivity in the future
- Usually, I prefer making debugging easier, but that guy is doing the opposite; don't ask me why ;-)
That's all folks!
Send me some ❤️ by sharing the link to this newsletter: https://dsebastien.net/news
With your help, others will also get a chance to discover it. The more, the merrier ✨
Don't forget that you can follow me on Twitter. Also, make sure to join the software crafters community or join the personal knowledge management community, where I'm always available to discuss and answer your questions!
I'm really interested to know what you think of this newsletter. If you have remarks/ideas/articles/links to share, then please don't hesitate to reply to this mail or send me a DM on Twitter.