2024.03.18.

Making my file archive portable in a different way

I looked into how Tailscale works behind the scenes, but I’m still not sure I need a 3rd-party tool to create a virtual network for my devices. There are a couple of cool uses of a network like this, like syncing DEVONthink and OmniFocus over WebDAV using my Mac mini. Still, I also have an Apple Watch, which doesn’t seem to work with Tailscale, so I can’t sync OmniFocus with my Mac mini there like I originally planned.

Initially, I was looking for something that could give me access to my Mac mini outside of my network to get to my file archive stored on my external drives connected to my Mac mini. But giving it a second thought, there is a good reason we have the distinction between Cold Storage and Active Storage.

For me, Active Storage is iCloud Drive, which is synced to all my devices. Cold Storage is not something that I should have access to all the time (not to mention ransomware and other dangers). So, from a security point of view, it’s a good thing that I have a local Mac server and a remote Linux server used for different things. Each of them requires a different level of security, and Tailscale merges them all into one network, which I’m not sure I’m comfortable with.

I’m thinking about shelving this whole idea of reaching my Mac mini server outside of my network and making a distinction between private networks and public networks. A public network means it should be available anywhere, but it should be end-to-end encrypted. This is what DEVONthink and OmniFocus do: each uses my WebDAV server running on my public server as a syncing backend, but these apps store data encrypted.

On the other hand, my private network should be guarded, and data stored there should have a good 3–2–1 backup plan instead.

So, instead of using the network as a transport layer to access my file archive, I’m thinking about using an external drive to bring a copy of my archive with me when I’m away.

2024.03.17.

Playing around with Tailscale

I’m playing around with Tailscale, but I’m not sure about the privacy aspect of being on a VPN all the time. I want to sync DEVONthink and OmniFocus using a WebDAV server on my Mac mini, but running Tailscale 24/7 raises some questions.

  1. Is it really end-to-end encrypted?
  2. Does all traffic go through the VPN?
  3. What about network issues when using a VPN? I’ve seen some connection drops in the OmniFocus sync logs when I used my Mac mini as a sync server.

I love the idea of having my private network of devices available everywhere. But I don’t trust random companies with my data, so I want to do my research before I start to use Tailscale with all my devices.

2024.03.16.

Open-sourcing thinking

I write a lot every day, but I don’t publish a lot of it since I have this fear of being judged. But I have a lot of ideas and thoughts that can be boring for some people but maybe interesting for others.

I ramble about tools and workflows in Day One and my Zettelkasten. Those are private posts that are not necessarily useful to anyone, but I want to publish them anyway because I can see a history of my thoughts, which can give someone else an idea.

That’s what #DigitalGarden is about, but it is still different. Sometimes, I want to write a journal entry and be done with it. I don’t need a full-fledged Zettelkasten all the time.

Actually, I’m afraid of publishing these ideas, but as we have had success with open-source software in the last couple of decades, maybe open-source thinking can be a helpful thing to master, too.

What do I mean by that? Blogposts without much crafting and maybe even with a lot of grammar errors, but the idea is that I can write about something, then continue thinking about that idea in a new post, and so on. Maybe I’ll run into a conclusion and come up with something cool or ignore the whole thing at the end, but the critical point here is that I should flex my writing more, and my blog is still the best place for that.

Inspired by More people should write

2024.02.24.

On Apple pundits attitude towards the iPad

2024.02.22.

The new version of the ActivityPub WordPress plugin lets me reply to comments coming from Mastodon and federate them back as standard replies. I just wanted to install an instance this morning to have a profile that I can use to reply to incoming comments, but this one is way better.

Again, you can follow me on Mastodon by searching for my profile (zsbenke@decoding.io) from your instance.

2024.02.18.

Building my own web

I’m very disappointed after reading comments on this article: How Twitter’s descent into chaos is paving the way for a new web

I don’t want to see this divided mentality (especially politics) under articles that are talking about cool indie projects. The mainstream web has gotten into a state where people just inject politics into everything. If I want to have a place that I like, I have to build my part of the web.

