Featured

My camera situation at the end of 2022

Everything changes all the time.

2022 has been another year of wildly rearranging my approach to photography. I’ve gone all-in Leica and back. I’ve been all-in with film, and back. And so on. I do this because I’m more of a camera nerd than an artist.

Let’s start with the film cameras. First, I sold the big Linhof Master Technika. It was a beautiful kit, but I almost never used it. I still have an old Crown Graphic for when I get the urge to shoot 4×5.

I still have three Leica M film cameras: M3, M6, and MP. I tried and failed at selling the M6. Here they are on my workbench:

Leicas: M3, MP, and M6

The M6 is for sale again. I will hate myself for selling it, but it’s dumb to have something so nice (and valuable) just sitting on a shelf most of the time.

I was also able to revive the Ricoh GR1, which I’m very happy about.

Ricoh GR1, back from the dead.

So, what about digital, then? That’s still being tweaked, but right now I’m going with the new X-T5 and a few favorite lenses.

Testing the X-T5

I ordered the X-T5 with the 16-80 “kit” lens. I don’t like zooms, and I don’t love f4 lenses, but it’s a nice all-arounder in a pinch and a cheap way to get it. I have the 23 f2, 35 f1.4, and 56 1.2 on the way.

I’ve stopped scanning film with a digital camera, so I shouldn’t miss the Lumix S5 and Macro, which I’ve traded for the Fuji lenses. I can change my mind pretty inexpensively with the Fuji 60mm macro any time.

I have come very close to buying another Leica M10-R, but I’m going to see how it feels to use the Fuji for digital.

Where does that leave us? To sum up:

Every Day(ish) Carry:

  • Leica MP
  • Ricoh GR1
  • Fujifilm X-T5

Change-of-Pace Carry:

  • Leica M3
  • Hasselblad 500C/M
  • Crown Graphic 4×5
  • Assorted 35mm (OM-1n, Leica IIIf, etc)

Keeping my Org Agenda updated based on Denote keywords

I’ve recently switched from using Org-roam to using Denote for my notes. Org-roam is powerful and cool, but I prefer the more straightforward approach of Denote.

I keep all my notes in Denote, including notes about current projects. For example, we’re planning to remodel our kitchen. This is a project and so I have a Denote file named “20221130T130143–kitchen-remodel-2023__house_project.org”. In this file, I keep a list of TODOs. In order to see these TODOs in my Org Agenda, I need to add the file to org-agenda-files. This can be done a few ways, but all are manual. I am forgetful, so I wanted a more automated way to keep my org-agenda-files up to date with Denote projects.

David of System Crafters created a video about hacking Org-roam containing something like what I was looking for in the show notes, but for Org-roam not Denote.

I took the idea and implemented it for Denote instead. All it does is search denote-directory for files with a specific pattern and append the results to my default list of org-agenda-files. It looks like this:

;; Add all Denote files tagged as "project" to org-agenda-files
(defun jab/denote-add-to-agenda-files (keyword)
  "Append list of files containing 'keyword' to org-agenda-files"
  (interactive)
  (jab/init-org-agenda-files) ;; start over
  (setq org-agenda-files (append org-agenda-files (directory-files denote-directory t keyword))))

(jab/denote-add-to-agenda-files "_project")

That’s it. Now I can keep my project TODOs in the project Org files and view them in the Agenda. You’ll notice that there’s nothing in there that actually depends on Denote. It’s all just basic Emacs stuff. That’s one of the reasons I love Denote so much; even I can riff off it. I haven’t found a good way to add newly-created project files to the agenda without reloading Emacs or calling the function manually, but I’ll get to that later.

Later: Protesilaos Stavrou (known as “Prot”), the author of Denote, was kind enough to send me the following code for helping automatically maintain the list of org-agenda-files…

    (defvar my-denote-to-agenda-regexp "_project"
      "Denote file names that are added to the agenda.
    See `my-add-denote-to-agenda'.")

    (defun my-denote-add-to-agenda ()
      "Add current file to the `org-agenda-files', if needed.
    The file's name must match the `my-denote-to-agenda-regexp'.

    Add this to the `after-save-hook' or call it interactively."
      (interactive)
      (when-let* ((file (buffer-file-name))
                  ((denote-file-is-note-p file))
                  ((string-match-p my-denote-to-agenda-regexp (buffer-file-name))))
        (add-to-list 'org-agenda-files file)))

    ;; Example to add the file automatically.  Uncomment it:

    ;; (add-hook 'after-save-hook #'my-denote-add-to-agenda)

    (defun my-denote-remove-from-agenda ()
      "Remove current file from the `org-agenda-files'.
    See `my-denote-add-to-agenda' for how to add files to the Org
    agenda."
      (interactive)
      (when-let* ((file (buffer-file-name))
                  ((string-match-p my-denote-to-agenda-regexp (buffer-file-name))))
        (setq org-agenda-files (delete file org-agenda-files))))

This works great. Thanks, Prot!