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?
I've been working on Surprise Date Spot, which uses crowdsourced data from OpenStreetMap to help reduce decision fatigue when picking a night out.
I built this because it can be tiring trying to pick a restaurant, so this website will randomly pick one in your area.
It's still a work in progress, but I'm hoping to make some kind of "co-op" mode where you can pair with other people to pick a restaurant together by "swiping" on the restaurants you like, and the website will show your matches. I'm also working on expanding the types of date spots that get shown, right now it's just restaurants. I want to show a much bigger range of places like bowling alleys, music venues, parks, cafes, and coffee shops!
Interesting concept. Would be nice to be able to set a price range and also a location radius. It only showed me restaurants very nearby (~0.5 km). The randomizer surprised me with a place that's 100/euro per person which isn't in my typical price range for a date night.
You should be able to change the location radius under the settings (gear icon).
Unfortunately pricing info isn't available from OpenStreetMap, but that would be a useful feature!
I didn't even process the gear icon the first time I looked at the page. Maybe it could be open by default, at least for the first search? That or name it filters or something?
Nice concept, surprised to find it even works in the Netherlands! Although it has some trouble with chains and fast foodstuff, but still some nice results.
Can I ask where you are pulling the restaurant data from? Edit: nevermind, missed that you use openstreetmap, so I suppose I could correct some things even if I wanted to.
Not a particularly high tech endeavor, but I made a media player for my toddler.
I wanted her to have some autonomy over running the television during her allowed time, but I didn't want to give her a device with internet access to stumble on whatever.
My solution was a NFC reader on a raspberry pi. I got a bunch of little NFC chips for like a nickel a piece, used the library to print off stickers for her shows, and made a configuration that reached out to the relevant media source.
I made tokens for some movies that she likes, which reach out to a file on a network drive. I made some tokens for PBS shows that reach out to the PBS Kids API to fetch a current episode. I made some tokens for old PBS shows that do a random directory walk on a network directory to pick an episode.
All of this allows her to watch shows that she likes without needing to ask for assistance from parents. I feel like it would be very analogous to a VCR player from when I was a kid.
Here are the tokens, I think they came out well
I love that idea! Having put an amount of thought, recently, into the pros and cons of collecting physical media, as opposed to purely digital, it seems that this could be a fun idea to retain an amount of functionality for Blu-Ray boxes which you have in both physical and digital. NFC chips linking to items on media on a Plex / Jellyfin instance could be quite simple to set up, and quite fun to use :)
This is very similar to this project: https://github.com/maddox/magic-cards
Perhaps that can help, or maybe that's what you are using?
It also integrates into home assistant pretty well for control over other things.
That does seem like a very similar idea, though the scope is much too high for what I want to do with it. This project isn't going to have any bigger plans, it just needs to do one simple thing well.
I'm still a humble newb in the software world, but I just finished my toughest project yet in the C++ Intro to Programming class I'm taking. It was to code a dice poker game, where the user "rolls" five 6-sided dice, and receives a number of points based on the probability of getting certain "hands" (pairs, three of a kind, full house, straight, et cetera).
It took me three sit-down-and-think sessions, but I came away with a solution I really liked. Later I googled and found, of course, that it's a standard problem in coding classes. But to my surprise most of the solutions I found were (imo) pretty inelegant compared to mine. Where most used lots of branching if statements and arrays, mine used concise loops and wherever possible stored info as vectors. I'm excited to see what feedback my prof gives.
It's fun being a student again when I can actually find time to do the work. This week I was basically catching up on four weeks of material I fell behind on due to my own teaching load/ caring for my son/ generally burning out.
Medicine in Russia is barely regulated. Doctors often use outdated Soviet practices and prescribe homeopathy and other unproven treatments.
Checking every single drug myself is annoying, so I built a tool to automate the job.
med?
is a website built with Elixir + Phoenix LiveView that allows you to enter a trade name of a drug, after which it fetches available research about it and summarizes it with Claude. You can see more information about how it works in the readme.I really enjoyed working on this, because this is my first experience with Elixir and LiveView, and also because the task itself is pretty fun and requires to work with different data sources.
This week on repeatTest, I tried generating TypeScript API documentation instead of parsing it, and found some stuff to fix. For example, generating random strings (which are basically noise) is useful for fuzzing software, but as JavaScript identifiers, they're pretty hard to read. Also, when a schema is recursive, it matters how often you recurse when picking cases randomly.
Here's how the schema looks now., with parameters to customize it for generation instead of parsing.
One more feature, and maybe I'll do a release. (I know, I keep saying that.)
My quest to assemble a 48TB RAID 5 array was briefly sidetracked when the system I was building the array on developed an un-ignorable amount of instability, and after checking components one by one, I've come to the conclusion that disabling XMP is enough to fix the problem. I'm not satisfied with this as a solution- the RAM is perfectly fine. I've tested two sets of 3600MHz DDR4 ram and the issue occurs with both. The system has run perfectly well with XMP enabled for three or more years, and I've made no egregious changes to it that might justify such a change in behaviour. We have had a dodgy breaker flip a couple of times recently, as well as a rack-mount audio interface biting the dust in an attention-grabbing way. It's possible something in the power circuitry has expired and the RAM isn't being supplied with enough voltage to run overclocked, or maybe the IMC in the Ryzen chip has degraded to the point at which it can't keep up. Whatever it is, I've not the patience to diagnose it further, and I've got a few days of array building to do. When that's done I can get back to collecting Linux ISOs!
We're looking at purchasing a recent Samsung display, and setting up a nice media watching space in what little room we have. It'd be nice to have friends over to watch things on a big screen, with nice audio. The only problem is that the Samsung devices don't appear to support Dolby Vision- a licensing dispute (if you call an unwillingness to pay as a dispute!). I'm going to be looking into a workflow to remux Dolby Vision content into the moderately more open and friendly HDR10+ standard. The tools are out there- and I'm sure MakeMKV isn't the only viable solution. A new and shiny TV seems like a good excuse to start collecting in a higher quality, and I don't mind ripping physical media myself :)
I've been working on a terminal based log viewer for kubernetes: https://github.com/robinovitch61/kl
It's been super fun and is feeling more polished and finished, although I have a lot more I want to do with it. I use it daily in my work which is satisfying.
Neat! I have been using k9s for some light kubernetes related debugging lately but found the logging related tools a bit meh. In theory I can also find all related logging somewhere in Kibana, but that is a pain in itself for various reasons.
I am going to give this a go!
Edit: Works like a charm with a gcloud hosted kubernetes environment!
Trying to learn a bit of Elixir and getting properly into test automation via TDD-ish. I'm building an rss reader to have a concrete goal. The actual goal here is twofold. First, to become better at working with concurrency and learning the OTP "framework", and second to see if I can finally make unit testing work well. Tbh unit testing never clicked for me, I always end up making compromises that make the architecture way worse for the sake of testability. I'm hoping that this time I'll be able to get it right.
I've been a bit distracted from working on tilegroxy lately. But main thing I'm working on adding currently is support for automatically reloading the configuration upon change. Thanks to viper/fsnotify the building blocks are there and I made the thing with the expectation of eventually adding this so it wasn't hugely hard. The most annoying thing was getting the change transmitted down from the top-level "command"/config code down to the request Handler. Currently I'm doing that with pointers to functions, which is pretty ugly. Internally debating whether refactoring it to use channels will really improve much.
I also have my exam to get the CKAD cert coming up. Which means I'll need to get Ubuntu installed and usable in the next few days -- ironic the Linux Foundation has such limited linux support for their tests.
Managed to fix the nix package for rider in unstable and made a PR that just got merged into master! So hopefully soon the rider package will work without the workaround of overriding the default post install script. Need to figure out how to test these things if I'm to make more patches.
Working on a personal site/blog. Using the Trakt API to populate a page of viewing statistics. Theme is heavily inspired by Star Trek LCARS. Still some work to do before taking it live. I like how it's turning out. I work in testing, so not a ton of experience with app development and keeping things running. Should be a fun project for learning.