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

6 comments

  1. UP8
    Link
    YOShInOn RSS Reader: Did what I planned to do last week. Every few days I generate a new "judgement group" which selects 300 articles for me to judge out of maybe 6000. I added something that...

    YOShInOn RSS Reader: Did what I planned to do last week. Every few days I generate a new "judgement group" which selects 300 articles for me to judge out of maybe 6000. I added something that shows how many articles in the group came from each feed (now 104) and lets me see the articles in each feed in order of what it thinks I will like. (Until now my main interface was like TikTok but I had secondary screens that showed what it thought would be upvoted and commented on at Hacker News)

    Until recently it divided articles into 20 clusters and showed me the top 15 articles from each cluster so that I'd see a diverse set of articles (it ingests all news from The Guardian, all papers from MDPI Journals, Metafilter, the CS section of arXiv, newspapers from my town, ...) In this regime I was favoriting about 230 out of 300 articles which was really high and I felt it wouldn't hurt to mix in about 10% randomly sampled articles to improve the training data, so I did that.

    I also tried adding something that would let me see what was in the clusters, but my implementation of the above change caused cluster assignments to be screwed up for articles that it didn't pick for me, something I think I fixed yesterday but I'll find out when I run the judgement group which should be tonight.

    I expect to demo the system for a friendly audience on Friday and I expect to have the clusters ready to show.

    Longer-term I am thinking about "what am I doing this for?" and right now it is picking out links to post to HN and Mastodon. With HN I can select links faster than I can post them so I want to improve quality but I am stuck with the Zen and the Art of Motorcycle Maintenance question of "What is quality?" and knowing it sure isn't the same as engagement. With Mastodon my perception is that there is a silent majority that is not calling everybody a "fascist" and that those people are often avoiding news and other "bummers" which has me thinking about either eliminating emotionally negative stuff altogether and sticking to my flower photos which get better engagement than anything else I post

    https://mastodon.social/@UP8/111061017008323474

    or developing a sentiment model that lets me aim for an emotional tone that never gets too negative on the average. I was despairing at developing a model to block "angry toots" because I think it would kill me to collect 5000 angry toots to train it, but I think rating my own posts would be emotionally easy but maybe I'm too close to do it. For that matter I am thinking about using data from Tildes to assign topics like "music" and "sports" to links and also about how to support writing metafilter-style posts for Tildes like

    https://tildes.net/~transport/1blp/state_of_evs_in_fall_2023

    because i think it's better fit for Tildes than posting individual links. (e.g. why pick one link for one NFL game a week when you can post 5 links to interesting things that went down that weekend?)

    Blog: The plan now is to get the thing online with a draft of the first post instead of writing and rewriting the first post. That kind of planning led to a good week for YOShInOn so maybe it will get the blog online.

    Three-sided cards: Don't tell my wife but I broke down and got a Meta Quest 3 and I was immediately blown away. From the early development of the cards I felt they were related to "the metaverse" in that these are cyberphysical objects

    https://mastodon.social/@UP8/111275639588948846

    https://mastodon.social/@UP8/111049822586450100

    and it was obvious to me that something ought to happen if you scan one with a Hololens, Apple Vision or whatever, but I wasn't ready to do any actual development on it. Even though there hasn't been a lot of buzz about the Quest 3 the few reviews I saw really impressed me, and it seems to be that it fully realizes the "mixed reality" vision. It has a pack-in minigame where your room gets invaded with lots of little aliens that you have to catch and put in a drum and you can see another world through holes in your walls and ceiling. I want to sell a museum director some kind of mixed reality experience like that and my first step to that is to show that demo to as many people as I can so I can get good at showing it before I show it to somebody important and see if I can find some enthusiasm for a mixed reality project and get some idea of what it will have to be.

    3 votes
  2. zoroa
    (edited )
    Link
    I've run into a couple situations over the past 1-2 years (annoyingly often over the past few months), where I've wanted to change the date of git commit(s). Windows Subsystem for Linux (WSL) has...

    I've run into a couple situations over the past 1-2 years (annoyingly often over the past few months), where I've wanted to change the date of git commit(s).

    Windows Subsystem for Linux (WSL) has had an issue for nearly 3 years where the clock will go out of sync when a device goes to sleep. It's never really been an issue on my personal desktop, but it's caused me a bunch of hell on my work laptop.

    I'm always on the lookout for useful custom git commands, so https://github.com/PotatoLabs/git-redate has been on my radar for a while. It had an interface I liked (a text file with all the commit dates that you could edit). But:

    • It uses git-filter-branch, whose own documentation recommends against its use
    • It doesn't work anymore, according to the latest issues
    • It's unmaintained.

    Writing custom git subcommands is pretty straightforward, so I wrote my own git-redate. It's a pretty thin wrapper around git-rebase that:

    • Starts the rebase

    • Sets itself as the editor that opens the git-rebase-todo file.

    • Opens up a file for the user to edit, where each row is the commit_sha author_date commit_msg.

      abcdefgh   Mon Oct  30 23:45:47 2023 -0000   chore: Initial Commit
      ijklmnop   Mon Oct  30 23:49:47 2023 -0000   docs: Add README
      

      One enhancement I've made is that you can do rudimentary date arithmetic. i.e Mon Oct 30 00:00:00 2023 -0000 + 1 day 1 minute 3 seconds resolves to Tue Oct 31 00:01:03 -0000.

    • Once the user writes the updated file from the previous step, git-redate adds exec lines to the git-rebase-todo to update any dates changed by the user in the previous step.

    edit: grammar (missing past, and -ly)

    3 votes
  3. [3]
    TumblingTurquoise
    Link
    I did so little that this comment may well be just noise, but here goes. I have some experience doing stuff with Python, bash and some C#. Yesterday I thought to give C++ a try; how hard could it...

    I did so little that this comment may well be just noise, but here goes.

    I have some experience doing stuff with Python, bash and some C#. Yesterday I thought to give C++ a try; how hard could it be? I read it frequently as part of my work after all.

    The base idea I had in mind was to create a X by Y image with random colored pixels. I settled on bitmap as a format, because why not. This would be the first step of a bigger, but not necessarily complex project.

    Well, I got nowhere and I think I might have fried my brain a little. I wouldn't call my attempt anything other than hubris and/or arrogance.

    So, if I want to actually work on this idea, I have to go to the basics of this language and its data structures. Or do it in Python.

    2 votes
    1. [2]
      saturnV
      Link Parent
      Were you using a library like png++ or ImageMagick? (For C there is also stb libs,which are compatible with c++) Writing your own is a pain and not worth it unless for education purposes. With a...

      Were you using a library like png++ or ImageMagick? (For C there is also stb libs,which are compatible with c++) Writing your own is a pain and not worth it unless for education purposes. With a library, the task should be fairly trivial. The worst thing (imo) about c++ is the lack of a good package manager

      3 votes
      1. bitwyze
        Link Parent
        Conan is starting to become more popular as a package manager, but it's definitely not widely known at this point. EDIT: and png++ is on ConanCenter!...

        Conan is starting to become more popular as a package manager, but it's definitely not widely known at this point.

        EDIT: and png++ is on ConanCenter! https://conan.io/center/recipes/pngpp?version=0.2.10

  4. just10
    Link
    I've been building my own self driving RC car: Instagram link The code is written in C++ and does real-time SLAM, path planning and navigation!

    I've been building my own self driving RC car: Instagram link

    The code is written in C++ and does real-time SLAM, path planning and navigation!

    2 votes