9
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?
I'm still working on my "repeatTest" property-testing framework. No new features, but I managed to unify two algorithms for tree search and delete a lot of code. I'm a lot happier with how it reads and more confident that it's correct.
I put together a little script to help run LLMs over multiple files.
It's all offline. No API keys needed. So far I've used it to suggest names for PDFs with poor names:
This model works well but it is 20GB and takes about 20s per file:
Gemini Nano might be another interesting one to play with
I'm curious what other use-cases people could have with something like this? The only other thing I can think of right now I can only think of text summarization
Not sure if it's within scope but it'd be cool to run Microsoft Florence 2 on a bunch of files, so I can ask questions about a bunch of images.
That should definitely be possible if you can find a llamafile or GGUF version of Florence2...
llamafile is easy to support and likely the most future-proof
You can run a GGUF file with this:
This is the CSV that is generated:
Some images take 20s while others take 100s or more. Not sure why there is such a big difference. The speed also depends on the prompt. You can limit the number of tokens it generates with
--custom-args='-n 20'
(20 words)Currently trying to start up a blog. I’ve owned a domain for about 3-5 years now and never had anything on it, and I figure a blog is a good enough place to start. Especially with the IndieWeb resurgence.
Planning on using 11ty I think, though I’m a bit unsure what the best way to get started with templates is/if there are benefits to using one of the templating languages. (I followed a basic tutorial that just uses the .11ty.js for generating the html).
I know the question was about programming/technical projects but what is your main goal with this?
Do you want to start a blog or do you want to use the blog as an excuse (maybe not the right word) to learn a specific technology? I have done both in the past and they are both interesting experiences but if this is your first time it's important to focus on just one of them if you want to achieve anything.
If the main focus is starting a blog and creating content I suggest you use something that doesn't get in the way of your writing and posting, otherwise you end up spending a lot of time learning commands, reading docs and tweaking parameters until you eventually notice that you haven't been writing at all. If your goal is to learn those commands, docs, utilities, markup languages, etc then it's fine to choose a more "attention-demanding" blogging technology.
In my opinion the best way to start a blog is to choose a platform/technology that lets you do just two things: write and publish, and that does them in the simplest and least obtrusive way possible (if publishing is anything more complex than the push of a button it's probably too much and not worth it). With practice and experience you can also eventually turn those more attention-demanding technologies into something that is as simple as the push of a button but I suggest leaving that for later unless you already have experience maintaining a blog and creating content.
Definitely agree with you about choosing something similar if my goal is to actually simply blog.
But my “goal” is really the tinkering around with the website part more than the blogging part. So you’re right on about the blog being more of an excuse to tinker around with the technology. (I work in software, but currently doing more back-end work at my job, but I like front-end more. I’m not really doing this for job-experience either, just doing it before the tinkering is fun).
I suggest you write your first post first. Then publish it by converting it with Pandoc from markdown to HTML with a plain index page linking to it. Then write your second post. Then implement a blog system. Also, your first posts shouldn't be about your blog.
Its been a while since I posted, but I've spent a bit of time working on some terrain generation code, which has turned into a Minecraft mod that I'm tinkering with.
It's almost good to use, but a few remaining things like handing certain generation edge cases need to be dealt with, and adding a little UI data while the terrain is generating.
So help me God I will understand azure functions for F#
Haven't been doing much coding lately, but I recently decided that I should make a plugin to auto-repay large loans in OpenRCT2, since I like watching big numbers go down.
So I did just that.
The code is mostly quick and awful, but it does what I need it to. I'm happy enough with the result, especially considering that I haven't done Typescript stuff in forever.
Wrote a post about a small thing in MediaWiki software that people mess up all the time because no one knows how it works (but it's actually pretty powerful and very nicely designed)
Long story short, I'm writing a program for Linux that will let you script any input device with lua.
Long story long, you pass one or more devices evdev devices to the program. The program grabs the devices, and it will forward all events along with the device info for each event to a callback you implement in the lua config. It creates a virtual keyboard, mouse, and gamepad (I will perhaps explore other devices in the future and/or the ability for users to define custom virtual devices from their config) and from the lua script you can send events to these virtual devices which other applications will recieve the same as they would a physical device. So at the simplest, you can use it to remap devices such as remapping a gamepad to keyboard inputs for example, or you could use it to do things like consolidate multiple physical devices into a single virtual device. The ceiling for what you could do is limited only by your imagination (and willingness to actually implement it), layers, modes, context-sensitive inputs (e.g. "if you input X with your browser focused, perform action Y"), and whatever else you might want.
The initial idea was just for remapping gamepads with more complex features because I get frustrated by the limitations of even the more advanced systems for remapping like Steam's input system. Then I realized that all input devices go through the same kernel interface (there's even an evdev device for my power button so I may use that as a silly demo when I publish the project) so supporting other devices was not only easy but completely effortless.
Multiple devices at a time was just a random idea I had while working on it and I was initially not going to do it but I realized it would be make the program potentially much better as an accessibility tool, although I'm sure the overlap between "benefits from additional accessibility tools for games and such" and "wants to program their input device behavior with lua scripts" is probably pretty small, but I still hope it can be useful for people in that regard.
I was thinking that I need a way to quickly build spotify playlists. I asked chatGPT 4.x for some help.
tracks.txt
-- the first line is the name of the playlist and the rest isartist - title
So that all works like a charm. I can do about 75 - 100 tracks without any issue. For the tracks themselves, I'm also asking chatGPT
In this case it spits out the bands I referenced, so I ask it to branch out. The selection is pretty great.
It isn't perfect with apostrophes all the time, but for the most part its great.
Here's an sample list
* Martin Denny - Quiet Village * Les Baxter - Jungle Flower * Khruangbin - Maria También * Monster Rally - Orchids * Aaron Frazer - Bad News * Lee Fields & The Expressions - It Rains Love * Durand Jones & The Indications - Don't You Know * Yma Sumac - Gopher Mambo * Esquivel - Mini Skirt * Les Baxter - The Enchanted Sea * Dorothy Ashby - Soul Vibrations * The Five Corners Quintet - Trading Eights * Les Baxter - Atlantis * Cal Tjader - Soul Sauce * Astrud Gilberto - The Girl from Ipanema * Sergio Mendes & Brasil '66 - Mas Que Nada * Walter Wanderley - Summer Samba (So Nice) * Antonio Carlos Jobim - Wave * Stan Getz & João Gilberto - Corcovado (Quiet Nights of Quiet Stars) * Martin Denny - Aku Aku * Les Baxter - Quiet Village Bossa Nova * Thievery Corporation - Lebanese Blonde * Bebel Gilberto - Aganju * Jazzanova - Bohemian Sunset * Bonobo - Days to Come (feat. Bajka) * Khruangbin - Evan Finds the Third Room * Monster Rally - Pelicans * St. Germain - Rose Rouge * Bonobo - Kiara * Koop - Summer Sun * Aaron Frazer - If I Got It (Your Love Brought It) * Quantic - Cumbia Sobre el Mar * Les Baxter - The Poor People of Paris * Gotan Project - Santa Maria (Del Buen Ayre) * Thievery Corporation - The Richest Man in Babylon * Khruangbin - Two Fish and an Elephant * Caravan Palace - Lone Digger * Parov Stelar - Catgroove * Tape Five - A Cool Cat in Town (feat. Brenda Boykin) * Caro Emerald - Back It Up * Martin Denny - Firecracker * Les Baxter - Rio * Delvon Lamarr Organ Trio - Close But No Cigar * The Haggis Horns - Hot Damn! * The Bamboos - On the Sly * Orgone - I Sold My Heart to the Junkman * The New Mastersounds - Miracles * Durand Jones & The Indications - Long Way Home * Lee Fields & The Expressions - You're What's Needed in My Life * Sharon Jones & The Dap-Kings - 100 Days, 100 NightsThe script!
Ultimately, I found over the last year or so that Spotify's recommendations are a bit of an echo chamber and I've been trying to pump new music into the algo... with little success. This has a lot of the stuff I already listen to, but I think attacking it via genre instead of specific artists will yield fresh music.
To quickly clear
tracks.txt
I usehead -n 1 tracks.txt > temp.txt && mv temp.txt tracks.txt