stephen.news

hypertext, words and more

MacOs

  • I am not interested in shelling out money to use productivity apps. This is for two reasons:

    1. Most productivity software has moved to a subscription model. No thanks.
    2. Apple provides these out-of-the-box on iOS and macOS. Seems good!

    If those two items resonate with you, you’ve come to the right place. There’s of course problems with staying with the Apple ecosystem. For example features and bugfixes typically only ship once a year. Sometimes, you get no features at all in a given release cycle! A small trade-off for inexpensive productivity apps.

    I love Obsidian. Especially because you get a lot for free. But, I keep coming back to the Notes App. It is simply too easy to use and frankly more available when I just need a place to jot something down. It also seems that Apple is making incremental steps to improve Notes, especially in the context of Apple Intelligence making its way to iOS users very soon:

    That being said, the true power of the Notes app lies hidden within another another app altogether… Shortcuts! iOS Shortcuts are the key to unlocking more effective productivity across the Apple ecosystem.

    I’m shamelessly re-posting Volkov’s iOS Shortcuts from his piece titled, The Digital Minimalist’s Complete Guide to Information Management in Apple Ecosystem:

    Basic with No Tasks:https://www.icloud.com/shortcuts/9f26253a78a7462b87eb29a374e88fe4

    Daily Plan based on Reminders:https://www.icloud.com/shortcuts/d980745a1468406cbc11f63df7cbb271

    Daily Plan based on Things 3 (latest version):https://www.icloud.com/shortcuts/b28b3936596d44fea7311cc92e59e6d9

    Daily Plan for TickTick (a bit different logic):https://www.icloud.com/shortcuts/47d10b291c9747c2b744059289c6ed33

    I recommend taking Volkov’s Shortcuts and editing them to your liking! For example, I like the ‘Basic’ shortcut as a base template. I edited the shortcut to always save a note in a Daily Notes folder and to always default to ISO 8601 date format (e.g. 2024-06-29).

    Probably anecdotal at this point, but I keep my Shortcut on my homescreen over the actual Notes app, so I can always tap right into my Daily Note:

    If you want my fork of Volkov’s daily note shortcut, you’re welcome to have it: https://www.icloud.com/shortcuts/d23d9cc51c1b433f9d2299db5bf676c4

  • This was a long and winding path. Every couple of years I go through the same problem. New PHP version, determine installation method, feverishly Google. Sigh.

    For my own sanity. I thought it was best to record my workflow. I tried installing PHP via a tried-and-true method:

    brew upgrade
    brew install php

    Awesome. Easy enough right? I now should have PHP 7.4 (as of writing it should be 7.4, that is) installed via Homebrew. Yet when I ran php -v the terminal output was infuriating incorrect:

    PHP 7.3.3 (cli) (built: Mar 30 2019 08:43:01) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.3.3, Copyright (c) 1998-2018 Zend Technologies
        with Zend OPcache v7.3.3, Copyright (c) 1999-2018, by Zend Technologies

    What gives? Why is it still showing the system pre-installed PHP? I Googled and searched for answers frantically to no avail. Then, finally it hit me. My damn .zshrc file. I still have the old installation in my $PATH. To update, I simply removed the old line. Next I added the php keg, so it’s in my $PATH:

    echo 'export PATH=/usr/local/Cellar/php/7.4.9/bin:$PATH' >> ~/.bashrc
    source ~/.zshrc

    I reloaded my shell with source ~/.zshrc and now, when I run php -v I see some results:

    PHP 7.4.9 (cli) (built: Aug  7 2020 19:23:06) ( NTS )
    Copyright (c) The PHP Group
    Zend Engine v3.4.0, Copyright (c) Zend Technologies
        with Zend OPcache v7.4.9, Copyright (c), by Zend Technologies

    Hope this helps someone else who just wanted to install a damn PHP version but may have overlooked their shell configuration “run commands,” after upgrading with Homebrew 🙃

  • I use git log a lot. It’s real handy. But you know what — it’s pretty unwieldy and takes up quite a bit of terminal real estate. I finally decided to do something about it. Every time I ran git log, my terminal becomes a total mess. I knew about this little dingle:

    git log --pretty=oneline --abbrev-commit

    Which prints out a friendly, easy-to-digest, single-lined log:

    a2a722b (HEAD -> master, origin/master) Fix the NoteDetail styles.
    4fdcbc7 Split the NoteCell and NoteDetail.
    ccc4dc2 Connected the NoteCell with data.
    bce0d12 Broken components into separate pieces.
    071ea13 Change destinations, now the targeting works.
    0ecea01 NoteDetail and split it from the RootView.
    ...

    Which is great! But… can we do better? Some googling around lead me to this post by Mattias Geniar:

    There are longer versions of that same --pretty parameter. In fact, it allows you to specify all the fields you want in the output.

    Sweet! So, running the same command and flagging the specified fields like so, prints a more concise log. Awesome!

    $ git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
    
    a2a722b (HEAD -> master, origin/master) Fix the NoteDetail styles. (2 days ago) <Stephen Petrey>
    4fdcbc7 Split the NoteCell and NoteDetail. (2 days ago) <Stephen Petrey>
    ccc4dc2 Connected the NoteCell with data. (2 days ago) <Stephen Petrey>
    bce0d12 Broken components into separate pieces. (4 days ago) <Stephen Petrey>
    071ea13 Change destinations, now the targeting works. (5 days ago) <Stephen Petrey>
    0ecea01 NoteDetail and split it from the RootView. (6 days ago) <Stephen Petrey>
    ...

    Mattias has the excellent suggestion of configuring a Git Alias for this:

    $ git config --global alias.logline "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

    Now, instead of having to type out the command and flag the fields you want to print, you can just type, git logline and wham! It should print out a prettified git log that takes up way less space in your terminal.