Interests: programming, video games, anime, music composition

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

  • 1 Post
  • 24 Comments
Joined 10 months ago
cake
Cake day: November 27th, 2023

help-circle



  • 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’m not sure if I’ve ever fallen in love with a completely imaginary dream person, but I did dream about my ex once years and years after we broke up. I don’t remember what I dreamed about exactly, but I do remember waking from it. The happiness fading as the realization set in that it was all a dream – I was by myself in bed and none of it had been real. I’m usually pretty good at dealing with solitude, but that moment… that was the most intense loneliness I think I’ve ever felt.


  • 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!



  • You might find writing guides relevant to your interests. For example, “How to Write Science Fiction and Fantasy” by Orson Scott Card contains some details about how the author came to write Hart’s Hope and other novels. “Scene & Structure” by Jack Bickham might also be interesting – I don’t remember discussion of specific books in it, but it might scratch a similar itch for how-it’s-made style content.

    Some books also contain introductions/forewords/afterwords with details about how the book was written. A bunch of OSC’s novels (like some editions of Ender’s Game) come to mind specifically – I read those back when I was curious about maybe trying to become a writer, so that’s the most prominent example in my mind, but I’m sure there are others. I’ve also seen translations of a number of works where the translators include really long introductions explaining some of their choices – and sometimes criticize earlier translations.



  • Everything I’ve set in Settings is forgotten: Default Listing reverts to All, Default Post Sort reverts to Hot, and so on.

    mlmym (the “old” interface) stores its front-end specific settings in your browser via cookies and local storage. The way it’s implemented works for the most part and probably makes the front-end simpler, but has some downsides like not retaining your choices between logins. There’s an issue open for this in the bug tracker: https://github.com/rystaf/mlmym/issues/104

    I’m not sure why it forces a logout periodically even when you’re using it regularly though. (I mean, the cookies are probably not being updated and just expire eventually – but I don’t know if that was a deliberate choice or not.) It might be a good idea to open an issue for this?



  • I was curious, so I did some searches on this topic for you and found these pages:

    The second link in particular notes:

    The reason that things are much easier with all ASCII data is that practically every Unicode encoding in existence maps bytes 0x00…0x7f to the corresponding code points, so byte strings and Unicode strings that contain the same all-ASCII data are basically equivalent, even semantically. What usually trips people up with non-ASCII data is that the semantic meaning of bytes in the range 0x80…0xff changes from one encoding to another.

    But, thinking like a systems programmer again, for many purposes the semantic meaning of bytes 0x80…0xff doesn’t matter. All that matters is that those bytes are preserved unchanged by whatever operations are done. Typical operations like tokenizing strings, looking for markers indicating particular types of data, etc. only need to care about the meaning of bytes in the range 0x00…0x7f; bytes in the range 0x80…0xff are just along for the ride.

    So the trick for beating Python 3 strings into submission is to put in encoding and decoding calls where you need to, choosing a single-byte encoding that doesn’t mutate 0x80…0xff. There are many of these; most of the Latin-{1…6} sequence (aka ISO-8859-1…10) is has this property. What you do not want to do is pick utf-8 or any of the multibyte Asian encodings. Latin-1 will do fine; in fact it has an advantage over the others in memory consumption, which we’ll describe below.

    Whether depending on this is actually correct or not is beyond me, but it seems like people have actually been using that pass-through behavior in practice and put it into things like Python2 -> 3 migration guides.

    The first link suggests that the seemingly undefined ranges are valid as C0 and C1 control codes which may be why it doesn’t throw errors.


  • 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.