I haven’t tried it out yet but seeing the collaboration features in Zed described here, that sounds pretty much like my ideal workflow.

Chat channels including voice and screen sharing integrated directly into a lightning fast editor enabling seamless collaboration and visibility on who are doing something together. Unscheduled calls instead of endless calendar invites that don’t fit the shape of the work anyway.


The comments online around the Apple Vision Pro have been pretty deranged in a stupid kind of way. Lots of people jumped to the foregone conclusion that Apple released a failure or that it “wasn’t going to be a success”. Most of that seemed to have been motivated by clout chasing.

I don’t think that really matters that much other than serving to have the person making the comment show their ass for the entire world to see.

I feel that Apple Vision Pro is a deeply interesting and conflicted technology which is also the conclusion that Cortex reaches here. You’ll notice that Grey and Myke actually used the device and they are fairly knowledgeable about apps and ways of working/playing.

I got to take one home for a weekend and I can testify similarly except for missing out on a bunch of features. Because it’s only out in the US, I could not access a paid App Store or get an Apple Arcade subscription. That means I could only get the free vision apps out there which are incredibly lacklustre.

What everybody seems to have done is to take whatever IP they had lying around, wrap it into a VisionOS starter project and throw it onto the App Store. That will probably be the modus operandi for a while going forward. If you look at the absolute dregs on the App Store and now realise that making a good VisionOS app is probably at least 10x as difficult as making a good iOS app, then things are not looking good.

The only really compelling experience was the Encounter Dinosaurs app which is genuinely disconcerting and scary. But because of its very high production values, it’s also only a couple of minutes long.

Most compelling is using the Vision Pro to consume media. Watching movies in Disney+ is a fantastic experience if the device wasn’t so uncomfortable to use. Being able to watch sporting events on a massive screen with sidecar screens and 3D views of the course/track seems like it would also be excellent. It would be even more interesting if we would see a proliferation of 360 cameras to be able to place yourself in a Formula1 car or on a sports pitch. The amount of embodiment it yields, seems like it could go a long way to make remote meetings feel more real.

I agree with this review that this device is a devkit. I’ll wait for the real deal.

This piece about moving away from CDK is a bit overly dramatic and comes down to “CloudFormation sucks” which is something that anybody who’s worked with it can testify to.

That said if you’re committed to AWS as your cloud provider, CDK is an amazing piece of technology that bridges the worlds of infrastructure operations and programming.

If the concept of bridged terraform providers for pulumi is something that proves itself, that of course would be great, but I’d say it’s still pretty uncertain.


It’s much healthier for Germany if digital issues have an answer that goes beyond “Let’s see what the CCC has to say!” The CCC is a shady organization which is good at taking things apart but does not have that much constructive to offer.

A broader social discussion would reveal that security and privacy are not the only two dimensions on which digital solutions can or should be measured.


My Obsidian Daily Productivity System

On popular request, here finally the write-up of my Obsidian setup. It’s somewhat elaborate but I’ve tried to keep it as simple as possible.

At its core most of my Obsidian time is spent in the Daily Note which is also where most of my actual work happens. I tried to get to a similar setup in my previous note taking tool Foam (see my PR) but there were too many limitations for it to work well.

The Github Gist of the entire setup is here: https://gist.github.com/alper/2bbf8f3cb60466b55026deb47f8e15e6

The main way I use this is I create a new Daily Note for a day and this template seeds that note with all the scaffolding and information I need to be successful that day. It automates and structures what would otherwise be a relatively miserable sequence of manual steps and copy-paste-ing.

The plugins that I use for this are:

Let’s go through the template file from the top:

# {{date:dddd, MMMM Do, YYYY}} 

This sets the title of the note to the date that we are creating the note for. Nothing very special here but note that with Calendar we can create a daily note for any date (it doesn’t have to be today) and that date is passed in as a parameter to the template.


Then comes the tasks section:

### Due Today

((due on <% tp.file.title %>) OR (due before <% tp.file.title %>)) AND NOT done

### Scheduled Today

((scheduled on <% tp.file.title %>) OR (scheduled before <% tp.file.title %>)) AND NOT done

### Done Today

done on <% tp.file.title %>

This is a triple that lists all my tasks that are due on that day (or were before), all my tasks that are scheduled for that day (or were before) and if I finish anything, it will list those tasks under the third section as my work log.

The hack here is that the ISO date is passed in to the templates as `file.title and can then be used to query Tasks. It took me a bit to get this to escape right and figure out how to write the complex boolean condition.

I moved away from Things when I discovered the Obsidian Tasks plugin. Tasks allows me to close over all the tasks that are in my notes and is incredibly flexible and powerful. Being able to do arbitrary queries on tasks in any markdown file in my workspace is nothing short of amazing. I’m still waiting for Notion and other tools to offer something similar.

I always felt the split between taking notes and capturing tasks was incredibly broken and created lots of unnecessary friction. For instance this nonsense with bear:// protocol links in Things that is delusionally claiming that “Bear & Things 3 Work Really Well Together”. These two things should be in the same environment.


Then the second part is a section that creates a scaffold with all the appointments I have for that day formatted as markdown stubs.

It works using this relatively obscure and somewhat finicky tool ical-buddy. In the template I call a Templater user function days_events:

<% tp.user.days_events({CURRENT_DATE: tp.file.title}) %>

which inserts the result of the following command in-place:

icalBuddy -ec "FE0B6DAB-E598-4DE1-9F2B-7DE06A236647,4242177B-7D2B-4A20-AE23-A99DD51D5B80" -eep '*' eventsFrom:$CURRENT_DATE to:$CURRENT_DATE | sd '•' '##' | sd '\(alper@example.com\)' '' | sd '\n' '\n\n* \n\n'

This call to icalBuddy excludes a bunch of calendars I’m not interested in, queries the calendar for events within the specified day and then does a bunch of replace actions that turn it into markdown.

I don’t use Calendar.app (preferring Cron at the moment) but I have my Google Calendar setup in macOS System Settings and leave Calendar open for it to always have up to date data.


Putting everything together, when I double-click on a day, I get a document that looks a bit like this:

The fact that it’s fully automated and that with a single action I can get a relatively complete informational dashboard for what I should be doing that day has been an immense load off. It allows me to hit the ground running and immediately start sifting tasks, go through my meetings and create a plan for the day.

When I know a day is coming up that’s going to be particularly intense, I create the daily note for it ahead of time and start lining up information and talking points for each appointment in the scaffold. Reducing the effort it takes to start that prep and storing it in a standardised format makes it much more likely that I’ll do it and use it. With that preparation ready-to-go in Obsidian it takes out all the stress and I can run my day in a pure flow state.

Late to the party but I very much love this interview with Karri Saarinen, the co-founder of Linear. Their way of working, “The Linear Method”, will be waved away by companies (“we can’t do that because…”) but with leadership with the right mentality and experience I don’t think it’s that far off at all. Ask your leadership how you can work like this.

Also I already know I’m going to use the term “side quest” a lot.

We don’t use Linear but we recently moved all our stuff from Jira to Github Projects which—even though it is mostly abandoned—is Linear-enough.

Most importantly, it is right on top of our codebase which is where I believe all engineering work should happen anyway.