The Offset Podcast - The Offset Podcast EP023: DIY Part 2 - Software

Episode Date: December 2, 2024

Programming 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)
Starting point is 00:00:00 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?
Starting point is 00:00:45 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
Starting point is 00:01:19 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
Starting point is 00:02:07 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.
Starting point is 00:02:37 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,
Starting point is 00:03:21 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
Starting point is 00:03:48 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,
Starting point is 00:04:15 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
Starting point is 00:04:36 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.
Starting point is 00:04:50 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
Starting point is 00:05:25 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,
Starting point is 00:06:14 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
Starting point is 00:06:34 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.
Starting point is 00:06:48 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?
Starting point is 00:07:24 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
Starting point is 00:08:01 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
Starting point is 00:08:30 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.
Starting point is 00:08:53 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...
Starting point is 00:09:19 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.
Starting point is 00:09:38 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.
Starting point is 00:10:32 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
Starting point is 00:11:18 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
Starting point is 00:11:56 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
Starting point is 00:12:14 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.
Starting point is 00:12:31 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,
Starting point is 00:13:05 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.
Starting point is 00:13:33 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.
Starting point is 00:14:31 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.
Starting point is 00:15:03 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,
Starting point is 00:15:38 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.
Starting point is 00:16:06 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.
Starting point is 00:16:29 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
Starting point is 00:16:45 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,
Starting point is 00:16:59 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
Starting point is 00:17:23 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.
Starting point is 00:18:23 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,
Starting point is 00:18:50 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
Starting point is 00:19:06 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
Starting point is 00:19:20 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.
Starting point is 00:20:13 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.
Starting point is 00:20:38 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
Starting point is 00:21:10 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
Starting point is 00:21:48 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,
Starting point is 00:22:07 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
Starting point is 00:22:43 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
Starting point is 00:22:59 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.
Starting point is 00:23:23 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.
Starting point is 00:23:59 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.
Starting point is 00:24:44 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.
Starting point is 00:25:16 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
Starting point is 00:25:54 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
Starting point is 00:26:19 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,
Starting point is 00:26:40 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,
Starting point is 00:27:07 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
Starting point is 00:27:25 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?
Starting point is 00:27:56 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.
Starting point is 00:28:34 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
Starting point is 00:29:52 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.
Starting point is 00:30:20 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.
Starting point is 00:30:33 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.
Starting point is 00:30:51 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.
Starting point is 00:31:07 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
Starting point is 00:31:25 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.
Starting point is 00:31:39 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
Starting point is 00:32:05 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
Starting point is 00:32:21 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.
Starting point is 00:32:43 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.
Starting point is 00:33:02 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.
Starting point is 00:33:26 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.
Starting point is 00:34:01 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.
Starting point is 00:34:28 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.
Starting point is 00:34:53 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,
Starting point is 00:35:31 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
Starting point is 00:35:59 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.
Starting point is 00:36:19 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.
Starting point is 00:36:42 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.
Starting point is 00:37:18 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
Starting point is 00:37:36 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,
Starting point is 00:37:51 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.
Starting point is 00:38:17 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
Starting point is 00:38:57 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.
Starting point is 00:39:29 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
Starting point is 00:40:06 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
Starting point is 00:40:47 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
Starting point is 00:41:32 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
Starting point is 00:42:16 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.
Starting point is 00:42:34 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.
Starting point is 00:42:56 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.
Starting point is 00:43:21 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,
Starting point is 00:43:40 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.
Starting point is 00:44:21 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.
Starting point is 00:45:24 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.
Starting point is 00:46:04 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.
Starting point is 00:46:20 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.
Starting point is 00:46:38 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?
Starting point is 00:47:01 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.
Starting point is 00:47:33 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.
Starting point is 00:48:02 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
Starting point is 00:49:02 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
Starting point is 00:49:19 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.
Starting point is 00:49:43 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.
Starting point is 00:50:17 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.
Starting point is 00:50:33 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
Starting point is 00:50:51 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.
Starting point is 00:51:23 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
Starting point is 00:52:07 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.
Starting point is 00:52:52 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.
Starting point is 00:54:06 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,
Starting point is 00:54:48 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.
Starting point is 00:55:11 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.
Starting point is 00:55:39 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.
Starting point is 00:56:13 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.
Starting point is 00:56:36 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.
Starting point is 00:56:55 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.
Starting point is 00:57:15 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.
Starting point is 00:57:32 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.
Starting point is 00:58:05 And I'm Joey Deanna. Thanks for listening.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.