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?
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.
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:
git-filter-branch
, whose own documentation recommends against its useWriting custom git subcommands is pretty straightforward, so I wrote my own
git-redate
. It's a pretty thin wrapper aroundgit-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
.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 toTue Oct 31 00:01:03 -0000
.Once the user writes the updated file from the previous step,
git-redate
addsexec
lines to thegit-rebase-todo
to update any dates changed by the user in the previous step.edit: grammar (missing
past
, and-ly
)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.
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
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
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!