I'm experimenting with a weekly update email about the frontiers of computing.
- links and summaries of interesting writings
- discoveries of new people and projects
- updates on my personal work
If you'd like to subscribe:
1st edition ships in an hour.
Holy wow. The new 3D flyarounds in Google Maps are 👀
In a browser, go to Google Maps and search for Manhattan. Hover over the Flatiron Building or the Empire State Building. Enjoy!
Appears to be 3D depth models + photographed texture maps, like Street View but from the air.😳
I rant about how great mastery-based education is
@LambdaSchool
, but it gets real when you have to tell a student “you haven’t got it yet - I need you to try again.” Especially when “trying again” adds months to their education.
It’s effective, but it is NOT easy.
It seems that there are just three approaches that "knowledge management" apps take:
- Document-first (Notion, Obsidian, etc)
- Spatial-first (Miro, Muse, etc)
- Table-first (Airtable, Tana?, etc)
...and then they try to add the other two.
Is there another way?
"Users must once again design their own environment. Only then can they feel competent, responsible and mature. They know their own needs and the particulars of their own problems better than any professional designer.
Every act of building must be thought of as repair of the
Taking one idea very seriously:
Software should only have to define the schema of data in a single place.
From that singular schema, all the other aspects of the software system should be able to derived: from the user interface all the way to the storage layer.
Wanted: The History and Possible Futures of Computing, a cohort-based course.
Weekly projects rebuild landmark past systems:
- SmallTalk interpreter
- SketchPad in a browser
- Alto on an FPGA
- DIY HyperCard
Capstone: build your own futuristic computing environment
why is it so strange to want dedicated screens for my common computing experiences?
hanging on my wall I want:
- kanban task board
- google calendar
- dashboard of current project analytics
dedicated device for:
- reading web articles / PDFs
- watching YT video
- social media
Alan Kay's advice for inventing the future has a surprising nuance: build it quickly.
Here's the detailed roadmap:
1. have some "woowoo" intuition about a future technology
2. identify a "favorable exponential" that will make the intuition possible in the future (moore's law,
Today* is Personal Software Day!
Today we celebrate those little bits of software that you customized to run your life. Share some tool, tip, or tailored trinket below.
From shell scripts to spreadsheets, if you use it, share it!
* like Hallmark, I just invented a holiday. 🥸
Really interesting solution to the "zoom in an infinite canvas" problem. Basically, there are two zoom levels: "all the way out" and 100%. When you click/tap at "all the way out", it zooms you to 100% at that point.
✨ 2.2 is out with board overview!
Zoom out to get a bird’s eye view on large boards using the overview button on iPad or the ⌘+O shortcut.
Tap or click anywhere to zoom to that spot on the board.
Teach yourself to pay attention to your tiny urges when using software, those tugs that tell you how the software could be different in order to better serve you.
Write them down.
Share them with others.
Wherever possible, make the changes yourself.
Conform your environment.
At
@dxos_org
we develop a framework for local-first software where users own their own data. We also build Composer, a malleable knowledge work environment.
With Open Canvas Working Group, we're developing a common file format for infinite canvases.
Why does that matter?
1/n
Browsing the top
@obsdmd
plugins by # of downloads.
Revealed preferences: people want their whiteboards, tables, todos, calendar, and kanbans right alongside their docs.
Loosely held belief: too much automation in your note-taking setup makes you less effective (at recall, application of knowledge, etc).
The manual work of moving things around, creating new pages, manually linking, etc is core to internalizing the system in our minds.
Onboarding to every engineering team is always a series of small horrors.
"You don't do X?"
"You use Y software/library?"
"You built Z?"
Remember that a group of smart, motivated individuals made informed tradeoff decisions to arrive where they are now.
Remember that.
It's a
@LambdaSchool
mini bootcamp, led by me! 😬
Tomorrow night I'll be live-coding a basic web server using Java: 5pm PT/8pm ET
Come hang out and learn the basics of HTTP and how browsers and web servers talk to each other!
📹
This talk about Theory in HCI is really nice.
Does theory in HCI work like theory in natural sciences?
He presents a more subtle interaction between theory <> artifact <> observation.
"And so the back and forth between theory, observation and artifact is more complicated or
The real existential threat to GitHub is a change in VCS. Wonder if they are experimenting with post-git modes of collab?
As great as the platform is, git is still the substrate it’s built on.
If someone (Replit?) were to reboot collab without git, they could outpace GitHub.
@michael_nielsen
Donald Miller, in A Million Miles in a Thousand Years, reflected on the process of working with screenwriters to turn his life story into a feature-length biopic.
His take-away? His real life was "not a good story."
He decided to use "story" as a rubric for organizing his life
if real app interop were a thing, apps wouldn't all have to compete on "polish" but could differentiate on actual features
today, certain app categories have an impossible uphill climb just to reach the "floor"
breaking down app data silos will drive much innovation
I'm building an in-browser simulator of Noosphere, a massively-multiplayer knowledge graph protocol by
@gordonbrander
and
@0xcda7a
.
Noosphere is a delicious stew of IPFS, IPLD, UCANs, CIDs, pet names. I'm simulating (faking) it all in a SvelteKit app.
🧵Thread of progress...
@natemodi
@Austen
Surely there’s a dozen startups that have tried and failed at this point. Technically, it’s incredibly easy. Has to be a customer acquisition challenge.
@andy_matuschak
@michael_nielsen
@MilanGriffes
@aresnick
Alan Kay's observation on this is you can't just have a single team: you need an entire league. The Los Angeles Lakers alone can't play ball. They need someone to play against in order to become their best.
SNEAK PEEK 🫣
We're working on a redesign of Composer, our extensible, collaborative, local-first knowledge work environment.
Lots of tiny improvements every day. Feeling nice! ✨
I wrote up notes on the Betaworks Render conference from Tuesday. Went much deeper than I had planned. I don't love the formatting, but I think it was valuable processing time.
Good music has a surprisingly long tail: artist hasn't released anything new since 2016, 1.6M monthly listeners on Spotify.
So different from (modern, web) software, which is unrelentingly unfinished.
How could shipping software be more like delivering a singular finished work?
@mckaywrigley
BASIC on an Apple IIGS. To make fun of my brother
@brentoken
.
10 PRINT "WHAT'S YOUR NAME?"
20 INPUT NAME
30 IF NAME <> "BRENT" THEN PRINT "HELLO " + NAME + "!"
40 IF NAME = "BRENT" THEN PRINT "HELLO STOOPID"
When you see an announcement like "
@FirstHQ
acquired by
@remax
", there's so much you don't see.
Here's what I see in 4+ years at
@FirstHQ
, complete with emojis. A thread:
"We move fast here."
"Things don't move as fast as they used to."
"It feels good to go fast."
Whenever you hear people talking about "moving fast" within an organization, you should clarify what they mean by that. It's usually a code word for something on the right or left side.
What do you call the pattern where data is stored outside the application?
I usually end up describing it to people: "you know how desktop software stores things in files on disk? Like that."
@geoffreylitt
called it Bring Your Own Client:
@amasad
@WarronBebster
This is huge. I might start moving my apps/sites over from Netlify. Why not? Built-in IDE with mobile app for quick fixes?
And this is a killer "coming soon" list right here:
You know the term “acquired taste”?
Turns out there is an explanation for it involving neuroscience and information theory.
Roughly, our sensory perception is a process of pattern identification, making sense of our senses, so to speak.
Buckle up.🧵
1/n
Working on an app platform that gives you:
- Local-first
- Multiplayer
- Peer-to-peer
- Interoperability*
Just looking at that list makes me giddy.
*bring your own client, like files on a filesystem, ya know?
@Austen
I use this definition of a startup: "a temporary organization designed to search for a scalable, repeatable business model."
The "scalable and repeatable" part can take a while, even when people want what you're making.
my worst habit when it comes to writing is writing an epic long intro that spells out in 1500+ words the background for what I'm about to write and then never getting to the actual content.
how do I trick myself into skipping the intro?
my drafts folder: 58k words across 73 notes
i'm an avid drafter, but I rarely publish
would like to learn to close the gap between drafting and publishing
@Austen
One of the most powerful topics is probably systems thinking. The unexpectedly complex interaction of a few simple rules.
Will Wright, designer of SimCity and The Sims, calls it “possibility space”:
I am SO EXCITED for the next few months at
@LambdaSchool
. And it's not about what _I'm_ doing; I can't wait to show off the amazing work of students building 👏 world 👏 class 👏 products 👏
So. Much. Fun. 😊
👀 Look out for TFT Rocks Spatial Canvases, Part 2!
⏰ Next Thursday, Oct 20, 9-10:30am PT.
👨🎨 Featuring two programmable canvases!
@polbaladas
from
@_paulshen
from
Hope to see you there!
Adopting a new tool is hard. It means changing your workflow.
Even if the new tool is 100% feature overlap from your old tool and contains all of your data from the old tool (never the case), you still have to remember to grab the new one.
At scale, only social pressures
Really terrific Tools For Thought Rocks event coming up next Wednesday, February 23 @ 9am PT. Speakers include
@alexobenauer
,
@geoffreylitt
, and
@pixelflipping
.
You can register here:
Sharing a single database across multiple apps is even more powerful when you share the ✨schema✨ as well.
Discover and deal with new data types at runtime. Pretty magical!
Novel interface for exploring a spatial canvas of “cards.”
Curious how cards are associated. Imagine if you could browse your notes this way, with associations being backlinks.
Excited to announce a project I've been working on: I'm 15 hours in to building a product from whiteboard to real users and I've 📹 recorded every minute of my work.
Today I'll be continuing the journey LIVE from 11am ET to 1pm ET! Join me in 45 minutes!
Hot take: there is no such thing as “knowledge work.”
All work requires knowledge.
Work is always context-situated. There’s not an abstract domain called “knowledge” where some privileged class of work occurs.
Focus more on the context and the necessary knowledge will follow.
I want to build the programming equivalent of football “game tape.”
The real-world, play-by-play work of a software developer building something real that other developers can study and learn from.
🎥🎬🎤👨💻🏈📽
The first TFT Rocks conversation about spatial canvases is coming up next Thursday, Sept 29, 9-10:30am PT!
Featuring:
-
@pketh
from
@KinopioClub
-
@itsddang
from
@EdvoOfficial
Come join the conversation!
Given how
1. Common software is
2. Useful software is
3. Personal software can be
It's a shame that software is not easier to make. And I don't mean "easier to make for people who make software". I mean anyone who might benefit from having their computer do a thing for them.
One thing at
@LambdaSchool
that will never get easier:
Having that tough conversation with a student who hasn't mastered the material and telling them they need to repeat months of work. 😥
Giving people what they NEED rather than what they WANT is TOUGH. 😭
ugh going to the library this afternoon with a reMarkable and a book
I can't be trusted around a device with an internet connection and a web browser today
honestly, this should be a required class for every comp sci program
as
@_adamwiggins_
said, in tech we have "a willful disregard of history, ... reinventing everything, not using scholarship of the past to learn what's worked and what hasn't, the way any other field would."
Onboarding into a new role
@LambdaSchool
this week, and I've never appreciated our onsite more than today.
90% of the people I need to meet 1:1 and work with I've already had an in-person conversation during our onsite last December.
Makes that first Zoom call so much better!
"Note-taking apps" aren't about notes. Or Apps.
It's the invention of a general-purpose power tool for knowledge workers.
Think inventing the next spreadsheet. Or whiteboard. Or book.
turns out we had life better in '96 with html imagemaps
arbitrary polygons over an image is no longer a thing because HTML has gone the way of documents and it fights you at _every_ _step_
Exporting = one-way door
File over app = two-way door
Do not mistake the map for the territory.
Many apps allow you to export your data. That's better than nothing, but not the same as editing files directly. An export is a representation of your data. It's an output of the
@CatoMinor3
@codexeditor
@TfTHacker
@cortexfutura
Here's my "complete" list of tools for thinking primitives. Not saying we need/should have all of these in every editor.
Will expand on this in writing at some point :)
I don’t code programs to ship them to anyone but me, at least for now.
But I’m happy to be at this stage—it is my zero-to-one for coding. I regularly create functional programs that help me, and I’m learning more each time I do it.
Teach yourself to pay attention to your tiny urges when using software, those tugs that tell you how the software could be different in order to better serve you.
Write them down.
Share them with others.
Wherever possible, make the changes yourself.
Conform your environment.
Why are we building Composer?
We want to bring "Open with..." to the web.
Why should you only be able to open your work in a single app? Some prefer
@tldraw
, some prefer
@excalidraw
. Why not both?
Follow along at
IDEA: Erector set for note-taking
Instead of making another note-taking tool, what about making a toolkit that makes it trivial for anyone to build & infinitely customize their own note-taking tool.
What papers should one read if one was designing a new computing environment* from first principles?
*by "computing environment", think operating system, but more the user interface than the technical layer
me: "This is brilliant! This is gonna change the world!"
also me, a few min later: "This is reductive and duplicative. There's nothing new here at all."
repeat