Interests: programming, video games, anime, music composition

I used to be on kbin as e0qdk@kbin.social before it broke down.

  • 2 Posts
  • 47 Comments
Joined 10 months ago
cake
Cake day: November 27th, 2023

help-circle
  • I set up a couple profiles with different colored backgrounds so that I can easily visually distinguish terminal windows when I have several open at once. For example, I usually switch the profile to one with a red background when I ssh into a server to help avoid confusion about which system I’m running commands on. I also cranked up the font size a bit in all profiles to make it easier for me to read.



  • If you want to improve significantly, go read someone else’s code and modify it. Try to fix a bug in a program you use, add a feature you want that doesn’t exist already, or even just do something simple for the sake of proving to yourself that you can do it – like compiling it from source and figuring out how to change some small snippet of text in a message box. Even if you don’t succeed, if you put in a serious effort attempting it, you will almost certainly learn a lot from trying.

    Edit: changed wording to try to be clearer



  • How 'bout that! :D

    If the SSD itself is OK, then it was probably trying to boot the SSD still. The blank screen issue might have to do with the graphics drivers then? I remember having a similar blank screen problem with Ubuntu a long time ago where I had to put in “nomodeset” as a parameter in GRUB when booting until I got the right drivers set up.


  • the tablet supports pxe boot. Do you think I could get mileage off of that if I set up a server on my other laptop and connected them via ethernet?

    Maybe. If it’s not too much trouble to set up and you can’t get the USB to work again, might as well try it before throwing in the towel.

    I’m rather confused by the fact that the USB drive worked for you before but doesn’t any more and yet seems to be OK on other systems. Is there anything like “fast boot” enabled in the BIOS maybe? (Try turning that off if so.)

    Also, when you’re trying to boot from the SSD, can you get anything out of GRUB by tapping shift or escape (or maybe other keys) while it’s trying to boot?


  • Do you think that removing the ssd will help?

    It’s a sanity check to help you rule out things like unintentionally booting from the wrong device. Can’t boot from hardware that’s not there! If the USB does work with it removed, then something you believe about how the device boots is false and you can then try to figure out what. A lot of BIOSes will “helpfully” try the next device in the sequence if it can’t successfully boot from the first one – which can be really confusing when debugging.

    Some other thoughts for things to check: does the device confirm that it can actually see the USB drive in some way? Does a USB keyboard work in the port you’re using? If there’s more than one USB port, have you tried a different port? Do your USB drives work in another computer?


  • I rebooted to the installation media to try another install. It was black too.

    I assume you’ve probably already checked, but in case not, is the boot order correct? What happens if you remove the SSD entirely and try to reboot to the USB without it?

    Also, does the SSD boot in another computer?

    If you can’t get anything to boot on the tablet, I’d RMA it.




  • I wrote something like this before for academic researchers to load data sets on display walls by using their cellphones. I approached it by building a simple website. When the user logs in, they’d see a table of entries (from a directory listing on a shared file server that they could drop their data sets onto) and could click a button that made a form post to the server which caused it to run whichever programs were needed to load the data set they wanted (or run a couple of other handy commands – like turning the monitors on/off, etc).

    You can do something like that too in Python if you want:

    1. Learn how to start and stop programs from Python scripts. This can be done with the built-in subprocess library. If you know how to launch the programs you want from the command line, it shouldn’t be too hard to figure out how to do it from Python by reading the documentation. It will take some more effort to figure out how to interact with it (e.g. to stop it from user input) without blocking your script, but this can be done.
    2. Learn how to write a simple program that can respond to HTTP requests in Python. There are a number of libraries like tornado, flask, cherrypy, etc. that can do this. Pick one, read the documentation, and write a tiny page that allows you to submit a form and then trigger an action on the server in response to an HTTP POST. You should be able to interact with it by pointing the browser on your computer to localhost (possibly plus a port) or from on your LAN by putting the IP of your computer into the address bar.
    3. Figure out how you’re going to organize the entries you want to be able to load. You could just do something trivial like putting the files in known folders and running os.listdir, or something more involved like tracking the entries with a spreadsheet or database or JSON file that lets you associate custom metadata with each entry (like a custom name to show or an icon to display or when it was last launched, etc.)
    4. Generate a web page based on that data collection. I recommend using templating – e.g. with mustache, or jinja, etc. Basically you write some HTML-like text that lets you indicate places to fill in data from your program and it will do the conversion of symbols like < into &lt; that are needed for HTML output and also repeat patterns using entries from lists you provide to build the rows of tables and such for you.
    5. Set up some security (e.g. a simple log in system) and polish it up as much as you care to do.

    Good luck and have fun!





  • On a past OpenGL project where I supported resizing, I used GLFW and responded to its framebuffer size callback by calling glViewport and resetting the projection matrix (in my case with glLoadIdentity followed by glOrtho – it’s not fresh in my memory any more, but I don’t think that project used shaders at all). I also called glClear with GL_COLOR_BUFFER_BIT as part of my regular redraw. That worked fine for my needs.

    It looks like what GLFW was doing under the hood to trigger that callback was looking for an XEvent from X11 (via XNextEvent in a loop with a condition based on the result of calling XQLength) with type set to ConfigureNotify and which had an xconfigure entry with a width or height that differed from what was tracked directly by GLFW on its own window structure. When it saw an event like that, it would call the callback. After processing the event queue, GLFW called XFlush on the display.

    See x11_window.c in GLFW’s source code for more detail: https://github.com/glfw/glfw/blob/master/src/x11_window.c

    Direct link to raw code, if you prefer: https://raw.githubusercontent.com/glfw/glfw/master/src/x11_window.c

    Hopefully comparing with what GLFW did can help you debug your own implementation. Good luck!


  • I don’t know how to do it with KDE’s tools, but on the command line with ffmpeg you can do something like this:

    ffmpeg -i video_track.mp4 -i audio_jp.m4a -i audio_en.m4a -map 0:v -map 1:a -map 2:a -metadata:s:a:0 language=jpn -metadata:s:a:1 language=eng -c:v copy -c:a copy output.mp4
    

    Breaking it down, it:

    • runs ffmpeg
    • with three inputs (-i flag) – a video file, and two audio files.
    • The streams are explicitly mapped into the result, counting the inputs from 0 – i.e. -map 0:v maps input 0 (the first file) as video (v) to the output file and -map 1:a maps the next input as audio (a), etc.
    • It sets the metadata for the audio tracks -metadata:s:a:0 language=jpn sets the first audio track (again counting from 0…) to Japanese; the second metadata option sets the next audio track to English.
    • -c:v copy specifies that the video codec should be copied directly (i.e. don’t re-encode – remove this if you DO need to re-encode)
    • -c:a copy specifies that the audio codec should be copied directly (i.e. don’t re-encode – remove this if you DO need to re-encode)
    • output.mp4 – finally, list the name of the file you want the result written into.

    See documentation here: https://ffmpeg.org/ffmpeg.html

    If you need another language in the future, I think the language abbreviations are the three letter codes from here: https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes – but I’m not certain on that.



  • e0qdk@reddthat.comtoMusic@lemmy.worldThoughts on AI music?
    link
    fedilink
    English
    arrow-up
    8
    ·
    4 months ago

    A fairly vocal portion of lemmy is AI-hostile, and even for the people who aren’t outright hostile to it, it can be annoying at times – AI content does tend to drown everything else out when it’s permitted, so making a community explicitly for it would probably work better.

    lemmy.dbzer0.com might be a good place to host a community specifically for exploring AI generated music if you’re interested in running one. That instance is explicitly open to AI gen and already has several image gen communities, but I don’t think they have a music gen community yet. (Double check though before making one in case I just missed it.)



  • I ran into an example of the thumbnail issue again today – this time on a post from kbin: https://old.reddthat.com/post/19193476

    The thumbnail looks like this in the HTML:

    <div class="thumb">
      <a class="url"
         href="https://media.kbin.social/media/60/a4/60a45b8ff88b1b2e3a0f77b701feb323c5bbfb7ceeb75154ea7df5d6eea15ef8.jpg"
         >
        <div  style="background-image: url(https://media.kbin.social/media/60/a4/60a45b8ff88b1b2e3a0f77b701feb323c5bbfb7ceeb75154ea7df5d6eea15ef8.jpg?format=jpg&amp;thumbnail=96)"></div>
      </a>
    </div>
    

    Note that it’s making a request to kbin.social with ?format=jpg&thumbnail=96 parameters in the CSS – which results in the full image being loaded since kbin doesn’t run pictrs.

    The versions in use on reddthat (according to the settings page) are:

    lemmy: 0.19.4-beta.7

    mlmym: 0.0.44