Debugging Dan

Tech enthusiast, avid side project builder. 🚀

E20: Get It Done #5

10/21/2024, duration: 15:05

category: Podcast
/

E20: Get It Done #5

Get It Done #5

In this episode of Debugging Dan, I share a recap of my progress with my video processing project, nicknamed Dan Cuts. Over the last two weeks, I’ve focused on building rather than marketing, embracing new technologies like Next.js. I’m developing a workflow that automates video uploads and extracts audio while ensuring a smooth user experience with error handling and traceability. I also outline my goals for the upcoming weeks, which include refining the Dan Cuts tool, improving my social media presence, and developing a new robots.txt tool. Throughout the process, I aim to document my journey and share insights on what I learn.

Stay connected! Follow me on X at @debuggingdan for the latest updates, and subscribe to my YouTube channel @debuggingdan for the podcast and other interesting videos!

My active side projects are:

  1. observalyze.com: Enhance user engagement, satisfaction, and overall experience for your application by applying Gamification
  2. teletron.me: Build personal dashboards. Visualize and make your most important information available at a glance. Your dashboards will be accessible, privacy-first, non-technical and available on multiple devices.
  3. datasthor.com: The hassle-free solution for seamless remote data storage for you or your application, making data management a breeze.
  4. supersave: Open Source: Bootstrap your project with a simple database abstraction and automatically generated REST API

Video

Transcript

This week, I restart my initiative to create Get It Done podcast for accountability and sharing what I'm working on. So this is Get It Done 5, where I do a short recap on what I've been working on in the last two weeks without having a Get It Done goal set. I explain what I'm working on with Tank Cuts, my video processing pipeline that I'm working on. And I show you the four tasks that I will be working on for the next two weeks. Enjoy!

Welcome to Debugging Dan, where I share weekly my journey, balancing life, a full-time job, and side projects. I'm Dan, your host. Let's dive in! Episode 20 of Debugging Dan. And I didn't do these Get It Done for a few weeks, because I was kind of out of it. And I decided, well, I'm kind of out of it, but let's go and let's get back in track. Maybe the focus needs to lie a bit more on building instead of the side projects and trying to monetize it, since I'm currently in the process of really enjoying the building and trying to focus on that to keep things flowing. That feels like a good flow. So I will mostly be building in the next couple of weeks and less on side project marketing, SEO, stuff like that. But building is also fun.

So, what am I currently building? I'm currently building something I've nicknamed DanCuts. Like, there are several video editing programs, Cuts Pro. So the internal working name that I created is DanCuts. It's not going to be a final name. I don't even know if the tool is going to be public. It is something that I plan to use for myself. So the idea is that, as I explained in earlier podcasts, you can listen back, of course. But the short summary is, you have a video, you upload it somewhere, and then all kinds of automatic processing is done, resulting in one or more output videos that I can then easily use on a different platform, like share to social media, YouTube, which is also social media, or somewhere else, maybe create thumbnails and other stills, and that's the idea. And I'm building it using Next.js, which is a new technology for me. I have been working with Express and Preact in Node before, but Next.js is using React. It runs on Node, but it's a very different programming experience, as I found out, since there is no long-running process you can use for background tasks, for example.

So I built other stuff for doing that. And the focus currently is just building it for myself, but with a twist. So normally when I build for myself, I just build it pretty fast. Not that pretty. And when I'm building it right now, I am trying to do the difficult things right. So proper loading and error state, so when something fails, show a clean error message instead of just showing an alert or something like that. So that's what I'm trying to do different. I'm doing task running. So you have upload a media file. There are several tasks that are firing off. So what I want to do, also when I'm doing it for myself, I don't want to have to log into my server and check out what the log messages said when a task failed or doesn't complete or something like that.

So what I'm also adding from the beginning is to add that traceability on those tasks. What I'm going to show you is what I have until now. So this is my SISI, the web UI or the web developer framework from Kitsay where I'm building it in. So there's a list of media uploads. So this one, that's the only one that I'm working on. I can view the details. And there I can see the different tasks that are available. So the first task for this run is to download the file from the Telegram bot. And then the next task that I'm currently working on is extract audio. And I'm still pretty much working on the basics.

So I did already build a service in Python for extracting transcripts and also adding captions of those transcripts on top of the video. And here I am implementing the frontend basically for those different tasks. So here is, after the video has been downloaded, I can extract the audio because I need that to upload that to the other servers for the transcripts. And what I'm working on is displaying the configuration. So configuring here where from the flow the input file goes from for extracting the audio. There's output that I can show here. Output for the Telegram download is a file you can view. And there are different files that could be linked to a task. There are files that are available on the top level.

Did I click right? Well, it's not loading or I don't have a loading indicator, but I think it's going to load in a couple of seconds. Yep. So I need to work on loading indicators there. And these are different audio elements that I've added or audio elements files that you can look as part of a run or a flow that has been running. And once I have the basics there, so I'm still working on extract the audio to make it possible to configure it. And once Telegram download is done, that extract audio is run automatically if all the information is there. Else it will pause until all the information is completed by the user. And I'm still working on those basic mechanisms.

