13 votes

What programming/technical projects have you been working on?

This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?

25 comments

  1. whbboyd
    (edited )
    Link
    A few weeks ago, I bought a Wyse WY-60 serial terminal. Last week, my USB serial adapter and DB25 null modem cable came in. Since then, I've been having fun with it. This will probably come as no...

    A few weeks ago, I bought a Wyse WY-60 serial terminal. Last week, my USB serial adapter and DB25 null modem cable came in. Since then, I've been having fun with it. This will probably come as no great surprise, but the software infrastructure for serial terminal support in modern free software unixen has… suffered some bit rot. =P Some of the issues I've had to fix include

    • FreeBSD base includes and uses termcap, which is… let's call it legacy, difficult to find documentation on and difficult to use. terminfo (the modern replacement) is present in the packages collection, and some other packages will use it, but having software use different, slightly incompatible, terminal capability databases is not fabulous. (I specifically had the damndest time trying to puzzle out tput—the one in base uses termcap, but you can install ncurses from packages to get an alternate that can use terminfo—because spitting raw xterm escapes into a monochrome serial terminal that's not a vt100 goes about as poorly as you could imagine.)
    • Did you know about bracketed paste? Sounds neat, potentially useful, right? Did you know that very recent versions of readline unconditionally send the enable/disable escapes regardless of the value of TERM? Did you know that a serial terminal from the early '80s for which "paste" is what users smear on the screen has no idea how to interpret those escapes? I didn't know any of that; guess how I found it all out. (If you find yourself in this slightly esoteric situation, you can prevent readline from sending those escapes by disabling bracketed paste mode: put set enable-bracketed-paste off in ~/.inputrc.) Filing a bug about this is on my personal to-do list.
    • For some reason Linux isn't correctly setting the viewport dimensions, even when TERM is wy60-43-w (indicating the 43-line, 132-column wide mode). Mostly this either doesn't matter or means things just draw in a little 24x80 square in the top right left, but drawing optimization routines occasionally take advantage of the wrap, and if it doesn't happen where they expect, they get very garbled.
    • My USB serial adapter isn't stable at 38.4 kb/s. It introduces noise when flooded at that rate, which invariably wedges the terminal and necessitates a hard reset. Works fine at 19.2 kb/s. I know it's the adapter, because plugging directly into the serial port of a system which has a serial port works fine at 38.4 kb/s.
    • Talking to a terminal at double-digit kb/s is so slow oh my goodness! Multiple seconds to fill the frankly not especially large screen (even in the high-resolution mode) is surprisingly painful. We're spoiled by the extreme bandwidth possible over the internal pipe between programs and terminal emulators.
    6 votes
  2. [3]
    helloworld
    Link
    I'm learning Lisp, to be specific MIT Scheme by following SICP book. Why, I don't know, but the concept of treating code is data is very intriguing. It is absolutely worthless to have Lisp on my...

    I'm learning Lisp, to be specific MIT Scheme by following SICP book. Why, I don't know, but the concept of treating code is data is very intriguing. It is absolutely worthless to have Lisp on my resume, but I'm hoping it will be fun and might push me build some tooling around Emacs.

    5 votes
    1. [2]
      jcdl
      Link Parent
      I don't know about absolutely worthless. It's definitely niche, but it might get the right graybeard-turned-hiring-manager's attention.

      I don't know about absolutely worthless. It's definitely niche, but it might get the right graybeard-turned-hiring-manager's attention.

      4 votes
      1. helloworld
        Link Parent
        In my country, I don't think any college teaches Lisp. I seriously doubt I'll come across managers (people graduated between 95-10) know or care about Lisp. Most spent their lives as contractors...

        In my country, I don't think any college teaches Lisp. I seriously doubt I'll come across managers (people graduated between 95-10) know or care about Lisp. Most spent their lives as contractors in body shops, where it was Cobol, Java, .net or python at best.

        A dative recently got on a syllabus committee of a college and asked me for suggestions. I told him to see if they can include Lisp in the course and he came back saying college has no options for professors with any Lisp knowledge.

        3 votes
  3. [4]
    tesseractcat
    Link
    I've been working on my Portal VR clone again (I posted about it a while ago, honestly I'm surprised there still isn't anything like this, it's been 2 years). I've made some major structural...

    I've been working on my Portal VR clone again (I posted about it a while ago, honestly I'm surprised there still isn't anything like this, it's been 2 years). I've made some major structural changes, including removing the VR level editor and just making it flat screen (having the level editor in VR was more effort than it was worth). Everything's been going pretty smoothly so far, so I suspect it'll only be a few weeks until I've added most of the level elements from portal and fixed the biggest bugs, although I'm really bad at time estimates so who knows.

    Also, this time I've decided to make all the assets myself, so I've been getting better at 3D modelling (still haven't approached texturing yet).

    Anyway, here are some in-progress gifs:
    https://gfycat.com/aliveweightyiceblueredtopzebra
    https://gfycat.com/barrenminiaturechimpanzee

    5 votes
    1. [2]
      Apos
      Link Parent
      This looks great! Do you get a lot of motion sickness? Or you get used to it after a while? It must be something to jump into a portal and the gravity's direction changes.

      This looks great! Do you get a lot of motion sickness? Or you get used to it after a while? It must be something to jump into a portal and the gravity's direction changes.

      2 votes
      1. tesseractcat
        Link Parent
        Fortunately, I don't experience motion sickness. I suspect it would be uncomfortable for people who are susceptible to it though. I make sure to rotate around the heads axis instead of around the...

        Fortunately, I don't experience motion sickness. I suspect it would be uncomfortable for people who are susceptible to it though. I make sure to rotate around the heads axis instead of around the body, which makes things less disorienting.

        3 votes
  4. [4]
    Wulfsta
    Link
    I’m just about fed up with AMD’s non-support of ROCm. I have been trying to get the higher level libraries working on NixOS, as I’ve posted about in the past, but was unable to do so. I decided...

    I’m just about fed up with AMD’s non-support of ROCm. I have been trying to get the higher level libraries working on NixOS, as I’ve posted about in the past, but was unable to do so. I decided instead to spin up a drive with Ubuntu 18.04.5 on it, just to run one of my old neural styling programs - lo and behold, it doesn’t even work (at least the beta 4.0.1 PyTorch wheel) on the supported OS! So I filed a bug report with the errors from the PyTorch tests on my machine over a week ago and still have not heard back from either the PyTorch team or ROCm support. I might try building from source to overcome the issue, but I don’t have high hopes that will work either. The last time I actually had ROCm working on a machine was at 2.8 - and I have not had any actual support that I can remember since then. On top of this, the documentation is so bad that I’ve been working on this in spare time for at least a year and don’t even know if there’s a sane, simple way to check if the ROCm stack is working properly - it’s an absolute mess, and I’m close to selling my GPU (for a profit???) and just buying a 3090.

    4 votes
    1. [3]
      admicos
      Link Parent
      Semi-relevant rant-y thing: Even on a supported system with a proper install, ROCm is still crap in that it doesn't work with many things including Blender. AMD, doing the dumb, first said "GUI...

      Semi-relevant rant-y thing:

      Even on a supported system with a proper install, ROCm is still crap in that it doesn't work with many things including Blender.

      AMD, doing the dumb, first said "GUI Applications are unsupported" (so... you can mine cryptocurrencies, but can't render a donut?)

      As per the latest information and clarity provided in our Documentation that ROCm does not support GUI applications officially.

      Now they have backtracked on it, saying they have "some plans"

      We have come up with some plans to handle GUI apps in a way.

      But that was a month ago and no updates happened on the issue so far. I guess miners pay more than people who just want to make digital donuts, huh?

      I am currently stuck with an old version of AMDGPU-PRO's OpenCL stack, because the newer ones don't work properly on Polaris cards, and ROCm is, well, still not there yet.

      I am starting to think about plugging my old 1050Ti back in, solely for compute, but the market right now means if you don't have one on hand, good luck getting one!

      5 votes
      1. Wulfsta
        Link Parent
        I managed to snag a Radeon VII on release, so I have officially supported hardware and it still does not work at all. I have been considering selling it since it’s worth something like triple what...

        I managed to snag a Radeon VII on release, so I have officially supported hardware and it still does not work at all. I have been considering selling it since it’s worth something like triple what I purchased it for, then just buying an Alienware Aurora R12 configured with a 3090, ripping that card out and putting it in my rig (the OEM Alienware 3090 is one of two 3090 cards that will fit in my case, it’s a smaller form factor), then reselling the rest of the R12. The only reason I have not done this is because I also don’t want to deal with Nvidia’s driver stack.

        3 votes
      2. jcdl
        Link Parent
        The lack of ROCm support is really making me regret buying a 5700XT. I'm deadset against buying Nvidia because I'm a stubborn fanboy, so I hope Intel can bring some compute-focused competition to...

        The lack of ROCm support is really making me regret buying a 5700XT. I'm deadset against buying Nvidia because I'm a stubborn fanboy, so I hope Intel can bring some compute-focused competition to the market with their upcoming discrete graphics.

        3 votes
  5. admicos
    Link
    Rewriting Moonlander in Vala. (Previous Thread) Vala is, if you didn't know, a language made specifically for working with GNOME libraries (GLib, GTK, etc.). It's kinda like C# in syntax, but...

    Rewriting Moonlander in Vala. (Previous Thread)

    Vala is, if you didn't know, a language made specifically for working with GNOME libraries (GLib, GTK, etc.). It's kinda like C# in syntax, but compiles down to C with GLib instead.

    Why rewrite? Because GTK on Rust was too darn complicated and boilerplate-y for me. Also Vala compiles a bit faster and is overall a better Linux citizen regarding packaging and stuff IMO.

    Currently, I got to the point of connecting to Gemini without any TOFU and rendering Gemtext pages as plaintext, but just in 2 days work this is really good (obviously some "architecture" work is ported over from the Rust Moonlander), but Vala does things a bit differently so it was still a fair bit of work.

    There are some things I'm missing from Rust (enums with actual data, Result<>, match, etc.) but overall the language itself looks like a pretty neat Java/C# clone to me so far.

    If you're planning to do any GUIs on Linux, do give it a shot! But be warned, it's documentation isn't as great as it could be, and while it can use C libraries, it requires you to write VAPI files and whatnot, so the small-ish library ecosystem can also be an issue. Still do try it out though, I like it.

    4 votes
  6. [3]
    Akir
    Link
    For the past few weeks I've been trying to grok a way to use LibVGM in an Xcode project so I can make VGM player with a GUI. The problem is that I really don't understand Xcode yet, and at the...

    For the past few weeks I've been trying to grok a way to use LibVGM in an Xcode project so I can make VGM player with a GUI.

    The problem is that I really don't understand Xcode yet, and at the same time I'm trying to get this library working with either Swift or Objective-C (with this being the first time I've ever written any code that uses a C library to begin with). LibVGM has no real documentation, so I'm stuck reading the code, which is made more difficult by the fact that its build system is cmake, which I of course have no experience with. It doesn't help that the code seems to be absolutely everywhere in some sort of pattern that I can't seem to understand. Oh, also I've technically never written an application for MacOS.

    So yeah, I basically have no idea what I'm doing and it's frustrating. It doesn't help that I've been depressed lately so haven't been able to focus on it much at all.

    That being said, I haven't not made progress. It helped that I learned that cmake has the ability to generate Xcode projects, which will do a lot to help me understand how to get things running. And I should be grateful to the contributor who added Core Audio support, without which this would have been much more complicated.

    4 votes
    1. [2]
      joplin
      Link Parent
      I have quite a bit of experience using Xcode for macOS development. (It's actually the tag where I have the most points on Stack Overflow.) If you have questions, let me know. What is LibVGM? I...

      I have quite a bit of experience using Xcode for macOS development. (It's actually the tag where I have the most points on Stack Overflow.) If you have questions, let me know.

      What is LibVGM? I went to their GitHub repository, but there's no readme. I see references to audio stuff, but not much else.

      3 votes
      1. Akir
        Link Parent
        VGM is a logging format for a wide variety of audio synthesizers used in video game consoles, arcade machines, and computers. Libvgm is basically a collection of emulators that let you play back...

        VGM is a logging format for a wide variety of audio synthesizers used in video game consoles, arcade machines, and computers. Libvgm is basically a collection of emulators that let you play back the music written for them.

        2 votes
  7. [3]
    archwizard
    Link
    There are a few projects I've been working on. First, since the beginning of Covid, I've been using AWS to spin up Minecraft servers for my friends and I to play on. I've found that Minecraft...

    There are a few projects I've been working on.

    First, since the beginning of Covid, I've been using AWS to spin up Minecraft servers for my friends and I to play on. I've found that Minecraft while voice-chatting has been the closest thing to physically hanging out with them. Recently though, I've decided to migrate to Dreamhost, since I'd rather not support AWS more than necessary. So I need to rewrite my scripts in Python to work with the OpenStack API, which will be a little bit of a challenge, but I think I'll learn a bit.

    Second, I saw someone mention a pubnix that they set up recently using the Shizaru server, so I looked into it and saw that it blocks <script> tags. So I'm trying to use HTML entities to get a react page running, despite the blocking. I think it'll be a fun project that'll help teach me more about XSS and its limits.

    Anyways, glad to hear from y'all.
    ~Archwizard

    3 votes
    1. [2]
      k2l8m11n2
      Link Parent
      Doesn't that cost you a fortune in bandwidth? I thought that the outgoing transfer prices for AWS would make this much more expensive than the alternatives.

      Doesn't that cost you a fortune in bandwidth? I thought that the outgoing transfer prices for AWS would make this much more expensive than the alternatives.

      2 votes
      1. archwizard
        Link Parent
        That hasn't been my experience actually. Probably because I don't keep the server online 100% of the time, and because I don't normally play with many people at once. Normally, There's about 10GB...

        That hasn't been my experience actually. Probably because I don't keep the server online 100% of the time, and because I don't normally play with many people at once. Normally, There's about 10GB out per month, and that's with roughly weekly playing sessions, so at 9 cents per GB, it's typically under a dollar a month. Now the real budget killer is accidentally leaving the server up lol

        1 vote
  8. [6]
    Grendel
    Link
    I'm diving into learning CAD using Fusion 360. I started out doing this so I could make designs for my 3D printer, but now it's so enjoyable I'm also designing things just for fun!

    I'm diving into learning CAD using Fusion 360. I started out doing this so I could make designs for my 3D printer, but now it's so enjoyable I'm also designing things just for fun!

    3 votes
    1. [5]
      Akir
      Link Parent
      Coincidentally, I have also downloaded Fusion 360 recently, but I haven't used it too much simply because I've already gotten used to the math-based design workflow with OpenSCAD. And to be...

      Coincidentally, I have also downloaded Fusion 360 recently, but I haven't used it too much simply because I've already gotten used to the math-based design workflow with OpenSCAD.

      And to be honest, I'm also put off by the extremely locked-down proprietary nature of the program as well as the rather ugly and unresponsive interface. It looks really easy to use, though, so I'm sure I'll be breezing through it whenever I can get over myself.

      3 votes
      1. [3]
        milde
        Link Parent
        FreeCAD might be a decent (and open source) alternative. I haven't used it too much compared to Fusion 360 and other CAD software, so I can only say it's not super intuitive at first, but at least...

        FreeCAD might be a decent (and open source) alternative. I haven't used it too much compared to Fusion 360 and other CAD software, so I can only say it's not super intuitive at first, but at least has all the basic CAD functions.

        1 vote
        1. [2]
          Akir
          Link Parent
          The last time I tried to use FreeCAD, it was very unstable and had an interface that was terribly difficult to understand.

          The last time I tried to use FreeCAD, it was very unstable and had an interface that was terribly difficult to understand.

          2 votes
          1. milde
            Link Parent
            A steep learning curve seems unfortunately common for CAD software. I appreciate what Fusion360 and OnShape are doing in terms of making CAD software easy to learn and use. I guess right now,...

            A steep learning curve seems unfortunately common for CAD software. I appreciate what Fusion360 and OnShape are doing in terms of making CAD software easy to learn and use. I guess right now, we're stuck with "open source, easy to use, pick one".

            1 vote
      2. Grendel
        Link Parent
        Yeah I tried OpenSCAD but it was a little un-intuitive for me. You may want to try FreeCAD instead, it's open source and has a similar feel to fusion.

        Yeah I tried OpenSCAD but it was a little un-intuitive for me. You may want to try FreeCAD instead, it's open source and has a similar feel to fusion.

        1 vote