The Offset Podcast - The Offset Podcast EP023: DIY Part 2 - Software
Episode Date: December 2, 2024Programming Note: The Offset Podcast is taking a break for the holidays. We'll return in mid-January 2025 with new episodes and back to our regular release schedule. A very sincere thanks t...o our listeners for an amazing 2024 and for helping us launch the show!--------------------------------------Continuing with our two-part series on DIY approaches, in this installment of The Offset Podcast we'll discuss using a DIY approach to software. No, we're not talking about making your own turn-key color or editing software (but let us know if you do!), but rather things like scripting, basic coding for tool building, automation, and more. Specific topics covered in this episode include: Why DIY software approaches & can you really do these things yourself?The importance of always starting with an ideaBasic scripting to improve workflowsIntegrating scripts through the Resolve APILeveraging Resolve developer documentation for helpLearning by looking at other/open-source scriptsDCTLs - creating custom color tools for DaVinci ResolveHow color science and DCTLs relate Using low code/no code workflow automation platforms to connect the dots with different APIsAutomating while also allowing for human decision-makingMake your own UI/Interface for custom tools with Budibase Keeping interfaces simple to get more user compliance SaaS (Software As A Service) in the cloud vs local integrationsThe danger of using too many services Using developer marketplaces Thanks for checking out the episode. Please subscribe and like the show anywhere you find it!
Transcript
Discussion (0)
Hey everybody and welcome back to another episode of the Offset podcast and today we're still talking DIY.
But this time around we're talking DIY software. Stay tuned.
This podcast is sponsored by Flanders Scientific, leaders in color accurate display solutions for professional video.
Whether you're a colorist, an editor, a DIT, or a broadcast engineer, Flanders Scientific has a professional display solution to meet your needs.
Learn more at flanderscientific.com.
All right, everybody, welcome back to another episode of The Offset Podcast.
I am Robbie Carmen, and with me as always is my partner in crime, Joey Deanna.
Joey, how's it going, buddy?
Good, good.
Well, we are recording this actually the day before Thanksgiving.
So just a little housekeeping, happy Thanksgiving to everybody in the U.S. and everybody else
around the world who celebrates U.S. Thanksgiving.
We hope you have a nice couple relaxing days off from the Edit Color Suite or the post-production
facility and you can do like what every other person does on Thanksgiving, you know, watch
endless movie marathons and be a glutton. So I'm hoping everybody has to have everybody has a good
one. But Joey, today we are picking up where we left off with an episode that we did a couple
weeks ago about DIY hardware where we really kind of just pontificated about 3D printers for
45 minutes. But hey, that's fine. I love 3D printing. But this time we want to kind of look at the
other side of that, and that is kind of the idea of DIY software approaches. Now, I'm not talking,
just to be clear, I mean, well, I guess I kind of am talking, but I'm not really talking,
I should say, about like, hey, let's make your own version of Photoshop or your own version of
resolve or whatever. We're talking about sort of low intensity or middle intensity things that you
can do. Software rise, things like scripting DCTLs, building your own UIs for things,
things of that nature that can kind of enhance your workflow and kind of let you do things
better faster.
If you've ever stopped yourself and said, man, I really wish that I could do that,
you know, whatever that may be, that's what we're talking about today, kind of figuring out
some of these kind of workflow enhancements, quality of life, time improvements, that kind of stuff.
And so let's start out with the idea of like, really?
I can do this myself because I think the first thing that a lot of people think of is like,
okay, fine, buy a 3D printer.
It's something I put filament into, I hit print, I buy some, you know, get something on the internet and it makes something.
But software, I think, for a lot of people and kind of the idea of scripting or whatever you want to call it,
is just kind of a little bit more this black box, right?
Like, obviously people do it, right?
We know on some level there are coders in the world who make the world go around, right?
But is this something that you think, you know, in your opinion, Joe, do you think this is something that's just even feasible for the
average person? Yeah, and the cool thing is it's getting, you know, more and more and more
doable on an easier level all the time. And really, what I want to get across to people is that,
yeah, this is something you can do. Even if you are not a super diehard nerd programmer,
you can be a kind of basic programmer, or there are tons of tools that we're going to talk about
that are what they call low code or no code tools,
where you can kind of use a visual representation
of what you want your DIY software to do.
And like you said, you know, we're not saying,
go write your own full editing software.
We're saying if you run into a workflow task
where you're doing the same thing over and over again
and you think you could automate it,
or you're finding yourself always doing the same kind of like,
oh, when I have a new client,
I need to send them an email with information on how to get to our portal and how to log in.
I need to create a user for them.
All of these little repetitive tasks that you kind of feel like a robot could do for you.
Well, there's a lot of tools out there to make that robot do them for you.
So just like we talked about when we talked about DIY hardware,
the first thing to really think about is that idea, right?
Everything that we're going to discuss and everything that we have discussed prior to this related to DIY,
all starts with an idea.
And that's the most important thing.
Once you can kind of realize,
hey,
this is a need that I have for my workflow.
Here's how I envision it happening
in general kind of blocks
of what it needs to do.
Then you can kind of really start to think about,
hey, what's the best approach for this?
And that approach is what we're going to talk about today.
But it all starts with, hey, the idea.
What's an idea?
Yeah.
And I think on that front, you know,
this is not, you know,
while it might seem intimidating to write your own code, to a certain degree, a lot of our listeners
probably have some experience with this, right? I'm just thinking of like, hey, I need a website,
right? And so people have like, okay, well, I've started to code my website and I've gotten
super confused with CSS and styles and divs, you know, divs and all the various tags. So what do
they do? They move to sort of a wizzywig kind of platform, you know, that helps them kind of do that
low-code, no-code approach that you talked about, but in reality, they really are still doing
coding. And, you know, those platforms that I just said, especially for the web, but we'll talk about
more for our industry a little later, those are, you know, yeah, you can get that sort of assist.
And now, especially in the day, and we'll talk about this a little later, too, in the days of,
you know, LLMs and things like, you know, chat GPT and stuff like that, those tools can actually
assist you if you get stuck, if you have a problem, or honestly, just wholesale. Hey, chat, GPT, make me a
DCTL that does XYZ. You know what I'm saying? Like, it's, there's, I, I, the learning resources,
besides just the LLMs and the AI side of it, the learning resources out there for this kind of level of
programming we're talking about, whether it's scripting DCTLs, workflow optimizations, these kind of,
really what's referred to as high level software,
as in high level is your scripting languages,
your basic stuff where the underlying program
that you're running this software on
is still doing most of the work, right?
Low level software is when you get into stuff
like DaVinci Resolve where they've gone in
and written the whole thing in C
and optimized things like memory architecture
and performance and stuff like that.
We don't care about any of that for work.
We're not talking about, you know, optimizing Kuda libraries
to get another frame of checking out of things, right?
Exactly.
Yeah.
That don't make sense.
So let's start with, I think, what is, I consider low-hanging fruit, and I consider it
that way because in these discussions, my experience and my skill level always pales to yours,
but I have written a fair number of functional scripts in my life to do different things.
And so let's start there with the idea of scripts.
Now, I think scripts, just to be clear,
I think they can exist in a lot of different places, and they also can exist in a lot of different
languages.
I'll just going to be a quick example of this, right?
So you could write a script in, say, if you're on a Mac and Apple script, right?
That's a tool set that Apple developed 100 million years ago to do that kind of work.
There are other languages that you could write scripts in.
You might have something, a script that does something on the OS level.
You might have a script that does something within a piece of software.
software. So Joey, like start us like the high 50,000 foot view of scripting and how to get started
with it because I think a lot of people do what I just said kind of get confused, right? Like,
what language am I supposed to be using? Is this something I can do in a text editor or do I need
like special software? Like where does that kind of thing exist? Yeah. So scripting is kind of the
highest level of programming that we're ever going to deal with at least until AI takes over and we're just
talking to the computer.
Right.
So a script is very well named.
It's like the script of a movie.
You're writing down instructions for another program to follow.
So in Resolve, you can write those scripts in a language called Python or in a language
called Lua.
Resolve supports both.
And all you're doing is you're telling Resolve what to do in a programmatic way.
Like you said, you can do this with most operating systems.
Apple has Apple script.
but even in the simplest most drag-and-drop context, Apple has a tool called Automator.
Yeah.
That you can literally drag on different building blocks.
Copy all the files from this folder.
Rename them this way.
Open them up in this program.
Right.
So all you've done in Automator is make a script, but with a little drag-and-drop GUI.
And I think a lot of people don't stop to think that, yeah, we can do this kind of stuff
without having to do a deep dive into learning Python.
The Automator one is a great example because I tend to, I think that most...
People forget about Automator.
It's pretty good in a lot of ways.
Well, it's great.
I mean, it's for things, like, especially you actually named one of them that is renaming
files.
Like, that's a huge one.
You have a folder of, you know, 8,000 tiffs and you realize that you, you know,
put the wrong prefix on the 8,000 tiffs.
And, like, don't, don't re-render those.
TIFs, just open up if you're on a Mac, open up Automator and rename and build that building block out.
I guess my question about scripting is, I think, or my statement about scripting is, rather,
I think of things that like kind of the OS level, storage level, file level, where I have,
and I'll give you a couple of examples of that, the rename is a great example of it.
I'll use scripts to do things like to automatically move files from my primary storage to my backup storage at 3am, for example.
Or I have another, when we were working with local databases, I had a set of scripts that would automatically do a PG dump out of the SQL database every morning at 3 a.m.
So I had a backup of that and then move that file up to my Google Drive or whatever.
So I had an aback, so there's, you know, that kind of OS storage level automation.
Where I get confused is, and then you always give me the back to future line about this,
is I have a real problem thinking fourth dimensionally when it comes to the creative software I use.
So you had mentioned Resolve kind of has its own scripting abilities.
Talk about a little bit about that some more because I think that the language thing is,
part of it. The whole idea of like the tie-in to resolve through their API is a little amorphous
to, I think, people like, I bet a lot of people don't even really understand what an API is.
Like, so like what, like, what are those building blocks and then give us maybe an example
or two of something that you could, you know, usefully script inside a resolve?
Yeah. So an API is what's called an application programming interface. It's basically,
if you take a programming language and you take a piece of software, the, you know, the,
The application programming interface is how you can control that software via this language.
So in Resolve, they support both Python and Lua as scripting languages, and they both support
all the same API calls.
Now, number one, your very first piece of inspiration, I think anybody should take, even if
they're never going to program the stuff themselves, if you just want to open your mind
to what you can do.
Open up Resolve, help menu, developer.
it'll come up with a little folder.
Inside that folder is something
called scripting. And inside of there,
there's a read me text file.
Just double click that little text file.
And it will literally give you a line by line list
of everything that you can
ask resolve to do
via Python. And I've
seriously just gone through and read through that
read me and been like,
oh, I can make render jobs.
Yeah. Cool. That gives me an idea.
I can make a script.
So before, yeah, here's one.
example, before Blackmagic added the ability to select a bunch of timelines and right click and
add to the Rinder queue, we had a Python script to do that. It would just bring up a little thing.
You would run the script and resolve. And that read me will also tell you kind of how to get
started with what folders to put the scripts in and where to access them in resolve. You can get to
them from the workspace menu. But yeah, so I needed to add, you know, a bin full of timelines
to the Rinder queue. And my normal workaround of course,
putting them in a nested timeline and doing individual clips,
for some reason, wasn't going to work with the particular render setting that I needed.
So I wrote a quick script to just loop through everything in the bin,
and if it's a timeline, add it to the render queue with whatever render preset I had selected.
Easy peasy saved me tons of time.
I used that script almost on the daily until Resolve literally added that feature in.
Same thing with Frame I.O. comments.
We were bringing Frame I.O. comments into our Resolve timelines.
A long time before they had it.
Years before it was ever natively supported either in the integration or now you can export a resolve compatible EDL for Frame IO comments right from Frame IO.
We had been using a script that I wrote basically on day one when we started using Frame IO to do that.
So a lot of times it's a question of, hey, the software doesn't do this yet.
I'm going to kind of just instruct it how to do it.
So if I understand this right, so software manufacturers are the API and the API says these are the things that you can basically call out in your scripting code to get to get a result.
So you might say there's a hook for things that you could do with a timeline or hooks that you could do things you could do with clips or whatever, right?
So that's kind of those definitions of things that you can do with particular lines of code.
Python, Lua, I get that part.
But there's also like the syntax part of this, right?
Like you can't, like you have to learn a little bit of like, not that we can teach anybody
on a half an hour or 45 minute podcast, but you do have to learn kind of the syntax and
the formatting of those languages to work correctly, right?
Yes.
So when you're getting into scripting resolve, there unfortunately isn't kind of a drag and drop
low code or no code option.
So that's when you kind of get into, I'm going to learn basic Python or I'm going to learn basic Lua.
And go online.
There's tons of training for that.
You don't need super advanced Python skills to get started, especially if you're just going to kind of give resolve a series of instructions.
You'll just need to kind of understand how data types work and how loops work.
And like you said, that syntax.
But then from there, it's just kind of feeding into the.
the right API calls. Now, it is interesting because you kind of look at that read me and can
tell exactly what you can and can't do. They don't expose the full software to you. For example,
you can't individually tweak, you know, different values on a node because if you could,
I could make my own resolve color panel and sell it, right? Right, right, right, right. Magic probably
doesn't want that. So there's always going to be this little bit of balance of how much they
exposed to developers and what they keep inside.
That part makes sense.
And I do think you said something earlier that Resolve doesn't have this kind of
kind of whizzywig editor for that.
And that's true.
But over the years, I have noticed that in a very, this is not even like script level.
This is like the building block of script level.
You know, they have started to do things like the variable use inside of Resolve, right?
Where you like you can call out, you know, with the percent sign.
and build out things like custom names.
We talked about that on a previous episode
about building out custom names and stuff like that.
So it's there.
Is there anything special that a user has to do
to be able to use one of these?
Like, so if I'm, you know,
there's a person out there who's interested in,
you know, making their own script,
Python scripts for resolve.
Like you can't just like,
you don't just go to Python.org or whatever
and start using it.
You got to download and install like libraries,
I'm guessing, right?
Well, yes and no.
So the Lua support is a hundred,
100% natively built into resolve.
You don't need to install anything.
So if you're just getting started, you need to do something basic,
that's probably the easiest way to go.
And actually, I've kind of had that on my list of learning more Lua,
because I want to transition into using more Lua and less Python.
Python, you do need to install.
So you literally just go to Python.org,
download the installer for the latest Python.
And once you install it, resolve will recognize it.
If you go to the workspace menu, drop down, open up what's called the
console. This is where any debug logging for your scripts will show up. And there you can click on
Python or Lua. And if you click on Python and Python's not installed, it'll say, hey, you need to
install Python. Then from there, if you want to run either a script that you wrote or a script that
you've gotten from someone else, that goes into a folder that's different for every different
platform. So just grab that from the ReadMe. And then once it's in the right folder, you just
drop down the workspace menu and there's a scripts submenu and they just populate automatically.
Yeah, and just one little gotcha about those programming languages is, so, you know, I, again, with my inability to really think fourth dimensionally with coding, I go out on the web sometimes and I'm like, oh, you know, a Python script to do XYZ, a Python script to do XYZ. A lot of those scripts are going to be dependent on different external things potentially, right? So they might be...
Yeah, when you write your own stuff, you don't always take the time to make it just.
generic enough to work with everything.
A lot of the tools that we use are kind of hard-coded to our environment.
Right. So just be aware of that, that just because you find a cool script that might not work.
Also, like, versions of these languages can come into mind, you know, version of Python, version of Lua, etc.
All right.
So, I mean, I think that's-
One last thing I want to mention here, and this is going to apply to basically everything,
get on the internet and look at other people's work because people usually post,
there's a lot of open source stuff
just get on Google and just search for stuff
the best one of the best
tools you can ever have for learning
is just looking at other people's code and seeing
how they did it and
and lifting stuff wholesale
because as long as you're not trying to like
represent it as something that you're selling
as something as your own work
if you just need to make a tool and somebody
has done something similar that you just need to adapt
copy and paste
you know copy paste and tweak
I agree and I mean that's how
people open something. People open
source stuff for that reason. Yeah. And in my in my feeble attempt of this, you know, trying to get into
this stuff, I have found, you know, obviously the probably the largest community for this kind of thing is
GitHub. But I have found that some of those communities are really actually pretty robust and like,
surprisingly not all that elitist and like talking down to people, right? Like, you know, you'd expect to
find these coding nerds who are like, what, like, your code's sloppy. What are you doing, right?
Like most of the time people are helpful and want to help, you know, pick things out and we'll give you play.
You know, there's, there's, I will couch that by saying as you dive deeper into this, there is, there's, you know, there's preferences for how things are done with code, right?
I always remember the, there's a, there was a great show on HBO a couple years ago called Silicon Valley.
And there was a scene in that movie,
seen in that shit, one of the shows where two coders were arguing about using tabs or spaces,
you know, in their code and it became like this war.
So don't let that turn you off.
There is preferential kind of stuff for this, you know,
and what one person's definition of good code, clean code,
is another person's definition is just, it's horrible.
So just don't take a person.
And that's a cool thing.
It's an important thing to distinguish.
There's a big difference for me in throwing together,
own workflow tools when needed and making a commercial product properly to sell.
Totally. You know, for stuff that you're just using internally, it doesn't have to be,
it doesn't have to be right, it just has to look right, you know? Wait, that's backwards.
I got you, I got you. Well, that's a good segue into the next thing I want to talk about,
and that is DCTLs. It seems like DCTLs over the past few years have become their own sort of cottage
industry. You know, we have, we have some good friends that make some really good DCTLs and programming.
Let's start at the beginning with this and sort of defining it because I think a lot of people
will be surprised that CTL is something that is really actually kind of specific to our industry,
that color transform language that actually had its birth with, I think in the mainstream birth,
was with the Academy and the Aces guys
and programming a new language to do
kind of that open source color management platform
that eventually developed into Aces
with this idea of the CTR language.
Black Magic, you know, obviously uses some flavor of CTL
for their supportive Aces, but they also took it
and they said, oh, this is cool.
Like, this is a cool language.
We can do something with this.
And we can do this to give people some creative tools.
So they just kind of rebranded that a little bit,
DCTL, DaVinci Control, or Transform Language, and it has become, like I said, sort of a cottage
industry with people making tools to do all sorts of things. You've had, you've dabbled in this,
and like I said, we have some good friends that are much more advanced than you and I.
Tell us a little bit about kind of this DCTL process. I know you're going to say, have an idea
before you start coding. But like, what goes in?
into that? What is it
super complicated? Because it seems to me that
everybody in their mom is creating DC
Tails, it can't be ridiculous
to art. Yeah.
So a DCTL, like you said, is the DaVinci
Color Transform Library, and the
differences between the DaVinci version
and the Academy version
is just resolve specific stuff.
They added features to be able to
let you add sliders so you can
adjust things. All a
CTL or DCTL is,
essentially, is
a piece of software that you write gets dropped into resolve and it takes in a red, green,
and a blue pixel value.
And it spits out a new red, green, and a blue pixel value.
They also now support alpha channels and they can support some positional stuff as well.
But that's basically it.
It is image in, pixel in, new pixel out.
So the simplest DCTL ever is like, I want to take this, maybe multiply the value by two.
now we're just doubling the gain of an image, right?
So what you would use a DCTL for as opposed to a script,
which is kind of a set of instructions to optimize a repetitive task,
a DCTL is a way to do custom image manipulations.
We've used it for things like pattern generators for calibration.
We've used it for things like blanking detection before major scope products had that feature.
are built in. There were a lot of people using my blanking detection CTL, which literally just takes
any value, pixel value below a certain threshold and turns it bright red. So you can see if
there's any blanking errors in your image. I've used DCTLs to make custom letterbox generators.
And on the more advanced side of it, yeah, there are a lot of really smart math people doing really
interesting color tools in DCTL.
You can't make a color tool in a scripting language because you can't change the image
with the scripting language.
You're just kind of telling resolve what to do.
Whereas the DCTL, you can literally write any kind of mathematical code you want and have
that literally change the image in that way.
So if you're really smart with color science, DCTLs are fantastic.
Yeah.
I mean, so, you know, it's really interesting because I, I've dabbled and had some pretty good success with the basic stuff that like, like you've said, right?
Like, you know, whatever.
Throw an image up on screen when I do this.
Like, I made one that was like a bug safe zone.
Like that, like that kind of thing, right?
Super, super easy.
But when you get into the higher end stuff where you're really manipulating stuff, I do think it's important to say that part of the problem solving and problem building is having a little bit of a mathematical and slash.
color science understanding, right, with how, how color really works, how the tonality and
image works, what you can do that will break an image, you know, in sort of the various ways
that things are transformed from, you know, one encoding specification to another encoding
specification. Like, it's not as simple as just like, oh, I want to make some sliders that do
all these awesome things. Like, you have to have some math behind it, right, to figure out.
You've got to actually do the color science work if you want it.
Yeah. And I, and I, and I, and I, and I, as,
over the years as we watched like our like our buddy Colin Kelly,
Jason Bodak, Cara Hendrickson,
like a bunch of these other people that have commercial products.
From the sidelines,
I've definitely seen this like this growth and understanding
of their math and color science, right?
To like to like to the point where a lot of those folks,
like they even like, you know,
they count like dedicated hardcore RIT color scientists as their,
their mentors for helping them figure out,
kind of some of the math that's involved here,
because it's not just a light switch to turn it on.
But with that said,
there is some really cool things that you can do pretty quick.
And just a plug for Black Magic,
Black Magic actually does a DCTL webinar class
pretty frequently that I think Culling Kelly has run in the past.
I think Darya Fassoon sometimes does it.
It's a good, high-level overview of DCTL program,
and getting started with it.
And so if you're not familiar with that,
I believe those classes are still free.
That's a definite resource to check out because...
Yeah, and just like scripting, help developer.
There's also a DCTL folder.
And there's examples in there.
So you can open up those examples and see exactly how they're written
and what they're doing.
You might want to take one of those examples
and just start tweaking it a little bit or changing it.
And that's kind of the way to get started.
You know, Black Magic has done a very good job documenting these capabilities.
And I think that's kind of the starting point for everybody.
Yeah, yeah.
And it's, I can't stress enough.
Like the, the, the, the problem first that you're trying to solve.
That's, it's so paramount, especially with the DCTLs, because like, if you don't know what you're, the end result that you're trying to get to, you have no understanding how to get from point A to point B, right?
So that's an important one.
Now, so scripts, DCTLs, I think the next thing I want to talk about is this.
Oh, I don't even know how to say it.
It's like these custom, like custom things that I often want to do and go,
wouldn't it be cool, Joey, if we had a way of like, you know, a new client comes in and we could just click a button and it automatically makes like a new user and password for them on our portal and then emails them that.
And then, you know, whatever.
Like there's all these things that I often like big picture.
And usually it's your hand on your chin just like you are now going, all right.
Okay. All right. And then a week later you come back and you go, hey, I want to show you this, right? Now, I give you a lot of credit. You know a lot more code than I do. But I think it's fair to say that you get a hand and assist every once in a while from some various platforms. And I think these are really, to me, as a Luddite with this stuff, it is really kind of interesting some of these platforms. And I'm about to tell you something and tell me if I got it.
right. Some of these sort of low-code, no-code automation-type platforms like make.com and
an 8-n and others, they essentially go out to the wide world of the internet and software and kind of
call all these various APIs in one place, right? They kind of curate that. So if you have
stuff from Blackmagic or, you know, Adobe or Amazon or whoever, they kind of know what all those
various APIs are for those various places, and then let you build and connect the dots between
all the various servers and all the various APIs. Is that a relatively accurate? Exactly. Connect the dots
is the perfect way to describe it. And I'm going to focus on kind of two platforms, because of the ones I'm
the most familiar with, make.com, which is completely cloud hosted, and in 8n. Both of them are
you know, low to no code
workflow automation platforms
that their whole purpose is to go out and do things online
with various APIs.
And they're both node-based.
So if you're familiar with Resolve,
you're going to love this.
You literally draw out a node tree
just like you would in color.
Now, in color, you start with your image on one end
and you do a bunch of operations
and then your output.
That's your output, right? Yeah.
Well, guess what? On make.com or in8N,
I'll say this, N8N is my absolute favorite.
We'll get into the hosting options later,
but it is incredibly powerful
because it kind of bridges the gap between no code,
completely drag and drop,
and you can fully throw a code note in there
and write as much code as you want.
You can kind of set how much coding you're going to do
depending on how custom you need to do.
But let's just take an example, right?
Like you said, these services have hooks into
all the different APIs
of all the cloud service,
that you might use.
So Dropbox,
Zoom,
Monday.com.
We use Monday.com for all of our project management,
so a lot of this ties in to that.
Amazon Web Services for files.
I mean,
hundreds of different services
that you may or may not use.
Notion.
I know a lot of people organize our projects
with Notion.
That's got a very good API.
Like massive and like,
you know,
file transfer services can tie in too.
Yeah.
So just think about how you want to integrate multiple services that aren't connected at all.
All right.
So, Joey, like, when we start talking about this stuff, obviously the connection and connecting
the dots between all these APIs is an important one.
And like, you know, I, over the past couple of years, we've really focused on using Monday.com
as our project management platform.
And so for us, personally, a lot of the needs that we have to connect the dots kind of
radiate out from
Monday. So I'll give you a couple
examples and maybe one or
two of these you could break down further because I probably
have some of the details wrong. So
some of the ones I love, for example, that we've integrated.
We do all of our proposals
through Monday.com, right? So I'll go into Monday,
I'll fill in all the various bits and
the cost information and schedule information
and then I literally just hit
a make button that makes
a PDF that I can then just
automatically mail to whoever the contact
is associated on that platform.
Now, at first, it doesn't have a signature line because we might go through some revisions and some back and forth.
But once they do it like, hey, cool, this is done.
Like, I'm ready to go.
I click a button that says send for signature and it automatically goes to another cloud platform.
It sets up the signature line.
It sends to them.
It tracks when they've signed it.
Oh, and by the way, when they sign it, it gets back at it.
It gets added back to Monday.com and says, oh, you've signed this document.
This project is ready to go.
And even cooler than that, it actually creates a new project that.
moves to our current projects and we're ready to see it.
Like, awesome, right?
Another one I love is our Zoom integration with Monday, right?
So if I have, in the context of talking to a client, they're like, hey, it would be great
to set up a call on Monday about, I'm sorry, I'm not going to use Monday, on Tuesday about
doing a conform on this project.
Cool.
Instead of opening up Zoom or going up to Gmail and doing all that kind of stuff, literally
just go set meeting, put in the details.
It fires off all the emails to everybody, including the.
the calendar invites and all that kind of stuff, I can see right in Monday that it's been accepted,
right? So we have a lot of things like that that are calling out to different platforms and different
services to make those connections. And my understanding of this, Joey, is that you scripted that
all with these no code, low code platforms literally by just going, okay, well, if Rob clicks this
button, I need this to happen. And if the client doesn't do this, then these are the three results. So it's like
kind of a choose your own adventure tree, right?
Yeah.
And like I said, it's a node tree just like Resolve.
So you would have something that starts it off, right?
That's like kind of the trigger.
In our case, that's a button that we program in Monday.com.
Right.
And then usually that trigger will carry some data with it, just like in Resolve.
You know, those little lines of the node tree carry the image and the Alpha Channel.
Here, we're carrying all the data from that service.
to the next node.
So let's talk about the Zoom call integration first.
When you set up that row in Monday for your Zoom call,
you put in the contact information of anybody that you want on it,
you put the date and time.
Then you press the button, right?
That hits our N8N server, gives it that information.
It says, hey, this is the Monday item that contains the Zoom call you want to do.
That's really all the information we need,
because the next step, the next node, is a Monday.
com node that says, hey Monday, give me this number, which is the number from the trigger.
Then inside that number, we've got lots more information, right?
That item in Monday has the emails of all the contacts, the subject of the Zoom call that you put in with text, the date and time that you want it to be.
All of that stuff is just populated by in 8N reaching out to Monday and saying, hey, give me item number, whatever the number was.
Then we go down this little node tree again.
We say, okay, well, I'm going to go to Zoom now,
and I'm going to make a new meeting for this time and this date.
And each one of these nodes, you can kind of browse through every bit of data
from the previous node in a list.
It'll literally say, okay, here's all the fields that the Monday node gave you.
Email, date time, drag that data field to one of the input fields on Zoom.
Now, Zoom gets the date and time.
from Monday creates a meeting.
Then we make another node
where we do what's called a loop.
We go through every single contact
that was in the list we got from Monday.
And then each of those,
we say, hey, Zoom, add this contact
to that Zoom meeting.
So I'm dragging in the contact from Monday.
I'm dragging in the meeting ID.
We just got back from Zoom after we created that meeting
and dragging it to the next node.
and so on and so forth.
And you can be as simple or as complicated as you want.
I have very simple automations, for example,
one that goes back into N8N, gets a list of the automations,
saves them out as individual files, and uploads them to Dropbox.
I do that every night.
So if I mess one of these up, I have a backup to go back to it.
Right?
But there's hundreds of services that both make.com and N8N can talk to natively,
and it's very, very kind of what you're used to on the web.
Like if you want to get into a Google sheet, for example, you add a Google sheet node,
and it's going to come up and say, hey, okay, you need to connect your Google credentials.
It will bring up a Google login page.
You log into Google, give make.com or innate in permission to access your Google and whatever permissions you wanted to give it.
And then they're connected and they can talk.
So it kind of handles all of the authentication, all of the back and
forth and all of the moving of data.
So you can just kind of sit there and think,
okay, well, the client is putting
their information in a Google sheet.
I want that to get into my
Monday sheet
in real time. So
now we just put in some hooks to do that
because we can take all of these different services
and just drag and drop data
from any field at any stage
to any other field at any stage.
Yeah. And I mean, I think that the other thing
too is that like,
I think there's a line here
where it becomes a case of diminishing returns for the complexity that's involved, right?
And so you do you do have to kind of do some mental math on that.
So like, for example, you know, in principle, what I'm about to say is a straightforward thing.
But once we started looking into it, we're like, oh, but there's this use case.
And then there's this.
And what about this and what about that?
Right.
So like, for example, like it makes sense in a, you know, a creative business like ours to go,
hey well if we track hours or whatever in monday we want to port those right over to quickbooks
and send off an invoice automatically but that doesn't like i was like hold on joey that's cool
but there's some personal finesse that goes in here maybe i'm not going to bill all eight hours
this time around because we're doing them a favor or you know what it actually i'm not going to
send the invoice to this person i'm going to send it to that person because that person has a
Hissy fit.
There's some human factor in there that just because you can do it doesn't mean that
you always should do it.
And so that's actually gotten us to a place with some of these tools that I would make
a distinction where we have automated what we would like to automate and then still
leaving part of it up to human decision and execution to complete that task.
So with a quick book scenario, cool, I made a draft invoice for you.
but I didn't send it to whoever, and you can still review it and still edit it
and do whatever you need to do before you send it off to somebody, right?
Like those kind of things are important.
That's key, figuring out exactly where your pain points are, where your repetitive tasks are,
and automate those, but then your actual thinking tasks, you want to keep a human in the loop.
Absolutely.
So that stuff, that makes a lot of sense.
And I would also just say for you letites like me, make.
N8N, there were some great tutorial training videos and all of those platforms, because they are
so whizzywig, they will handhold you through that process of like creating your first couple
scripts and or workflow automations and getting and get sent out there. Now, Joey, I'm thinking
about this because I'm thinking scripts. I'm thinking this kind of workflow automations we just
talked about with make and stuff like that. But at a certain point of time, it just seems to me like
this is just like data flowing back and forth between the pipe without any real way to like
kind of like visualize it, right, or like to do something with it. And it just gets me to thinking,
like, well, what if I want to make my own like interface for something so like where I have to
input something in that then fires off one of these scripts or, you know, even I'm just thinking
of something like maybe, you know, there's people out there who want to design their own like
upload portal to get files from clients, right? So like you have to be able to like design a front
end a little bit for that before the rest of your scripting and workflow automation that's
take off. How does that done? So, you know, that can kind of take a number of shapes.
Yeah. For us, the shape that it usually takes is Monday.com. We use Monday.com as a front end for
everything. But that's just for Robbie and I. That's not public facing. If you need to create
something public facing, the web can be your best friend in the world because you can just give a client,
give another user, give a freelancer, a URL of a custom tool that you've made,
and that can hook in to all of these other automations on the back end that we've been talking about.
There's a bunch of tools for doing this, but the one I want to focus on and talk about is the one
that I'm kind of most familiar with that I use a lot, which is called Buddybase.
And it's essentially kind of a, what you see is what you get web form editor that is also tied into its own database.
system that can also hook into things like make.com, like in Aiden, and it makes it really easy.
So if you want to make a form or something that clients or freelancers enter in data into,
Budibase is super cool because you can literally do it like a word document.
Like I want a text field here.
I want a file upload field here.
And when they click submit, you'll get like a list of options that you can kind of set
what it does.
So in our case,
what it does is sends that hook into in-8-N
to get another process started.
So, for example,
what we've used this for is I made a front-end
for some custom Dolby Vision automations
that we've built.
I also made one for making slates.
So I work with a lot of clients
at a major, major non-fiction set of networks
and their promos need slates.
their promos come in with what's called a cut sheet,
which is an Excel spreadsheet.
There's a list of all the numbers and the names and the versions
that need to go on a slate.
And I've got it automated now with both a combination of Buddybase UI,
where it's just a URL that I give to some of my editor friends
that work with this network.
And it hooks into an in-a-in automation I made to make the actual images.
From the user perspective, an editor logs in,
types in the name of the project,
uploads the Excel spreadsheet,
hit submit.
Then they get back a link to a Dropbox folder
that has rendered out images of all their slates.
No typing, no errors,
no copy and paste in the wrong fields.
Everything automated.
And that's kind of a cool thing
to kind of add to all of this conversation.
The more you automate,
the more you eliminate user error and input error.
So it's also kind of,
of a cool way to keep your quality control up because you can't make a mistake if it's copying
and basing the text exactly. Yeah. And I mean, the other one that comes to mind with this kind of custom
UI and tie into some of this coding is I often think about, and we've dabbled in implementing
this, you know, I haven't done it fully, but I, this discussion has made me think that we should
probably revisit that is, is the client onboarding process, right, of like kind of like the initial sales.
Like, you know, how many times a week do we go, hey, if you just send us a reference cut and like, you know, whatever and tell us more about the project.
Well, I mean, yeah, you could do that simply through, you know, true type form or, you know, whatever, a million all these other forms to kind of get that data dumped in.
I think the distinction, though, that this, to kind of tie this all together is that when you use a third party tool like that, sure, it can do like for something like a form.
That's relatively straightforward.
But where this customizable ability with BuddyBase and Make and NAN come in is that client, you create your own form, but then it's what happens after that form, right?
So you could be in a place where, hey, okay, tell me a little bit more about your project.
And all of a sudden, it's firing off automations that are creating project folders on your storage that are notifying you that, hey, a file has been uploaded from this client that you send a proposal to.
Like, you know, Bob's your uncle with how integrated and customized you want to get this, get this going.
I would say with all of this, though, you have to make the distinction between things that are good in an internal to your group that you can explain to people.
Like, cool, that's frustrating for you, but whatever, I'm the boss, do it versus the outside facing stuff, right?
And I think in general, any programmer will tell you, but we've also.
also learn too that less is always more when it comes to the outward facing part and being really simple, right?
You know, if you can make a form with five fields instead of 15 fields, people are way more likely to use the five form field than they are the 15 field form, right?
So like thinking about how you can make that stuff, and it's even even simpler than that.
Things like, well, I want to pull down.
I don't want to have to type something in, right?
Like just like make the choices for me.
You have to start when you get into some of this stuff.
thinking a little bit like a UI designer too
of things that are going to make people's life
a lot easier to use this tool.
But that's one of the cool things about taking this approach
versus the very simple, like,
I'm going to put a web form on my site
that just emails me approach.
Because let's say, for example,
you do have a client onboarding form
and you do have a drop down of different options.
Later on, you want to change that.
Well, if you're doing a more custom approach,
you can have that drop down,
pull those options from whatever project management
software you're using, for example, Monday for us.
And then once you change it there, it automatically changes anywhere that you're pulling that
data.
Yeah, no, totally.
It makes total sense.
Now, one of the things that you have said through this process is, or this discussion is,
you know, hey, use this tool, use that tool.
And a lot of them sounds like they're on the interweb somewhere, right?
They are, what do they call that?
SAS or something?
Software as a service.
Right, exactly.
So, you know, in principle, I don't have as much data anxiety as you do, right, in terms of, you know, privacy or things going to miss.
But I understand the practicality part of it, right?
If you're, you know, if something goes down that's outside of your control, well, it's down until it's not, right?
And you have to just kind of suck that up and just deal with it.
Tell us a little bit about kind of, you know, the ability to kind of.
to kind of internalize some of this and run it on your own gear.
And I think, you know, we had it.
We discovered some of these pitfalls when we were, you know,
doing the PDF thing with the proposals that I was talking about earlier,
that we were like, holy crap, there's a million PDF services out there,
but they all cost an arm and a leg to use.
And no, I don't need to make 50,000 PDFs this year.
So, like, we decided to internalize some of that.
And you're actually running the PDF creation software for our proposals on a server at your house, yeah?
Yeah.
So, you know, most of these services that I've talked about thus far all offer a buy it, monthly fee, you know, fully supported cloud option where you just log in to their software on their cloud, pay them a monthly fee, and they manage everything.
For a lot of people, that is honestly a great way to get started because, yes, the risk is that it can go down, but I'll be honest, the risk that your own custom server is going to go down is probably a lot higher than theirs going down.
But it's more, at that point, it's more about setting your proprietary data out of your control.
I get it.
Yeah, that's 100% a good point because there's a cost implication.
there, right? These do have
monthly fees associated with them and depending on
how much you use each of these different applications
have different cost structures. None of them are massively
expensive and I think they're worth it for what functionality
you can get out of them. But
specifically,
Bodebase, inate-in,
and a few others can
be very easily
self-hosted. Now,
there are certain features in them that
require you to buy their
cloud versioning
like connecting it to AI services and stuff like that.
There's some really advanced use cases where self-hosting doesn't really work.
But for most post-production needs, the self-hosting does work.
And that's the option that we've chosen to use because I'm used to administering servers
and I don't have a problem with it.
And that does let us keep all of our data internal.
And it also lets us have some hooks that we wouldn't normally have.
For example, it can talk to my local storage and make project folders for me.
It would be a lot more complicated to do that on a cloud-based version.
So whenever you're kind of shopping these low-code, no-code automation platforms,
that's just one of the things to consider.
Can I host it locally?
Should I host it locally?
How much does it cost to not host it locally?
Right.
the functionality is usually pretty similar,
but the devil's in the detail.
So just kind of look at the offerings
and what features you might think you need.
You know, Monday.com is a good example.
The more we dug into it,
the more we realized, yeah, we kind of got to buy
the top level thing.
We were like, oh, you know, we can use the free version
for this, this, and this.
And then we can get like the base level paid version.
And then I'm like, yeah, but I want to do that
and connect it to that.
So we ended up kind of going all.
I understand.
No, I understand.
I mean, you know, the dream is to be self-reliant, but you do have to play on some of these.
But I do like, I think for some, you know, for some organizations, this is going to be the same kind of concept of as air-dapping your creative machines.
You know, like you do want to have control of that data.
Now, one thing, one last thing before we wrap this up, or two last things before we wrap this up, I do think something you said at the beginning in this conversation is you kind of, you kind of.
glossed over it, but to me, it's a really important, and honestly, is something that I have
learned its value over the past year. And that is, at some point, you have to make a decision
about where you want your central clearinghouse of data to live, right? We, I think a lot of people
get fatigued with this kind of stuff because they use 27 different services and everything is
kind of in a different place, right?
We, in what you said earlier, was, hey, we've used Monday as kind of our central part.
And that's just one, that's the choice that we made because it was something we're using for
project management, but it also had the ability to hold files, contacts, you know, all this
other kind of stuff.
I do think it's important as you start getting brainstorming these plans that you do think
about spreading yourself too thin with too many different services doing too many disparate
things, right? And that was one reason, like, I had a real hard time for a long time, just to be
transparent about it, really understanding what the power of Monday was and why it was as expensive
it was. It was like, dude, this is just like a live Excel table. Like, what's the big deal? And you
kept trying to explain it to me, explain to me, explain to me. And then it was only where I realized that,
oh, we have one set of master data that can now be used in 30 different places.
That's cool, right?
So we could use the same, you know, the same client name to generate 27 different processes or whatever.
And that was like, that was a big aha moment for me to understand that like the more that you can centralize that data into a one living database that can play well with others, the more power you have.
Yeah. And so to kind of wrap the whole thing up, I want to go back to the very beginning, and I know I keep saying it, keep saying it, but it's so important. Number one is the idea, right? Once you know, and if you have a clear, articulable idea in your head of what the tool that you need for your workflow is going to look like and is going to do, if you can describe that, well, then in most cases, you might be able to program it.
if you're handy with programming, great.
If you're not, though, there are options out there of hiring a developer.
You can bring in freelancers if your idea in your head of this workflow that you want is clear enough
and well thought out enough that you can describe it to somebody who does have the programming skills.
Then, you know, that still is a very, very useful road to go down.
I always think about our friend Alexis Van Hercman when you, when we talk about that, that part of it.
For those of you don't know, Alexis, he's an author, he's a colorist, he's a product designer these days.
He's currently at Adobe doing magical things, but forever he was writing the user manual at Blackmagic for Resolve.
One of the things that's always really impressed me about Alexis is his ability to do what you just described.
He's not a coder, right?
I mean, I'm sure he knows some level of code to a certain degree, right?
but he is a conceptual, like really spell it out so the coders can go,
oh yeah, I know what you're talking about.
Give me a couple days to kind of execute on that, right?
And that goes, you know, in a tool like resolve where, you know,
he was helping create some of these tool sets.
That's everything from not just the initial concept and idea,
but to all the way to like wire framing.
Like I want the UI to work like this, right?
And I think what I've always been impressed about with him is germane to what you just said.
The more that you can explain it in exacting detail, when you do get stuck or you get beyond your level of ability,
it can't be overstated how much that skill can help you get something more out of a developer,
not only in getting a better product, but actually like controlling your cost to a significant degree as well, right?
If you're just like, I don't know, I want it to be cool.
Like a developer is going to be like, what?
Right.
But if you can be like, I need to be real happy with that.
Right.
But if you can be like, hey, when I put it.
this button, these five things need to happen. If these five things don't need to happen,
then this happens, et cetera. The more you can explain that stuff, the better off you are.
You're absolutely right. Like, I have, for years, I have thought about, man, it would be great
if there was a marketplace for this kind of thing. And then I started looking into it. And guess what?
There's marketplaces for this kind of thing. Like, I've recently used a website called codable.com
and codable is more like WordPress web developers, but it's the same kind of idea.
have, hey, I got a problem.
You put it up there.
You build a little brief of what your problem is.
And then they pair you up.
They kind of curate and kind of vet people that are best matched for your thing.
Years ago, when we first started like prior to the pandemic, the COVID pandemic,
I was like, oh, man, you know what would really be cool is to build my own remote review
and approval app to go on like LG TVs.
I talked to a guy.
I went to one of those websites.
He's like, yeah, I used to be an engineer at LG.
I can build an app.
on the way, you know, like, so there's all that kind of stuff out there,
but it's, you're only going to get as much out of it as you can describe.
Yeah.
So just to kind of close it up, the idea.
Yeah, I hear you.
Anytime you have repetitive pain points, that's when I want people to start thinking about,
well, I'm working really hard on this really boring task.
There's got to be an easier way.
And hopefully with all of these different things that we've talked about in this series,
both hardware and software,
where you can start trying to figure out
what those easier ways are.
Awesome.
Well, good stuff.
I really enjoyed this conversation.
I always geek out talking about this.
Even if I only conceptually understand some of it,
I do have fun to learn about it.
Just as a reminder,
you guys can find the show on YouTube.
Just search for the Offset Podcast.
We're on social media, Facebook, and Instagram as well.
You can also go to The Offsetpodcast.com
and find all our episodes and additional show notes there.
and we are on all major platforms like Spotify, Apple, and so on to find the show.
And if you do find the show, just give us a like, subscribe, tell your friends, the more, the merrier.
Well, Joey, this was a good conversation.
I'm glad that we covered these two areas of hardware and software because I think they are important topics.
So until next time for the Offset Podcast, I'm Robbie Carmen.
And I'm Joey Deanna. Thanks for listening.