And the idea is that once I have those basic mechanisms in place, it's pretty straightforward to add new elements here. And that's how I often also build. So there's a lot of work going on under the hood that you don't really see progress for in the UI. And at some point that's done. And often that's also the point where I lose interest in the project because the exciting part of building that underground layer that I like is done. And I hope for this one it will be different because I do really have a concrete goal for this project. And that's what I will also be showing further on in this podcast episode.

So if you're listening via the podcast, that's okay. You can see this, but you can check out the YouTube video if you're interested in how it looks. Currently on the screen there are two tasks showing and there is some information there. I can even switch to the responsive view. That's also what I'm trying to do right now correctly the first time. So that's one of the reasons why I'm using SISI is that it easily allows me to show a responsive view. There's mobile here. And yeah, so that's DanCuts what I'm working on. And yeah, I'm enjoying it. It's taking a lot of my time, but yeah, it's using new technology. So I like learning SISI. It kind of fits what I did in the past is I did my own kind of front-end, back-end framework combination where I was able to share types at least.

But what I like about Next.js is you don't need to explicitly define the API endpoints. You can just invoke a server-side action, which then returns the data, which is automatically serialized. So that's something that I like about Next.js. There are some things that you need to learn, ways that things need to be done. And that's what I'm still learning and hopefully doing it the right way eventually.

So in the get it done in the past, I had some tasks to find. So I was working on events. So I was updating what's your number to track meaningful events so that I could, for example, track when I posted to social media. Have that somewhere available on the timeline so that I could see if there's a spike in website visitors or social stuff that I could see, hey, that could be related to the thing that I did here. I completed that, I uploaded it, I've used it once in the past, this week, when I shared this week's podcast episode. I often share a clip or a screenshot, but this week I didn't share a clip because I had no camera view. So that wasn't a really fun thing to share, just having the green screenshot of the slide. But probably this week I will be able to share the introduction again.

And I've been working on social strategy and DanCuts is part of that. I haven't written content. I do have ideas for content. So what I'd like to do in the next period is when I'm building, I'd like when I solve something that I find interesting on how I solved it. And what I want to do is I want to do a write-up of that recording short video and even just create a blog post from that short and see how far I get away with automating that.

And what I also did there in the get it done is I wanted to build the first version of the robots.txt tool. And that's also in X.js. So I started working on that and I want to do that or continue with that in the coming period. So for the next two weeks, I have these tasks defined for myself. I want to have the DanCuts to a useful point. And that means that I can extract the audio. I can add captions and I can download the video again, so that I can use it for clips for social.

And in the meantime, or in the future, I also want to add some things like automatic summarizing of a video and using that for something else. Perhaps even find hotspots to create clips for and automatically create, extract those clips from my podcast video, for example. I want to do some more posting on social media. That's the second item. And going back to DanCuts, I also want to have, that's also an important thing is besides being able to upload a video and add caption to that, or perhaps audio, also audio. I also want to be able to reuse existing flow.

So I want to create a flow saying, hey, post to social. And then that automatically does some automatic steps. And then I can then post it to social. And it could also be cropping for Instagram, changing it from portrait to landscape, things like that. So socials is the second item that I want to do for my get it done for the next two weeks. So that's starting on Monday, the 20th, I think of October. Then for two weeks, I'll be, I have these items then planned and doing a different podcast on, on the, after the first week, I want to create content.

So that's the third item in relation to content and also the socials. I want to define a way of working so that I want to find out for myself. If I have an interesting code item that I want to share, how will I share that? Will I just first record my screen, separately record the video, somehow combine that? How do I create a blog post out of that? How do I do this? How do I do that? I want to visualize that for myself so I can start creating it. That's something that I need to think about and making it explicit in this get it done will hopefully help.

And besides building on DanCuts, I also want to continue on the first version of the robots.txt tool. I still think the idea is cool. It's an interesting tool and it's also something that might resonate with some people. So that's why I want to build it. And there's also, it's also building next year. So it will be learning more about next year. And it's also doing some other interesting tools and things. So that's why I want to continue with that. I already have the domain name, so let's continue with that.

Yeah, so that's my get it done update. I compared to two or three weeks ago when I had issues with my life side balance, my energy now is a lot better. And yeah, that's probably because I've been building more things. It just turns out that I'm really, I'm a technical guy. I enjoy creating the podcast. That's very, that's, um, I kind of, I am dreading it when the weekend starts. Oh, I need to prepare something. But when I'm recording it, I enjoy it.

And I need to make the pre-production and the post-production easier and simpler, so I can share things more easily. The, I need to find a way to make this room set up better and easier. And, um, yeah. And I just realized that I haven't been sharing my screen. I never switched. No, I did. No, I did. Funny. I was looking at the wrong screen. So I switched, luckily, to sharing my screen also. So, uh, I won't be cutting that out of this recording. Because, um, well, mistakes happen. And, uh, I find it funny. Maybe I can even make a blooper reel out of it.

So, uh, sharing my screen, having these four tasks. And, uh, thanks for listening. Leave a comment at the video, the podcast. Uh, like, rate, subscribe. And, uh, have a good one. Bye.

Thanks for tuning in to Debugging Dan. If you enjoyed this episode, please subscribe and leave a review. Stay curious and see you next week.