A Zettelkasten and a blog can help with that. I can make my blog cozy, write about what I like, and then browse that from time to time to rediscover things.

2024.01.27.

Getting familiar with Emacs

  • I can safely say that Emacs (with Org mode) is my new PKM app. It is really good (and I’m telling you as someone who loves Vim).

    • I started to mess around with Org mode about a week ago.

    • Org mode is just an awesome way of organizing information and actually do something with it.

  • I added Hookmark integration for Org mode based on these scripts.

  • I’m still going to use Vim for web development, but Emacs is my thinking space now (my home-grown Roam if you will).

    • Of course I’m using Evil mode in Emacs.

    • I don’t have time to learn a new way of editing text currently.

2024.01.19.

Letters to Myself

I’m writing emails to myself. Seems like other people do this as well. It is yet another way of journaling, but I email is special since it’s open, and I can never change it again (I mean I can change it, but you get the idea).

I just discovered that both Emacs and Vim nicely wrap text in a message-mode / mail file type. This is cool since properly formatted plain-text emails are a treat these days. On top of messing around with Org Mode, I’m playing around with the idea of using Emacs for sending emails to myself. It has a bunch of macOS services built around creating new messages, so starting one from LaunchBar is easy. Emacs will open a new buffer and I can start writing a plain-text email. Then I can send the message over to Apple Mail with the keyboard shortcut of C-c C-c.

So why do I want to send letters to myself?

Well, it is a way to write about something interesting to me at the moment. Since both Emacs and Vim wrap the line as I write, it is a bit hard to edit these messages afterward, so I’ll think a bit more about how I say things. This is a benefit since it slows me down.

Emailing myself is a way to reflect on things. It is a journal entry basically, and I have Day One for that, but I still like the aspect of sending something somewhere. I have feeling being done with it, so I don’t have to deal with it anymore. I just like getting thoughts and feelings out of my head, and sending it to myself to park it later. If an email is sent, it can’t be changed anymore.

After sending these emails, they reappear in my inbox, where I can just read them again, then move them to a folder called “Letters to Myself”. After a while, I’ll have a bunch of cool letters that my past me sent to the future me.

I should read more about this habit…

2024.01.05.

