Wrote 2,400 words on goals for the new year and it all sorta boils down to:
- Implementing a daily morning routine.
- Regularly attending art events and social gatherings.
- Achieving fitness goals and maintaining health routines, especially meditation.
- Growing the studio's client base and community engagement.
- Seeking award recognition for studio work and launching impactful projects.
- Making more process / how-to / explanatory videos and do a better job of documenting achievements.
- Engaging in outdoor activities and travel preparations.
- Moderating and optimizing substance use for wellness.
- Executing projects with a global and societal impact.
π» Projects Worked On
Made website for photos
I finally finished a project I have been working on for a few months, which is a public place to host all of my photography https://ejfox.photos.
Over 10 years ago I would post almost every photo I liked on Flickr, and then Instagram, but in the past few years even that wanes completely.
So I put together a super simple Nuxt site that hits the Cloudinary API and shows the latest 100 photos that arenβt screenshots, or marked private.
Screenshot to Cloudinary script
#!/bin/bash
# API keys for Cloudinary
export CLOUDINARY_URL=cloudinary://APIKEY@NAME
# Iterate over each passed argument
for file in "$@"
do
# Check if the file exists
if [ -f "$file" ]; then
# Upload to Cloudinary and capture output
upload_output=$(/usr/local/bin/cld uploader upload "$file" use_filename=true unique_filename=false 2>&1)
upload_exit_status=$?
# Check if the upload was successful
if [ $upload_exit_status -eq 0 ]; then
# Attempt to extract the URL using the absolute path for jq
url=$(echo "$upload_output" | /usr/local/bin/jq -r '.url' 2>/dev/null)
# Check if the URL is non-empty
if [ -n "$url" ]; then
echo "$url" | pbcopy
# Display success notification with the URL
osascript -e "display notification \"Uploaded $file to Cloudinary and URL copied to clipboard: $url\" with title \"Screenshot Upload\""
else
# Display notification for empty URL
osascript -e "display notification \"Failed to extract URL from output\" with title \"Debug\""
fi
else
# Display notification for upload failure
osascript -e "display notification \"Failed to upload $file to Cloudinary. Error: $upload_output\" with title \"Screenshot Upload\""
fi
else
# Display notification for file not found
osascript -e "display notification \"File does not exist: $file\" with title \"Debug\""
fi
done
This is fun and exciting to me because I can now easily take screenshots and add them to blog posts! Really innovating over here!

π¨ Creative Endeavors
Working more in my Black, White, and Red notebook. I don't know what I am doing, but at least it's different from the stuff I have been doing in the past, and it's been doing a good job of unlocking some flow state and a focus on flowy lines and motion
https://www.are.na/block/25485394
https://www.are.na/block/25485236
Struggling making videos
One of my goals for last year was to make more videos explaining things, to practice the muscle of expressing myself through video. Well, in the end I made a grand total of one (1) video. This year I would like to make 100.
I started this morning, setting up my workspace, preparing my microphone, setting up the cameras and checking the light, only to end up losing the audio and quickly filling up the hard drive on my iMac with 15 minutes of 4k video to the point Final Cut simply gave up. But I will try to learn my lessons and get back to it tomorrow.
π‘ Technical Accomplishments
- Made a simple gist to set the screenshot folder on macs to something sensible, out of reach from iCloud Drive, https://gist.github.com/ejfox/afd94b193a00645e34fc5030a125758a
π Learning & Development
- Watched The Upsetter on Criterion
Getting back into RSS
I remembered that I had set up a Feedly account in like 2010 and I logged back in and was able to export my subscriptions as an OPML file, a little snapshot in time from a prior chapter of my life.
π± Personal Growth & Health
Struggling with daily meditation. I know I need to do it, but every morning I rationalize reasons why I can get away with procrastinating and never doing it.
π€ Social & Community Engagement
For The Many
Had an interview with For The Many who recently helped secure tenant protections in Newburgh and have been working to help communities around the Hudson Valley. I am hoping that I can contribute some data analysis or mapping, but I need to understand their needs a little better. I am excited to plant a seed in that direction.


