07 Feb

Do As I Say, Not As I Did

Look, I have never claimed to be an expert on anything.  I hunt and peck my way around the keyboard, and do the same when it comes to figuring shit out.

I like to pretend that what I am creating with the FarmCam Project is like software development; each tweak or improvement a new version. Sometimes it feels that way as I wrestle with EvoCam to get the most out of the abandoned software, that has gone dark without explanation. I can’t just make a support request or post to a support forum. If there are diehard EvoCam enthusiasts, I have no idea where to find them.

These instructional entries are here for two reasons. One, I hope to help others who may have similar interests — or needs — to my own. Secondly, if I don’t write this stuff down somewhere, I am likely to break something and forget WTF I did. These are my own manuals in some sense. Hence, many entries with lots of guess work and promises to report back later. Most of the time I forget to do some things in advance, and I am left wondering if a change will make any difference at all. Other times, I’m not patient enough to test things before I write about them here. [This is another of those times!]

Tab-less With Benefits

Today I am going to discuss using fewer tabs in EvoCam, and stream-lining one session while naming EvoCam Actions to help organise the tasks. This task is not exclusively to make things pretty, but an effort to prevent EvoCam from crashing.

I assume that the idea behind EvoCam’s tab feature is to allow one to use the software to manage multiple video feeds. For the last year or so, I have been using them to manage other project tasks, but always from the same video feed. My theory is that doing so was using more system resources, and possibly causing the software to crash more frequently.

If you read this site, you may recall that I recently took great joy in wiping my 6-year-old iMac’s hard drive and doing a fresh install of macOS.  One of the reasons I did this was to try and isolate the FarmCam project, and reduce the number of other applications vying for system resources. There is very little else running on the iMac other than the necessary applications to power the project.  EvoCam to grab the images, save them, and upload them to the website, and very little else. I also took advantage of the clean install to organise the directory structure for the FarmCam project. Previously I had everything saved in a sub-directory of a sub directory of the Movies directory that comes with macOS … and I mean everything.

So recently when I noticed EvoCam crashing more frequently, with most other applications running fine, I looked for what I could do to reduce the resources being used by EvoCam.  Since it’s a clean install with so few things running there’s a chance it is a memory leak or something out of my control too. But I wanted to see if I could come up with an answer. I can’t give up on EvoCam. At least not until I can find something that can do all the things I need it to do, and I have been looking for over a year now.

💡Moment

Yesterday, while I was writing about my truck problems — still in the shop, thanks for asking — I was also clicking back and forth between the EvoCam tabs for each part of the project.

Each time I chose a tab, I typed ⌘K to view the settings for that tab, and the tab size would grow based on the window size of the previous tab. Being a bit of a neat freak when it comes to my desktops meant that I would then have to re-size EvoCam when I was done. This is my issue, and I own it, but my issue led me to a possible solution to the crashing challenge.

I had started these tabs as ways to try out new things, and then it just became a hassle to unwind the knot I had created.  I assume software developers have similar challenges — on a greater scale of complexity, natch.

One tab was named oncedaily, and it ran the Daily Sunrise, Daily Noon, and Daily Sunset features. The next one was named dailymovie and it ran the Daylight Timelapse process. The third, which was actually the original, was titled FarmCamNew, and it controlled the still image that is displayed every 30 seconds as well as the 24-hour Daily Timelapse.

Each of these tabs was displaying the exact same video feed from the exact same camera!

My solution was to take screen grabs of the settings for all of the EvoCam Actions across all three tabs. Then I recreated each Action from the extraneous tabs, and added them to the FarmCamNew session. After they were transferred, I renamed each Action and grouped them in the Set drop-down [see image] so they are easily discernible. When I was done, I closed the oncedaily and dailymovie tabs, running everything as FarmCamNew.

I typed ⌘S to save, and now I wait.

I said above that I often don’t plan these tests very well until they are in process or done completely. In this experiment, I neglected to check the Activity Monitor before I made all my changes and binned the old tabs. I had looked at the Activity Monitor last week, and I think I recall seeing constant %CPU readings in the mid-30s at least for EvoCam. I was surprised that EvoCam — and VTDecoderXPCService — were the 2 biggest CPU hogs.

However, as I typed this entry, I have closely watched the Activity Monitor, and EvoCam has averaged about 7.5% and VTDecoderXPCService at around 15%. EvoCam also appears to only use around 3% (or less) when it is in Hide and Leave Active mode. Every 30 seconds — time between still images for the FarmCam — the CPU usage goes up a few percentage points, which is understandable, but nothing that seems excessive.

I hope I am right about this, but I’d be lying if I didn’t say my first desire was for something that looked better on my desktop. Not crashing so often would be a huge bonus.

One thought on “Do As I Say, Not As I Did

  1. Pingback: Don’t (Kernel) Panic! 🤪 | rick scully

Leave a Reply