Texting yourself for capturing ideas

  • A couple of months ago I started to use Messages for talking to myself.

  • Why do I want to do that?

    • When I want to figure something out, I noticed that the best way to do it is to start writing in freeform text.

    • It feels like talking to myself, which helps me to externalize my ideas, and find solutions quickly to problems. It’s like a pre-thinking phase for capturing ideas in a timeline format, then organizing them later in a mindmap or an outline.

    • Slack has a similar idea of why you should start to message yourself. When you open your profile and press the Direct Message button, the following message appears on the top.

      • This is your space. Draft messages, list your to-dos, or keep links and files handy. You can also talk to yourself here, but please bear in mind you’ll have to supply both sides of the conversation.

    • Others also wrote about this idea in more detail. It is the modern version of emailing ourselves.

    • Messages is actually a pretty cool candidate for this workflow. It is available on all my devices, I can pin messages for reviewing them later, and it is still the best way to share information between my devices when AirDrop and Handoff farts themselves.

  • How to set it up?

    • Texting with ourselves in Messages is a bit weird since every message will be sent back in the same thread duplicating everything. We can avoid that by registering a new iCloud account and sending messages to there.

    • I have a sparse iCloud sandbox account which I use for testing. I logged in from my old MacBook Air, then I started to write thoughts for myself over iMessage.

      • We have to log into a separate iCloud account at least once, otherwise, Messages won’t pick up the account as a proper recipient.

  • This is yet another version of the capture step in GTD

    • This idea was cool, but for me it quickly fell apart. People get the idea of writing stuff down, but they forget that it needs to be processed later.

    • When I had to pull out data from Messages, it was hard to mark my processed position in the timeline.

    • I started to use a marker message by typing 5 equal signs which is similar to how I mark my processed position in my notebook using a double line.

    • When I process, I usually reference information between apps, which means that I like to link to the source or at least copy the text out into a place that I can link to.

      • There is a hidden URL scheme in Messages, but it is really hard to link to messages.

        • sms://open?message-guid=UUID

        • If there is a data detector visible in your message (like the text of “tomorrow 9:00am”), Messages will underline it, and you can create a new event or a reminder by clicking on it. Creating a new reminder will also add the link to the message which you can copy.

    • Getting links or text out of Messages is actually bit convoluted.

  • Strflow, an actual app made for texting yourself

    • I just found a unique new app today called Strflow, which mixes note-taking with a messaging interface. It works exactly like I wanted to use Messages.

    • Why it is better than Messages?

      • There is a “Copy Note Link” command for every note.

      • Notes can be edited after they are created.

      • There is a minimal Markdown-like syntax available, which lets me have the right amount of formatting for quick notes like these.

    • I love unique apps like this one – that’s one the reasons I love the Mac, since you can always find interesting tools like this – although it still has some missing pieces.

      • iOS version (the developer mentioned that he’s working on it).

      • Spotlight integration: it just feels right to index and search snippets of information in Spotlight.

      • Better export: we get a JSON file on export, but since the app uses Markdown for formatting, why not export proper Markdown notes?

        • It would be even better if I could define a date range for exporting, so processing information can be done outside of Strflow.

      • Although there are unique links for each note, getting them is a bit hard. I have to ⌃Click and choose the “Copy Link to Note” command from the context menu which is not available in the app’s menubar.

        • strflow://show-note?id=UUID

      • Selecting notes can be done using the trackpad, but having keyboard shortcuts for navigating up and down would be useful to select one or multiple notes.

  • So what am I using Strflow for?

    • As I mentioned, I mostly use this app for talking with myself to figure out something by writing.

      • I started the draft of this post there.

      • I saved couple of links which I want to revisit later.

      • It is like a private version of Mastodon.

    • It is going to be another inbox/journal/status update tool next to my interstitial journal in TaskPaper.

2023.12.24.

Toggling Dock position via Apple Script

  • I want to toggle my Dock position between the left side and the bottom of the screen, depending on the context I’m in.

  • To do this…

  • Here’s a demo in action.

2023.12.19.

It is more than funny (and sad) that Electron apps are so bloated now that they can’t even offer a proper universal binary. You have to pick the CPU family on download.

New Hookmark scripts for Reminders

I updated my Reminders/Hookmark integration script recently to make it faster on Sonoma. I also made sure that I have a “New Item” part too, so I can create reminders directly from Hookmark.

The “Get Address” script uses the backing SQLite database to find the ID of the selected reminder by title.

There are some caveats to keep in mind:

  1. We have to replace the remindersDatabasePath property with the proper database path which is different for everyone.
  2. Reminders are matched by title, so if we have multiple reminders with the same title, the script may fail to link the proper one.

Here are the scripts updated for Sonoma:

Get Address

use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions

-- Replace this with your Reminders database path.
property remindersDatabasePath : "/Users/yourusername/Library/Group Containers/group.com.apple.reminders/Container_v1/Stores/Data-some-UUID.sqlite"

tell application "System Events"
    tell its application process "Reminders"
        tell its window "Reminders"
            tell its splitter group 1
                tell its UI element 3
                    tell its UI element 2
                        tell its UI element 1
                            set reminderOutline to first UI element whose selected of UI element 1 is true
                            set theReminderName to value of UI element 2 of UI element 1 of UI element 1 of reminderOutline
                        end tell
                    end tell
                end tell
            end tell
        end tell
    end tell
end tell

