<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Nathaniel Caauwe&apos;s Blog</title><description>Long-form writing from natecow.com</description><link>https://natecow.com/</link><image><url>https://natecow.com/rss/avatar-blog.webp</url><title>Nathaniel Caauwe&apos;s Blog</title><link>https://natecow.com/blog</link></image><item><title>Yet Another New Website</title><link>https://natecow.com/blog/2026/07/yet-another-new-website/</link><guid isPermaLink="true">https://natecow.com/blog/2026/07/yet-another-new-website/</guid><description>Finally fulfilling a long-time goal of building my personal site from damn near scratch — here&apos;s the tour.</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Approximately 1 million years ago, I used to spend 40 hours a week in an office building WordPress sites for clients, as well as coding custom themes using the Genesis framework. It was an interesting time period for me, and I&amp;#39;ve always had a toe in that world even as I shifted back to a career in VFX. Most of that has just been in the form of not being afraid to noodle with custom CSS on my old personal site or &lt;a href=&quot;https://sabercomp.com&quot;&gt;SaberComp&lt;/a&gt;, both of which were on Squarespace for many years. (SaberComp is now on Ghost.)&lt;/p&gt;
&lt;p&gt;In the past year or two though, I&amp;#39;ve had more of an itch to get deeper into the web world again, and things like Claude Code have certainly given me a boost; being able to ask hyper-specific questions that pertain to exactly what I&amp;#39;m doing is like having Stack Overflow on steroids. Last fall—just as a test—I wanted to see what Claude Code could whip up on its own, so my brother said I could try it on &lt;a href=&quot;https://badcowserver.com&quot;&gt;BadCowServer&lt;/a&gt;. What you see there is all vibe-coded, with my biggest human input being the design of the frosted glass scrolling news updates on the Plex and Minecraft pages.&lt;/p&gt;
&lt;p&gt;So when it came time to finally rebuild my own personal site, I knew I wanted to do it properly this time: no drag-and-drop builder, no monthly subscription to a platform that owns my content. I wanted markdown files I control, a design that&amp;#39;s exactly mine, and something I actually understand under the hood. The stack that got me there was &lt;a href=&quot;https://astro.build/&quot;&gt;Astro&lt;/a&gt;, with Claude Code acting as my tutor rather than doing it all for me.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://natecow.com/blog/2026/07/yet-another-new-website/&quot;&gt;Read more on natecow.com &amp;#8594;&lt;/a&gt;&lt;/p&gt;</content:encoded><media:thumbnail url="https://natecow.com/rss/avatar-blog.webp"/></item><item><title>Bruce the Wonder Yak</title><link>https://natecow.com/blog/2026/05/bruce-the-wonder-yak/</link><guid isPermaLink="true">https://natecow.com/blog/2026/05/bruce-the-wonder-yak/</guid><description>Reminiscing on one of Final Cut Pro&apos;s classic easter eggs..</description><pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I remember discovering Bruce the Wonder Yak in my Final Cut Pro days, having left Final Cut running idle for some time. A little patch of pixelated grass popped up on my timeline, and this little brown yak wondered out and started espousing random musings. As soon as you tried to interact with him, he’d get scared and run off screen. Positively delightful.&lt;/p&gt;
&lt;p&gt;What was more, I think I remember digging into the application package for FCP and finding a file that contained all his thoughts. The list always read to me like funny quotes from around the office during the development of the software, which was &lt;a href=&quot;https://apple.fandom.com/wiki/Bruce_the_Yak&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;confirmed on this Apple Wiki&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The 100 “Yak Bites” were composed on a whiteboard in a lounge near Ubillos’s office. Several reference the community’s early confusion about Bruce being a cow: “I’m concerned because the cow sounded pretty threatening”, “I am NOT a mad cow!”, and “What? You were expecting ‘Moo’ or something?”. Others reference internal culture, such as “Thirty quatloos says it crashes during launch!” (a Star Trek reference) and “Mostly clockwise, sometimes reverses…”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;My brother and I even snagged some of these to use as our &lt;a href=&quot;https://www.badcowserver.com/minecraft/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Minecraft Server’s&lt;/a&gt; Message of the Day, which players see when logging in. So a lot of these quotes are both iconic and nostalgic to me. I distinctly remember having a screenshot of Bruce on my personal website with his quote “What You were expecting ‘Moo’ or something?”&lt;/p&gt;
&lt;p&gt;The reason I bring this up now is &lt;a href=&quot;https://bsky.app/profile/ebornian.bsky.social/post/3mkwwg6ft4c2i&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;someone on Bluesky&lt;/a&gt; was pontificating about funny readme files hidden in old PC games. I wanted to bring up Bruce, and in my quick Googling to find an authoritative history of him, discovered &lt;a href=&quot;https://codybrom.github.io/CallTheYak/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;this wonderful Mac app&lt;/a&gt; by Cody Brom, which brings this tiny Yak back to life. He also wrote a &lt;a href=&quot;https://b10g.xyz/blog/2026/the-yak-is-back/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;great history page&lt;/a&gt; about him. Do enjoy :)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Fun fact: in my difficulty finding a clear screenshot online of Bruce, I opted to utilize Cody’s &lt;em&gt;Call The Yak&lt;/em&gt; app and screenshotted Bruce sitting on top of a full-res screenshot of FCP that I have on display on the &lt;a href=&quot;/youtube/avn&quot;&gt;Alex vs Nate&lt;/a&gt; page.&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><media:thumbnail url="https://natecow.com/rss/avatar-blog.webp"/></item><item><title>I Didn&apos;t Think the Server Would Eat MY Face</title><link>https://natecow.com/blog/2026/04/dead-server/</link><guid isPermaLink="true">https://natecow.com/blog/2026/04/dead-server/</guid><description>A sudden server failure mid-project required frantic data recovery and reconfiguring tools I had setup long ago.</description><pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;RE: The photo. This server being a mini-PC, was named Defiant on my network. “Tough little server.” As you’ll soon read, it wasn’t so tough. April 30th turned out to be a good day to die.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Approximately 24 hours ago I switched over to my PC and fired up Nuke because I needed to re-render a couple precomps on which I needed to do some lightsaber roto. One wasn’t rendered with the correct overscan and another shot wasn’t rendered at all. I opened the first script and was greeted with a watermark from Reel Smart Motion Blur, which was needed for said precomp.&lt;/p&gt;
&lt;p&gt;I figured my license server was off.. again. Recently it’s just been powering down for no reason. I went into my network closet to turn it back on and over the next few minutes, began to panic as I watched it kinda-sorta try to turn on and then fail. Status light would flicker a few times, I caught a glimpse of the startup screen once, and then it was just dead.&lt;/p&gt;
&lt;h2 id=&quot;dead-server&quot;&gt;Dead Server&lt;/h2&gt;
&lt;p&gt;Fantastic. Not only does this stupid little mini-PC serve my RSMB license, but my DaVinci Resolve Project Server also lives on it. I do occasional backups of those libraries to my Synology, but discovered my last backup was from JUNE 2025. BAD COW, VERY BAD COW.&lt;/p&gt;
&lt;p&gt;So today, I took it to the PC repair shop my brother works at, hoping it was just a faulty power cable. But it was not. So we cracked it open and took the M.2 drive out, and shoved it into their data recovery system (wish I had a photo of that; it’s glorious; just a motherboard and various IO hanging on a wall). Luckily we were able to boot right into the Windows 11 install that was on it, and I could get into the Resolve Project Server UI and export backups.&lt;/p&gt;
&lt;h2 id=&quot;restoring-resolve&quot;&gt;Restoring Resolve&lt;/h2&gt;
&lt;p&gt;Actively experiencing &lt;a href=&quot;https://xkcd.com/949/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;this xkcd comic&lt;/a&gt;, as one does in these situations, we just logged into my Synology dashboard, which I had bookmarked on the server, using my credentials saved in 1Password, which was also installed; yippee! Uploaded the Resolve backups to a safe place back home, then trekked home to sort that out.&lt;/p&gt;
&lt;p&gt;Turned out you can’t just go from a project server setup to your local database, as the Project Server uses PostgreSQL and the local database uses some disk database setup. So after a few failed attempts and poking around, I ultimately just installed the Project Server software directly on my Mac Studio, and then restored the backup files and re-added them in the network tab in Resolve. The Mac is basically just looking at itself for “network” projects. Whatever. It’s working again.&lt;/p&gt;
&lt;h2 id=&quot;floating-license-fun&quot;&gt;Floating License Fun!&lt;/h2&gt;
&lt;p&gt;Next I figured I should get the RSMB floating license sorted out during normal business hours in case I needed to get support involved (spoiler: I did). Scouring their FAQ, I discovered this would involve a $49.95 license transfer fee. And I’d have to run a node lock remover tool on the old system and then send a text file that generates back to their sales department.&lt;/p&gt;
&lt;p&gt;So back to the shop I went, and we fired up the server and downloaded the tool… only to have it not work at all. I don’t know why, but it simply wouldn’t do anything but flash the outline of a terminal window for half a second and then do nothing else. So I opted to just gather whatever information I could. Turns out I had screenshots of the license server and the original system ID prompt that it gave me back when I set it up. I threw those onto the Synology and went home again.&lt;/p&gt;
&lt;p&gt;Emailing RE:Vision Effects, I explained the situation and provided them the system ID of my old server and that of my Mac Studio. Within 2 hours, they sent back an updated license file and waived the transfer fee, since it was a machine failure–YAY!&lt;/p&gt;
&lt;p&gt;So wins all around, but quite an involved hiccup to deal with in a pressing time on a project I’m trying to get wrapped up. One perk: I no longer have to worry about that stupid Windows 11 server staying running in the closet. I was wanting to switch it out for a Linux server eventually… so now at least it’s out of the picture. The main lesson here is I need to be way more diligent about Resolve project library backups. An automated way to do so would be great…&lt;/p&gt;
&lt;p&gt;Okay, back to roto.&lt;/p&gt;</content:encoded><media:thumbnail url="https://natecow.com/rss/avatar-blog.webp"/></item><item><title>The End of the Mac Pro</title><link>https://natecow.com/blog/2026/03/end-of-mac-pro/</link><guid isPermaLink="true">https://natecow.com/blog/2026/03/end-of-mac-pro/</guid><description>Thoughts on Apple finally killing the product they&apos;ve left out to rot for so long.</description><pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;From MacRumors: &lt;a href=&quot;https://www.macrumors.com/2026/03/27/reflecting-on-20-years-of-mac-pro/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Mac Pro Discontinued: Reflecting on 20 Years of Apple’s Desktop Tower&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I was never a Mac Pro owner. I did get to experience “buying” one once. While I was working as a video editor for a local videography studio, I finally convinced my boss to give Final Cut Pro a shot, and he handed me the business credit card and told me to drive down to the Apple Store in Omaha and pick up whatever Mac Pro they had in stock.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;By the time the Mac Pro moved to Apple silicon, Apple had already released the Mac Studio, another desktop computer that is smaller than a Mac Pro but beefier than a Mac mini.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This was always an odd naming scheme in my opinion. If you had told me 10 years ago that Apple would have a Mac Pro and a Mac Studio, I’d assume the giant Mac Mini was the new Pro (following the trash can) and the giant tower was the Studio… you know, studios requiring something bigger and better than everyday pros. Dropping the Mac Pro from the lineup further confuses things; we have MacBooks Pro but no Macs Pro. The Studio name is just off on its own. Like the Neo. Guess it’s perfect that these are the two Macs I own.&lt;/p&gt;
&lt;p&gt;And before you ask, yes, I do have my Mac Studio in a 3D-printed Mac Pro case, because it’s adorable:&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;My Mac Studio in a 3D-printed Mac Pro case&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;480&quot; height=&quot;640&quot; src=&quot;/_astro/mac-studio-case.DMgXW8VO_7mVga.webp&quot; &gt;&lt;/p&gt;</content:encoded><media:thumbnail url="https://natecow.com/rss/avatar-blog.webp"/></item><item><title>Remastering Core Differences</title><link>https://natecow.com/blog/2024/03/remastering-core-differences/</link><guid isPermaLink="true">https://natecow.com/blog/2024/03/remastering-core-differences/</guid><description>The 10-year anniversary of “Core Differences” saw an opportunity to test out a workflow I’ve had in mind of using AI tools to up-res old plates, and then re-grading and re-compositing them from scratch. The results have been promising.</description><pubDate>Fri, 22 Mar 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://natecow.com/blog/2024/03/remastering-core-differences/&quot;&gt;Read more on natecow.com &amp;#8594;&lt;/a&gt;&lt;/p&gt;</content:encoded><media:thumbnail url="https://natecow.com/rss/avatar-blog.webp"/></item><item><title>Boris FX - Why I ❤️ Silhouette</title><link>https://natecow.com/blog/2021/10/boris-fx-why-i-love-silhouette/</link><guid isPermaLink="true">https://natecow.com/blog/2021/10/boris-fx-why-i-love-silhouette/</guid><description>Discover which feature [I] use most — and why the most difficult shot from Captain America was known internally as Cry, Run, Cry.</description><pubDate>Thu, 14 Oct 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://natecow.com/blog/2021/10/boris-fx-why-i-love-silhouette/&quot;&gt;Read more on natecow.com &amp;#8594;&lt;/a&gt;&lt;/p&gt;</content:encoded><media:thumbnail url="https://natecow.com/rss/avatar-blog.webp"/></item><item><title>The Great Cow Frame Mover [9000]</title><link>https://natecow.com/blog/2020/07/great-cow-frame-mover/</link><guid isPermaLink="true">https://natecow.com/blog/2020/07/great-cow-frame-mover/</guid><description>Using Python to sort through thousands of EXR files and moving them to where they belong in my project file hierarchy.</description><pubDate>Fri, 17 Jul 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Last night I decided to start putting together the script that will do the real work of moving all my frames into their respective folders. I had to jump slightly ahead of where I was in &lt;a href=&quot;https://www.natecow.com/blog/the-great-cow-frame-mover#:~:text=Automate%20the%20Boring%20Stuff&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Automate the Boring Stuff&lt;/a&gt;, but not by much. At this point I’m starting to pick things up a little faster.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;First attempt at automation script&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;919&quot; height=&quot;471&quot; src=&quot;/_astro/script_earlier.De1Bcq-k_ZNaeSy.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;But, as with most things, I wasn’t happy with that. As you can see by my big #TODO note, I wanted the user feedback to be a little cleaner. Instead of printing something on on every single frame it was moving, I only wanted it to print each shot once. After it finished one shot’s frames and moved onto the next, print the next one. That way we know the script is running but it’s not this insane machine gun effect of essentially the same line over and over.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Excessive Output&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;466&quot; height=&quot;890&quot; src=&quot;/_astro/output_meh.D9t9MMoo_Z1wIJFY.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;As you may also note, I sort of worked out the logic of what I should be doing instead, and immediately set off to create that. This initial version was looking at the folder full of EXR files and then iterating over every single one of them, using a regular expression to extract the shot name and then move it to where it needed to go. This meant printing any sort of feedback would happen on every single frame. It also meant running a chunk of code on every single frame.&lt;/p&gt;
&lt;h2 id=&quot;inverting-my-approach&quot;&gt;Inverting My Approach&lt;/h2&gt;
&lt;p&gt;I figured if I only wanted something printed out when the shot number changed, then the easiest way would be to iterate through a list where the shots only appear once. So I flipped everything on its head and used the VFX directory as my list. I then used the glob module to find all files that contain the folder’s name, which itself returns a list of matches. I could then just iterate through that list and move those frames to where they need to go. So just one line of code being repeated the most, rather than four.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Second attempt at automation script&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;738&quot; height=&quot;551&quot; src=&quot;/_astro/script_later.CC1Tgckf_2g657X.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;My initial test of this didn’t work quite right. My test folder has all 116 folders created for Brothers’ Quarrel, but I’m only testing on a few shots. So what happened was the first few shots gradually spit out “Moving [shot] to [directory],” but then it rapidly spit the same line out for all the rest of the shots. I had forgotten that I’m iterating through the entire shot list, with no regard for whether or not frames exist for them. Hence my little conditional checking if the frames list contains anything. If the glob module checks for a shot name that doesn’t exist in the files it’s looking at, then it’ll return an empty list. It’s length will be 0, which is false, and the line won’t be printed. It amuses me how often programming is about preventing something from happening.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Excessive Output&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;545&quot; height=&quot;199&quot; src=&quot;/_astro/output_cleaner.DUe2Tf-I_XNXUi.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;My task for the rest of the night is to set this up to run in the command line and take some user input, so the file paths can change. For now I’ll let it assume my file hierarchy, because I’m the only one using these scripts. But I am thinking about making things more open ended in case anyone wants to fiddle with them. None of this is even on GitHub at the moment anyway.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;7/18/20 Edit&lt;/strong&gt;: I realized as I climbed into bed last night that I forgot to actually time the two scripts. My assumption that the second way would be more efficient turned out to be correct. While iterating through every frame in the source folder and executing a block of code each time, moving 550 or so files took &lt;strong&gt;14.13 seconds&lt;/strong&gt;. Running the updated script, which I updated further to only execute the move when the glob returns a list, the same set of files were moved in &lt;strong&gt;11.05 seconds&lt;/strong&gt;.&lt;/p&gt;</content:encoded><media:thumbnail url="https://natecow.com/rss/avatar-blog.webp"/></item><item><title>First, Let me Build a System</title><link>https://natecow.com/blog/2020/07/first-build-system/</link><guid isPermaLink="true">https://natecow.com/blog/2020/07/first-build-system/</guid><description>Exporting VFX plates from Premiere Pro using the Project Manager.</description><pubDate>Tue, 14 Jul 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When I decided to &lt;a href=&quot;https://www.youtube.com/watch?list=PLqm9RtqC8AT_2e6XRjr4nt6n7SkUt2qYE&amp;#x26;v=hqYYe3HAPYQ&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;document the process&lt;/a&gt; of completing all the VFX from scratch on &lt;a href=&quot;/youtube/brothers-quarrel&quot;&gt;Brothers’ Quarrel&lt;/a&gt;, I didn’t think about how much work the videos would be adding on top of everything. I also hit a massive snag as I started developing episodes, when I realized that one major step was… horribly tedious and not ripe for anything remotely educational.&lt;/p&gt;
&lt;h2 id=&quot;premiere-is-not-designed-for-this&quot;&gt;Premiere is not designed for this&lt;/h2&gt;
&lt;p&gt;My method in recent years for exporting image sequences out of Premiere was straight-forward, albeit tedious as hell. But I figured it was just something you do once, so whatever. I would double-click a clip in the timeline, right-click it in the source monitor, and tell it to make a subclip. I’d paste a base name and change the shot number. Rinse and repeat.&lt;/p&gt;
&lt;p&gt;Then I could grab all the subclips at once and export them with the same EXR settings… and a base output directory. But then I’d have to go down the line in Adobe Media Encoder and change the output of each clip so they’d render to their correct directories. Another tedious step.&lt;/p&gt;
&lt;h3 id=&quot;bending-the-project-manager-to-my-will&quot;&gt;Bending the Project Manager to my Will&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&quot;Premiere&amp;amp;#x27;s Project Manager window&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;810&quot; height=&quot;702&quot; src=&quot;/_astro/project_manager.BHeEKxjx_ZF3iBI.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;There had to be a better way. And I found one… kind of. Turns out Premiere has a Project Manger that can do something I’ve been wanting, namely render handles of any length. There are a few “gotcha’s” though. For one, this tool is meant for archiving. It’s designed so that you can save the source media you absolutely need in order to keep this project renderable, while being able to trash all the original stuff to save space. It does this by re-exporting each clip in your timeline(s) to a format meant for editing, such as ProRes or DNxHD. No EXR or image sequence options. I mean, why would there be? You don’t edit in those formats.&lt;/p&gt;
&lt;p&gt;BUT! I noticed you could import a preset, and these appeared to be the same presets Premiere uses in the exporter. Ah, think I, if one can save a preset to a file, then the existing presets in this list must also be files somewhere. Turns out they’re deep in this labyrinth of mysteriously named directories (see image). Spoiler: the EXR ones are at the end. Just start there.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Location of export presets for Premiere&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;590&quot; height=&quot;829&quot; src=&quot;/_astro/presets_example.B-79Swkg_1oYmmK.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;So I was indeed able to load in the EXR preset into Project Manager, and we’re nearly in business. There’s this whole other issue with getting things named correctly, and a particular head-scratcher when using the same source clip multiple times in the timeline, but I got all that sorted and I’ll cover it in a YouTube video.&lt;/p&gt;
&lt;h2 id=&quot;that-last-fiber-connection&quot;&gt;”That last fiber connection”&lt;/h2&gt;
&lt;p&gt;There’s a great anecdote on the appendices of The Two Towers about the remote workflow Weta built in 2002 so that Peter Jackson could review work being done in New Zealand while scoring in London. They managed to setup a high speed fiber connection going half-way around the globe, but for some reason, it stopped about a mile from where Peter was staying. (I’m sure there’s a fascinating story behind just that little tidbit).&lt;/p&gt;
&lt;p&gt;The solution was to load whatever New Zealand sent onto an iPod, which at the time were just 2.5” external drives that could be side-loaded with anything, and then physically walk it down the street. We had the same sort of Sneakernet when I was on Captain America and Thor, but by design, since our main office had no internet connection for security reasons.&lt;/p&gt;
&lt;p&gt;All this to say that often times we get a ton of pieces working together, and then end up with some break point right at the end, where there’s no clean way to finish the job. It happens all the time, especially with workflows in VFX. In my case, it should be expected. I’m using an archiving feature of an NLE that is not really a go-to for big budget, VFX-heavy projects, so no one at Adobe probably thinks this is a pressing need. And that’s fine with me. Premiere is what I have and know, so I’m going to make this work.&lt;/p&gt;
&lt;h2 id=&quot;enter-python&quot;&gt;Enter Python!&lt;/h2&gt;
&lt;p&gt;For those that don’t know, I took a break from VFX for a couple years and got into web development. Specifically, I built WordPress themes so I spent a lot of time learning and working in PHP, JavaScript, jQuery, HTML, and oh so much CSS. I learned a lot from my Systems Administrator at the time, and he was a big fan of Python, so I wanted to learn that so I could talk shop with him more.&lt;/p&gt;
&lt;p&gt;I fell in love with it. And when I came back to VFX, I lucked out in that Nuke and Silhouette both utilize Python. Oh the possibilities… I dabbled in customizing Nuke along the way, just sorta figuring stuff out as I went. I built some basic tools for myself that now probably litter the Los Angeles compositing departments (if you see something with Cow at the beginning, it was probably me). I went through &lt;a href=&quot;https://www.benmcewan.com/python_for_nuke_101_eol&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Ben McEwan’s Python For Nuke 101&lt;/a&gt; course, which I highly recommend. I’ve recently been getting far more obsessed with all this thanks to Ben, especially since he recommended &lt;a href=&quot;https://automatetheboringstuff.com/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Automate the Boring Stuff With Python&lt;/a&gt; (which is FREE!).&lt;/p&gt;
&lt;p&gt;All this is driven by the fact that I need to make that last little fiber connection in my Premiere export workflow. Premiere will dump all the EXR files into one folder. Just thousands and thousands of files. So what I’ve been doing these past few weeks (months? What is time anymore?) is the first in what will probably turn into a full suite of tools. I need to look at all the files in the folder and move them into their respective shot directories.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;A large list of sequential EXR files in a Windows folder&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1328&quot; height=&quot;535&quot; src=&quot;/_astro/exr_sequences.DzRsdnxo_Z1U0YB7.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;This has involved learning several things, such as Regular Expressions to parse the filenames (basic string manipulation works too but is more prone to breaking, and harder to read), learning how to navigate and interact with the file system and using the os and pathlib modules, and how to actually screw with files. And between all this has been just learning how VS Code works, setting up virtual environments, learning how to properly install modules and making sure things run every time… you know, all the intimidating stuff that usually drives you away from getting too far into this in the first place. Or was that just me?&lt;/p&gt;
&lt;p&gt;But I have some really specific things I need to do, and I need to do it to show it on my YouTube series. And I’m getting closer and closer to needing to put that episode out. So hooray for actual motivation! It may seem like I’m going overboard with all this. And I probably am. But I think going overboard with things is exactly how all my saber duels came about in the first place. It’s how I’ve ended up where I am now.&lt;/p&gt;
&lt;p&gt;There is a certain hilarity in my learning like 15 other things so that I can avoid just having to shift-click 116 different groups of files and drag them into folders, a task that I could have done in one mindless day. I think Randall Munroe put it succinctly…&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;xkcd #1319&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;404&quot; height=&quot;408&quot; src=&quot;/_astro/xkcd_automation.Cho9zMZo_Z1XfNNd.webp&quot; &gt;
&lt;a href=&quot;https://xkcd.com/1319/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;xkcd Link&lt;/a&gt;&lt;/p&gt;</content:encoded><media:thumbnail url="https://natecow.com/rss/avatar-blog.webp"/></item><item><title>Silhouette - Academy Award for Technical Achievement</title><link>https://natecow.com/blog/2018/12/silhouette-academy-award-for-technical-achievement/</link><guid isPermaLink="true">https://natecow.com/blog/2018/12/silhouette-academy-award-for-technical-achievement/</guid><description>Check out the reel I cut together that Silhouette presented to The Academy for their SciTech award nomination.</description><pubDate>Sat, 15 Dec 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://natecow.com/blog/2018/12/silhouette-academy-award-for-technical-achievement/&quot;&gt;Read more on natecow.com &amp;#8594;&lt;/a&gt;&lt;/p&gt;</content:encoded><media:thumbnail url="https://natecow.com/rss/avatar-blog.webp"/></item></channel></rss>