17 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?

21 comments

  1. Arghblarg
    (edited )
    Link
    I have been working on an alternative to ssh, not compatible but a totally new system, with experimental post-quantum KEM (key exchange management), in Go: https://gogs.blitter.com/Rlabs/xs It...
    • Exemplary

    I have been working on an alternative to ssh, not compatible but a totally new system, with experimental post-quantum KEM (key exchange management), in Go: https://gogs.blitter.com/Rlabs/xs

    It adds a concept of 'chaffing', adding noise to session data over the network in an attempt to make traffic analysis (like keystroke activity) and thus perhaps cryptanalysis more difficult.

    Supports KYBER, NEWHOPE and some other KEMs; AES, twofish, blowfish and other experimental algorithms for session encryption.

    Mostly started as an experiment in learning Go's crypto and networking stdlib, and how to integrate new algorithms and how to extend bare sockets to support transparent encryption; but it now even has (buggy) tunnel and secure file copy support.

    In severe need of a security audit, of course. Standard scary disclaimers apply as with any experimental cryptography product (don't use it to actually log into real systems expecting actual security, no warranty of fitness for purpose, it'll eat your dog and cheat with your wife, yadda yadda yadda) :)

    13 votes
  2. [3]
    Comment deleted by author
    Link
    1. [2]
      SkewedSideburn
      Link Parent
      Same here! I'm prototyping an isometric puzzle game. I'm still not sure how to approach level design, so as to not make the solution extremely obvious and at the same time fit the whole level on...

      Same here! I'm prototyping an isometric puzzle game. I'm still not sure how to approach level design, so as to not make the solution extremely obvious and at the same time fit the whole level on one screen, but I've pretty much established how I want movement and enemies to work, and what abilities to add.
      Here's an old gif of it (can't make a new one yet, as right now it doesn't exactly, uhh, run. I'm in the middle of some refactoring and adding enemy class)

      5 votes
      1. [2]
        Comment deleted by author
        Link Parent
        1. SkewedSideburn
          Link Parent
          As far as I understand it, Godot doesn't have very good SoftBody support yet, unless you're doing something other than cloth. So I made physics based animation in Blender and pre-rendered it. The...

          As far as I understand it, Godot doesn't have very good SoftBody support yet, unless you're doing something other than cloth. So I made physics based animation in Blender and pre-rendered it. The whole game is 2D with TileMap set to isometric mode, and all the characters are animated sprites. And since the game is turn-based with a fixed angle, there's a limited amount of possible animations, which means I can make them as pretty as I want, and then pre-render them. I'm also considering making the level 3D with four fixed rotation angles and animated sprites always turned to the camera, but we'll see if my levels become complex enough to require it.

          3 votes
  3. [4]
    weystrom
    (edited )
    Link
    I've finally gotten around to setting up my own mail and caldav server. Deployment was surprisingly easy, now my main concen is with making sure that gmail doesn't classify my messages as spam....

    I've finally gotten around to setting up my own mail and caldav server. Deployment was surprisingly easy, now my main concen is with making sure that gmail doesn't classify my messages as spam.
    They have this broken system where you're guilty until proven innocent, which frankly should be illegal.

    8 votes
    1. [3]
      Arghblarg
      Link Parent
      Yeah, I had similar pains setting up my own mail server with dovecot and exim; I had better luck running it on a VPS instead of my own home system. Google thinks the entire Shaw cable IP space is...

      Yeah, I had similar pains setting up my own mail server with dovecot and exim; I had better luck running it on a VPS instead of my own home system. Google thinks the entire Shaw cable IP space is toxic nowadays and defining spf records didn't help (wish I could get reverse DNS to resolve to my home server's hobby domain assignment but it is subsumed into the larger residential namespace...) :(. I used germanVPS.com for a teensy Debian system and it seems to at least let me send to and from Gmail accounts.

      1 vote
      1. [2]
        weystrom
        Link Parent
        I'm hosted on hetzner, IP doesn't seem to be blacklisted anywhere, and I triple-checked everything, SPF, PTR, DKIM, DMARC records (they're even marked as PASS in google headers), still sometimes...

        I'm hosted on hetzner, IP doesn't seem to be blacklisted anywhere, and I triple-checked everything, SPF, PTR, DKIM, DMARC records (they're even marked as PASS in google headers), still sometimes it goes into junk. I even registered my domain on postmaster.google.com. Nope.

        1. 0lpbm
          Link Parent
          "sometimes" might be based on heuristics outside of your capability of fixing: users that marked similar content as being spam, keywords in the email's body that trigger some bullshit bayseian...

          "sometimes" might be based on heuristics outside of your capability of fixing: users that marked similar content as being spam, keywords in the email's body that trigger some bullshit bayseian filter, etc. All you can do is ask the people to unmark it as spam and hope that google learns.

  4. skybrian
    (edited )
    Link
    On my accordion synthesizer project I started learning EasyEDA to design the circuit boards for the next prototype. It seems like a terribly designed program with badly-written tutorials, at least...

    On my accordion synthesizer project I started learning EasyEDA to design the circuit boards for the next prototype. It seems like a terribly designed program with badly-written tutorials, at least by consumer software or web design standards, but in this space it seems it's more important that programs work than that they look pretty or are easy to use?

    Also obsessing about the cables to connect the boards. I could make something up, but there are apparently two very similar standards for doing i2c and power over the same 4-pin connectors. Sparkfun has Qwiic and Adafruit has STEMMA QT.

    4 votes
  5. [2]
    eightys3v3n
    Link
    Working on importing a database of the daily weather for Calgary, AB, Canada going back to 1881 (~50,000 days). Then I want to make graphs to satisfy my curiosity. Did you know that in Calgary,...

    Working on importing a database of the daily weather for Calgary, AB, Canada going back to 1881 (~50,000 days). Then I want to make graphs to satisfy my curiosity.

    Did you know that in Calgary, AB, Canada the lowest recorded tempurature is in 1893 at -45 degrees C?

    Also starting to work on a friend's game project. I have to learn HTML canvases/JavaScript as well as decide on a language to handle the server.

    4 votes
    1. [2]
      Comment deleted by author
      Link Parent
      1. eightys3v3n
        Link Parent
        Thank you so much for the information! Now I have an official government source for weather data in Canada. I appreciate it!

        Thank you so much for the information! Now I have an official government source for weather data in Canada. I appreciate it!

        1 vote
  6. ShrubOfRegret
    Link
    Some measure of insanity and stubbornness has struck me, so I'm looking into rewriting Arx Fatalis in Rust. In pretty much every aspect I have no idea what I'm doing with this. I've never...

    Some measure of insanity and stubbornness has struck me, so I'm looking into rewriting Arx Fatalis in Rust. In pretty much every aspect I have no idea what I'm doing with this. I've never programmed professionally, so diving into a new codebase isn't a skill I've ever needed to learn. I've never done any proper graphics programming. Worst of all I've never really been able to get myself to sit down long enough to actually finish a project.

    At the moment I'm still basically sizing up the sheer scale of this project, and, right from the start, there are a number of roadblocks. One is that the organization of the code is bizarre to me; all the module names are picked out of mythology, so the likes of MINOS, HERMES, and Athena. There is documentation clarifying what each of these modules are, but the actual code comments are on the sparse side (also occasionally in French). Then on top of that, I don't think the original, unmodified, game can be compiled at this point. It runs off of DirectX 7, and Microsoft really doesn't want you reaching back that far.

    Even if I drop this before actually doing anything, reading through all old code has been interesting. Especially when there are those spots where you have to question if some obscure bug is being worked around, or if the original authors were also learning as they went. A fun example of this I found was a block of memory that, as far as I can tell, is allocated for no reason. The only direct use it has in the entire codebase is being freed in the situation that a few specific functions run out of memory and it isn't even reallocated afterwards.

    4 votes
  7. [3]
    SUD0
    (edited )
    Link
    Sadly, I have not made the time to work on many personal projects in my free time. Right now, I am working on the tutorial for pixel, a 2-D gaming library written in Go. The idea is to remake some...

    Sadly, I have not made the time to work on many personal projects in my free time. Right now, I am working on the tutorial for pixel, a 2-D gaming library written in Go. The idea is to remake some simple games, like snake, space invaders, ect. I got the idea from a blog post that suggested some cool projects to work on.

    2 votes
    1. [2]
      unknown user
      Link Parent
      Just a heads-up: to make a link, put text in [] and link in (). [blog post](https://web.eecs.utk.edu/~azh/blog/challengingprojects.html) → blog post

      Just a heads-up: to make a link, put text in [] and link in ().

      [blog post](https://web.eecs.utk.edu/~azh/blog/challengingprojects.html)blog post

      3 votes
      1. SUD0
        Link Parent
        Thanks for the heads up. I noticed it and fixed it right before you commented here, but I appreciate it all the same.

        Thanks for the heads up. I noticed it and fixed it right before you commented here, but I appreciate it all the same.

        1 vote
  8. unknown user
    Link
    Finished and released flat to public domain. Initially I wanted to put more features in, but it started to be too much work for a relaxing side project, so I cleaned it up and released it as it...

    Finished and released flat to public domain. Initially I wanted to put more features in, but it started to be too much work for a relaxing side project, so I cleaned it up and released it as it was. Maybe it would help someone else make a good thing.

    Meanwhile, I'm returning to work on Intergrid.

    Thanks to a suggestion someone made, I'm rewriting the data structure to separate DOM from content. The initial idea was to use DOM as the source of data, given that it already represents it nicely by providing both the visual and the informational hierarchy. This, however, may be much slower than the mostly-JS handling of things.

    The current version will only receive the bug fixes it requires in the meantime, as well as one feature: export function. This would provide the basis for manual data migration that's coming up. I promised to handle the data with respect; this is one step towards fulfilling this promise.

    I'm planning to make one last announcement on Tildes before switching to official changelog and roadmap hosted on the app's website. There seems to be quite a few people looking forward to Intergrid's development, but using Tildes as the platform for its promotion and discussion seems like abuse of the platform. The announcement will contain links to the changelog and, potentially, the development blog.

    Meanwhile, if you have questions or feature requests about the app, you can reply to this comment, PM me, or send me an email (the address is in the default notes).

    So far I'm also considering involving some form of feature request and voting platform to guide the app's development once it's mature enough. FeatHub seems like a good option – given that it's the only one I've seen so far. One of the obstacles about it is that it requires a GitHub account to vote, and I imagine that most of the users of Intergrid may not necessarily have one. I'd like to make voting inclusive and secure – that is, as impervious to abuse and brigading as possible. Self-hosted solutions are an option.

    2 votes
  9. [4]
    reguile
    Link
    I've been working on a site https://www.identitymanipulation.com to create/promote guides around a somewhat esoteric concept as well as to practice my MVC/.net core skills

    I've been working on a site https://www.identitymanipulation.com to create/promote guides around a somewhat esoteric concept as well as to practice my MVC/.net core skills

    1 vote
    1. [3]
      Arghblarg
      Link Parent
      Sounds like: “The Origin of Consciousness in the Breakdown of the Bicameral Mind” https://en.wikipedia.org/wiki/Bicameralism_(psychology)

      Sounds like: “The Origin of Consciousness in the Breakdown of the Bicameral Mind”

      https://en.wikipedia.org/wiki/Bicameralism_(psychology)

      2 votes
      1. [2]
        reguile
        Link Parent
        I love sharing this out in the wider world vs the community I originally was in because you get all sorts of great "hey this sounds like X" with neat information in it. Thanks for the link.

        I love sharing this out in the wider world vs the community I originally was in because you get all sorts of great "hey this sounds like X" with neat information in it. Thanks for the link.

        1 vote
        1. Arghblarg
          Link Parent
          I hope it was relevant -- I have no training in this area, it just reminded me of some podcasts I'd heard... I think these are the ones? From "Stuff To Blow Your Mind": Part 1:...

          I hope it was relevant -- I have no training in this area, it just reminded me of some podcasts I'd heard...

          I think these are the ones? From "Stuff To Blow Your Mind":
          Part 1: https://podbay.fm/podcast/350359306/e/1554571020
          Part 2: https://podbay.fm/podcast/350359306/e/1506589205

          1 vote
  10. acdw
    Link
    I've been working off and on on a daybook shell script. Like a diary but written by me.

    I've been working off and on on a daybook shell script. Like a diary but written by me.

    1 vote
  11. ubergeek
    Link
    Working on writing a flask app, that serves as an API to manage a public linux system.

    Working on writing a flask app, that serves as an API to manage a public linux system.