set theSQLCommand to "/usr/bin/sqlite3 \"" & remindersDatabasePath & "\" \"SELECT ZCKIDENTIFIER from ZREMCDREMINDER WHERE ZTITLE = '" & theReminderName & "'\""
set theReminderIdentifier to do shell script theSQLCommand
set theURL to "x-apple-reminderkit://REMCDReminder/" & theReminderIdentifier
return "[" & theReminderName & "](" & theURL & ")"

New Item (this one can be a bit slow unfortunately)

tell application "Reminders"
    set theName to "$title"
    set theBody to "$user_link"
    set theReminder to make new reminder with properties {name:theName, body:theBody}
    set theReminderURL to the id of theReminder
    set theReminderURL to do shell script "echo \"" & theReminderURL & "\"|sed 's/x-apple-reminder:\\/\\//x-apple-reminderkit:\\/\\/REMCDReminder\\//g'"
    activate
end tell

theReminderURL

I haven’t tested these on earlier systems.

2023.12.16.

Checking the time on my Mac

  • Inspired by a recent post about keeping the menubar a bit more compact, I switched the menubar clock to the analog version.

  • Since clicking on the clock also toggles Notification Center, adding the Clock widget (with a monthly calendar) made sense, which is way more readable than the small one in the menubar.

    • I can even toggle Notification Center with the Globe-N keyboard shortcut for quick clock access.

  • On the other hand, I remembered a Mac app, called FuzzyClock. It’s an old app that shows you the time, kinda… Instead of displaying 8:23, it just says twenty past eight. Sadly, FuzzyClock doesn’t work on newer systems anymore, but I found FuzzyTime which is a modern, reimagined version of FuzzyClock.

    • What’s the point of these apps? Sometimes, maybe we’re too attached to being precise with our time, and not knowing exactly what the current time is can ease that, making us more focused.

  • Since I hid the digital clock because I wanted more space in my menubar, it’s not ideal if I see FuzzyTime running all the time. It takes up more space than the digital clock, but it would be nice to toggle it using a keyboard shortcut.

    • I used Keyboard Maestro to automate the display of FuzzyTime.

    • Pressing ⌃⌥⌘H will open FuzzyTime, and pressing the same shortcut again will just quit it, resulting an on/off toggle effect for FuzzyTime in the menubar, which is exactly what I want.

  • In essence, here’s how I check the time on my Mac now.

    • Oh, I and still have plenty of space for my app icons in the menubar.

2023.12.12.

Follow-up on Apple and journaling:

I like the Journal app, even if it’s barebones as all 1.0 apps usually are. Since I mostly use default Apple apps, the recommendation feature works well for me.

It is a good base for more advanced features in the future (I guess we see nothing new until the next WWDC).

I’m going to keep Everlog around as an archive though.

2023.12.09.

2023.12.07.

2023.12.06.

Coloring visited links

  • One annoying thing that happened today’s “beautiful” web is that we forgot that we have this CSS selector.

    • a:visited

  • I was also sinful in this, since I just pushed a change which adds proper a:visited support to my site.

    • This is mostly annoying for me, since I see almost all links as visited, but can be helpful for readers.

  • Now you can see visited links in a different color than the default links.

2023.12.02.

Setting up Type as a quick capture interface for my TaskPaper journal

2023.11.30.

What the hell happened to messaging apps?

  • I remember when we had Adium and you could connect almost all of your chat services to one client.

    • Some features were missing, but the basic texting part usually worked.

  • We had a way to set our status to online, away, or offline. There was no need for Do Not Disturb or notification management since you just went offline and nobody could reach you.

    • Actually, you can still use Slack like this.

    • Some services even queued up your messages, so the next time you went online, new messages awaited you.

    • I could even set the currently played music as my status.

  • Almost all messaging app had some form of proper native Mac app.

    • Remember that Skype for Mac was actually a pretty decent Mac app with AppleScript support.

      • These days, it’s just an Electron app, although nobody uses Skype anymore…

    • My friends used MSN Messenger too, which was kind of a crappy client, but at least you could use it through Adium.

  • These days, I have to use Cardhop to have proper messaging integration in my contact list to have a central place to jump into the different clients.

  • Almost all clients are stupid Electron apps on the desktop.

    • Mobile clients are better: at least some of the biggest players have proper native apps on iOS.

    • Facebook Messenger for Mac is a React Native app, which is a bit better than Electron.

  • I can’t go offline anymore; instead, I have to manage my notifications and schedule them using Focus modes.

  • I kinda miss old IM apps.

