Stream of Thoughts

Momentary fascinations & inklings of ideas

Hello!
This is my place for messy drafts and other early-stage writing. Feel free to poke around, or go to the home page.

Recent Notes

Indie Apps I Enjoy

Sublime Text

This is my text editor of choice for many years and I’m a happy paying customer. It’s fast with a very light feel, and does the basics well – editing, navigation, search – while staying responsive and almost bug-free.

I’ve tried VSCode before but couldn’t get past inelegancies in the user interface or the laggy feeling of the editor. The folks behind Sublime Text also make a visual Git client, Sublime Merge, which I also use.

superwhisper

This is a great little app for speech-to-text transcription. In fact, I’m writing this post with it. I like it for its relatively reliable and responsive text-to-speech functionality (press a keyboard shortcut, talk, press another one, and have it paste the transcribed text). I haven’t been interested in any of their more recent developments that add additional AI features.

Little Snitch

A nice firewall and network monitor app for Mac that comes with some nice visualizations of data rates over time, and geo-located servers that your computer is talking to.

Things

This is a to-do app that does the basics well and has an extremely pleasant user interface. I mostly use it to add tasks on the go using a shortcut on my home screen. These tasks go into an Inbox area that I can triage later. It’s mostly helpful during the times of my life when things get busy and I need some external memory to stay organized.

Bike

Bike is a text editor and outlining tool. I like its approach to text editing and use it for some of my freeform notes because it makes it easy to create a hierarchy and jump around a big outline. There are some features that I have consistently missed (I want to be able to paste in images & files), so I’m in the process of moving on to other apps for my writing, but I still like many of its ideas, including a novel caret affinity system that solves a common issue when editing rich text.

Weather strip

This app has a really nice visual way of presenting the weather. I’m always excited about clear and clever data visualizations.

Capo

This is a fun app that helps you learn how to play a song by doing some helpful signal processing and showing you an annotated spectrogram with chord changes, and gives you the ability to slow down and loop particular sections of a song.

Others

This is getting a bit long so I’ll end with a few other indie apps (all created by independent developers or small teams) that I either use or spiritually approve of: Bear, Overcast, Halide, Puzzmo, Datasette, and Kirby.

And on a related note, there are a few individuals who make fonts I like a lot: MB Type and Fabrizio Schiavi.


Setting up an auto-publishing workflow

A quick note on how I’m syncing Bear with this site, since I haven’t done this before.

I’m using launchd to update this site the with the most recent content from Bear every minute. Right now, there’s hardly any content here so the inefficiency of re-generating and re-deploying everything is not a problem.

The launchd bit was a bit prickly to figure out, so I figured I’d write it down here. ChatGPT helped with a lot of the basics. Here are the instructions I ended up with (just pub is a recipe that uses the excellent Just command runner):

Save this to ~/Library/LaunchAgents/is.yuri.pubcommand.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>is.yuri.pubcommand</string>

    <key>StartInterval</key>
    <integer>60</integer>

    <key>ProgramArguments</key>
    <array>
      <string>/bin/zsh</string>
      <string>-c</string>
      <string>just pub</string>
    </array>

    <key>WorkingDirectory</key>
    <string>/Users/yurivish/Dropbox/Projects/what</string>

    <key>StandardOutPath</key>
    <string>/tmp/what_yuri_is_output.log</string>

    <key>StandardErrorPath</key>
    <string>/tmp/what_yuri_is_error.log</string>

    <key>EnvironmentVariables</key>
    <dict>
      <key>PATH</key>
      <string>/Users/yurivish/.cargo/bin/:/usr/local/go/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
    </dict>

    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

Then run:

launchctl unload ~/Library/LaunchAgents/is.yuri.pubcommand.plist
launchctl load   ~/Library/LaunchAgents/is.yuri.pubcommand.plist

This will automatically run the publication command every minute, publishing the #pub notes from Bear.

To temporarily disable the scheduled job, you can unload the plist using launchctl:

launchctl unload ~/Library/LaunchAgents/com.user.pubcommand.plist

This will stop the job from running without deleting the plist file. To re-enable it later, simply load it again:

launchctl load ~/Library/LaunchAgents/com.user.pubcommand.plist

You can see logs by tailing the paths specified in the plist file under StandardOutPath and StandardErrorPath.


Trying something new.

This is my place for rough ideas and half-baked thoughts. I’ve set it up to automatically synchronize with a new note app that I’m trying out, Bear.

I hope this workflow will lower the barrier to writing online. I’ve wanted to be a writer for a long time but have never been very comfortable with the process, and I often feel like my taste handily exceeds my skills. This seems fairly common and I’m finally going to do something about it.

In the spirit of making things easy I’m going to try another experiment, which is to draft my notes with voice using superwhisper. This will either increase the length of my posts or improve my speaking concision…

The main goal is to get comfortable publishing messy notes and unrefined ideas. I’m curious to see how it goes.