I made the icy-nord and icy-nord-darker themes.

change suggestions

issues

update notifications

@promitheas:matrix.org

  • 4 Posts
  • 25 Comments
Joined 2 years ago
cake
Cake day: June 12th, 2023

help-circle







  • The other comments do a good job explaining why you would go with X or Y distro based on your requirements. What I want to do is give you a general recommendation/piece of advice based on a feeling I get from reading your post that, that you are not excluding the possibility of tinkering with your system at some point in the future to get it less bloated and more streamlined to your use case (please absolutely correct me if I’m wrong about my interpretation).

    As such, I think if your current computer has the ability to reasonably run Mint you should go with that. The reason is that it simply works most of the time without much hassle. As someone new to Linux, that’s a big part of the transition. A lot of stuff is new, so there’s no need to force extra complexity on top. You have the ability to dabble in said complexity even with Mint, but its not required, and while I am dying to recommend Arch to you having read that your PC is a bit on the less powerful side (the meme is real guys), I don’t think its a productive use of your time nor a healthy level of stress to deal with at this point of your “Linux progression”. That’s why I recommend Mint; make the transition, have the ability to slowly and eventually play with your system to an increasing degree as you get more comfortable with everything, but don’t handicap yourself from the get-go. Eventually, if you do decide to go with a distro which gives you more control in exchange for higher experience/knowledge/tinkering then you should have a solid foundation of skills to build on.

    tl;dr: I recommend Mint so you get used to Linux, looking up solutions online, using the tools (commands) available to you to diagnose problems you may encounter, and if you decide its good enough for your use case - stick with it. If you want more control, think of it as a learning experience which will allow you to at some point delve into the more hands-on, complex distributions.




  • Oh, Im sorry. If I’m honest I completely forgot. Here it is:

    You will need ffmpeg installed, and I did write it for Linux, so I’m not sure if there are differences for windows. Worst case you need to slightly modify it to work on windows.

    #!/usr/bin/env python3
    
    import requests
    import os
    import subprocess
    from urllib.parse import urljoin
    import sys
    
    def download_video_chunks(base_url, output_file):
        """
        Downloads video chunks from the given base URL and merges them into a single file.
    
        :param base_url: The URL to the playlist or base directory containing the video chunks.
        :param output_file: The name of the output video file (e.g., "output.mp4").
        """
        try:
            # Get the playlist file (e.g., .m3u8 or .ts index file)
            print(f"Fetching playlist or video chunk URLs from: {base_url}", flush=True)
            response = requests.get(base_url, timeout=10)
            response.raise_for_status()
            
            # Parse the playlist to get the chunk URLs
            lines = response.text.splitlines()
            chunk_urls = [urljoin(base_url, line) for line in lines if line and not line.startswith("#")]
    
            if not chunk_urls:
                print("No video chunks found in the provided URL.", flush=True)
                return
    
            # Create a directory for storing chunks
            os.makedirs("video_chunks", exist_ok=True)
    
            # Download each chunk
            chunk_files = []
            for idx, chunk_url in enumerate(chunk_urls):
                chunk_file = os.path.join("video_chunks", f"chunk_{idx:04d}.ts")
                print(f"Downloading {chunk_url}...", flush=True)
    
                with requests.get(chunk_url, stream=True) as chunk_response:
                    chunk_response.raise_for_status()
                    with open(chunk_file, "wb") as f:
                        for chunk in chunk_response.iter_content(chunk_size=1024):
                            f.write(chunk)
    
                chunk_files.append(chunk_file)
    
            # Merge the chunks into a single file using ffmpeg
            print("Merging chunks...", flush=True)
            with open("file_list.txt", "w") as f:
                for chunk_file in chunk_files:
                    f.write(f"file '{chunk_file}'\n")
    
            subprocess.run(["ffmpeg", "-f", "concat", "-safe", "0", "-i", "file_list.txt", "-c", "copy", output_file], check=True)
    
            print(f"Video saved as {output_file}", flush=True)
    
        except requests.exceptions.RequestException as e:
            print(f"An error occurred while downloading: {e}", flush=True)
        except subprocess.CalledProcessError as e:
            print(f"An error occurred while merging: {e}", flush=True)
        finally:
            # Clean up temporary files
            if os.path.exists("file_list.txt"):
                os.remove("file_list.txt")
            for chunk_file in chunk_files:
                os.remove(chunk_file)
            # if os.path.exists("video_chunks"):
                # os.rmdir("video_chunks")
    
    if __name__ == "__main__":
        base_url = input("Enter the URL of the video playlist or base directory: ")
        output_file = input("Enter the output video file name (e.g., output.mp4): ")
        print(f"Starting download process for playlist: {base_url}", flush=True)
        download_video_chunks(base_url, output_file)
    

    If you guys can recommend a fair and open pastebin alternative for me I will upload it there as well and edit this with the link






  • I considered that, and the reason I decided to go with the method I chose was twofold:

    1. I of course need to be safe - that means I don’t want to run unsafe kernel code on my main machine, so a virtual machine makes sense. I could use one of my old laptops as both a host and target machine, but honestly I have my main machine set up just how I like it for development so I would probably end up using it for writing the actual code anyway. I suppose I could have one of my laptops be the target and pull code from github (exactly what I was planning to do with the virtual machine just with real hardware).

    2. I didn’t want to introduce more problems than would naturally occur when going through the book while learning, by adding the fact that I have a great mismatch in kernel versions, which would undoubtedly change the APIs a great deal. I learn better when I can focus on getting comfortable with one thing at the beginning, and then building from there. If its not as tragic as I imagine it though (the mountain looks larger before you start the climb) I would definitely prefer getting comfortable with the modern kernel as ultimately that’s what I plan to develop on (this all started because I want to fix some stuff with my Genesis Xenon 770 mouse that I’m unhappy with currently).

    However, I am open to the idea. Could you direct me to any resources you found helpful specifically for adapting what you read/learn in that book, to the modern kernel? Or any other helpful resources really, anything would be helpful at this point. Discords, forums, wikis, whatever you have :)