2023.11.29.

Follow-up on Liked “MailMate”:

I just bought MailMate a couple of minutes ago. It turns out I love to use plain-text email for writing and reading. It’s just way easier to edit my emails in MacVim than to fuck around with the Mail.app compose window.

The Things integration is also pretty cool. I can get the complete plain-text email in the to-do note, which is way more excellent than the jumbled text-fest I had previously parsed by the Things mail service forwarded from Mail.

I’m still developing my workflow around the rule-based smart mailboxes, which are pretty powerful.

I’ll write more about this app in the future.

Messing with Play and YouTube subscriptions

  • Play 2.0 just got released with a new channels feature.

    • It’s behind a subscription, but you can try it for seven days.

  • I started using Play as a replacement for YouTube’s Watch Later list (and for other sites too, like Vimeo).

    • YouTube is an attention magnet, and I want to avoid it when possible.

    • Using the Watch Later feature makes this more hard.

    • Play keeps me out of the YouTube app, mostly…

  • I also follow YouTube channels using RSS from Reeder instead of the YouTube app.

    • This way, I have an integrated workflow of browsing videos, blog posts, Mastodon posts, etc.

    • I’m also trying to give minimal data to Google through YouTube other than my watch history.

      • I have watch history turned off, but I’m sure Google still tracks it.

    • Because of this workflow, it seems redundant to use Play to subscribe to the same list of YouTube channels.

  • I added my list of channels to Play anyway to test the Channels feature.

    • It was a bit annoying since Play has no Shortcuts integration for managing channels or OPML import.

  • I don’t have a conclusion on the usefulness of this feature for me yet, but I’ll test it in the following week, and we will see if I keep the subscription or not.

2023.11.23.

Giving up the IndieWeb markup on bookmarks for now

  • I’m giving up the IndieWeb markup with bookmarks, since they kinda hard to get right.

  • All I want is a title and a blockquote, but with the IndieWeb markup I have to have a post content just to markup the link properly.

  • So, instead, I just add the “Bookmarked”, “Read”, “Liked”, etc. verbs to the title of the post and be done with it.

  • If someone has a better idea, let me know.

Publish bookmarks from DEVONthink

  • I’m messing with my bookmarks today.

  • I keep a lot of cool articles in DEVONthink as my central repository, but I also want to share some of these links here.

  • I’m testing a simple workflow for this using a DEVONthink smart group, which shows me all my bookmarks from my Decoding database that aren’t published yet.

  • This workflow desperately needs automation, but I want to start as simple as possible and see how it works in practice.

  • Here’s a demo video.

I’m just testing if I can ping another post from MarsEdit using Webmentions.

This is the not-so-poor men’s version of backlinks.

Update: looks like it worked!

Screenshot 2023 11 23 at 09 10 52

Adding Safari selection to my “Respond on Decoding” shortcut

  • It is actually occured to me that I can get the current Safari selection in Shortcuts, convert it to Markdown from Rich Text, then Markdown to HTML, then I end up with a blockquote.

    • You need Drafts for the Markdown to HTML action.

  • Since all my respond type posts are created using one shortcut which decorates them with microformats, this makes me able to select text, and append it to the post.

  • On the long run, this will give me context on why I saved something to my bookmarks.

  • Here’s a demo video in action.

2023.11.22.

Interesting blogs

  • I think I’m going to start a new post series called interesting blogs.

  • I just want to save sites that I find on the web into a nice journal format.

  • It doesn’t necessary mean that I’ll subscribe to them using RSS, but can be a cool new tag in my bookmarks.