28
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 dug out an old coding project that fell over due to some serious (but non-obvious) design flaws and am making another go of it -- free-thinking NPCs for open-world adventure games.
Everyone's all "oooh! ahhh!" over today's large language models, but those are just statistical next-word finders, require a ton of GPU power, and are frozen in whatever structure their training resulted in. They don't think. They can't reason. And they're wholly unsuited for NPC behavior at scale (think 1000+ NPCs running in realtime).
I'm salvaging what code actually worked and updating it with my current skillz, and planning out new routes of design for the areas that ultimately failed and collapsed. Currently have full-on fuzzy logic and bitwise clustering done, and am now updating the generic energy minimization system that will be used for NPC goal-reaching planning behavior.
After that, I get to the actual wonky stuff, the part of the system that represents an NPCs understanding of world state and their beliefs about it. Made some serious mistakes in the design so now I have to figure out how to fix that.
I have always wanted to do something similar. Where do you even start on this? I'm curious what's your high level architecture for this "brain" for NPCs?
Not OP but I have done a lot of this sort of thing, and Prolog was my foundation. It’s great for representing these kinds of bits of local knowledge and reasoning.
I have been off work for a 5-week dad-leave and I keep finding myself thinking about the priorities of things to work on when I go back to the office next week. We had our Devops practitioner (technologist? I don't know. Just can't call them an Engineer because they are not) leave the company so I'll need to step in an take that over. The big thing I want to do is severely reduce the Container Image size of our Magento instances to well below its current 4GB footprint. We're using ECS in Fargate on AWS and I want to reduce the amount of time it takes to scale these instances when we autoscale.
Personally, I have been looking at building a very small, useful app, to allow Theatres and Music venues self-host ticket sales and verification. This is just in the planning phase right now.
Shrinking Docker images is a fun puzzle. I tried doing it with an open source image. Here are some things I learnt:
First look at what you actually need and what is excess. You might save a lot of bloat by switching to Alpine but maybe just switching to a lean debian image is enough. I made the mistake of thinking the problem was Debian when it was actually the way FFMPEG was installed (I only needed a small part of FFMPEG but was installing all of it). Reducing the amount of layers with && \ might also help.
Thanks for the tips! I have had some success on my own with the slim Debian container base images so I'm eager to try those again. We're currently using Amazon Linux 2 and installing a lot of things I don't think we need to run a Magento 2 installation (like SSHD for example).
Hopefully I can get the container + code total size a lot smaller so we can scale out faster.
Part of me is thinking because I need to run
php-fpm
+nginx
on the single container (usingsupervisord
) it may be worth re-visiting just using well tuned virtual machines.Technician? Short form: Tech
Yeah I'll go with Tech. Thank you!
Been working on two papers which I hope to have posted in arXiv within the next few days:
Magnetization in the early universe
Neutrino CP violation
Since they're scientific publications, I'm "writing" in a mixture of LaTeX, Python and Mathematica and everything is versioned on git, so it feels like a software project haha. Normally I wouldn't be doing both at once, but I've been slowly finishing up the first for a while now while the second is something I had basically done last year and then dropped for one reason or another. We decided to pick it back up and push it out the door.
I've got several personal projects in the works. One is a personal bookmarking service, because next to writing your own CMS, this has to be one of the most common projects. The second is a service for my family where we can capture things we've heard about from family and friends that we might want to check out. The final one is an ecommerce site for my wife's business. All of them are written using NextJS 13. I don't think NextJS is particularly popular on here, but I've had the most fun ever building stuff with it.
Your #2 is basically solved by using a shared note from Google keep or shared page/notebook from OneNote. 😜
E commerce store however can be a great project. Especially if you want to make it look unique and not like every other site made with shopify.
We've tried OneNote, Apple Notes, etc. It may just be impossible for us, but I'm building it because I thought it would be fun.
I moved into my first home recently, so my first order of business was getting my proxmox server running on my new network. I switched ISPs so I have a totally new router and local IP addresses so still a bit of a headache getting used to them. I had all the old ones memorized.
What was the real pain was the host node being unable to talk to the internet. Culprit was DNS of course, so once I updated nameservers in some /etc/ files and created a DHCP reservation everything started working again. Home server stuff is all new to me so I think of it as one big learning experience.
Next is debating whether or not to go full on home automation and get smart bulbs/outlets but I've always had reservations. Probably need to learn my new router a bit more first, it has way more functions than the Comcast router I had for five years.
Home Automation can be a slippery slope. I personally love it but you'll start analyzing everything in your home for "hmm I could create an automation off this sensor data".
'Home Assistant' has worked great for me. I try to keep a "dumb" route available whenever possible. Easier for visitors. Also favoring "local" integrations is a must.
Good luck!
Oh I bet. Learning Linux in general has been the slipperiest of slopes. I just don't want to have to spend money on smart bulbs and smart outlets at the moment. But I know eventually I'll want to get my thermostat in on the mix, which I know will send me down the rabbit hole.
I've been trying to learn Inform 7 to make a Zork-like adventure game. I loved all of those Infocomm games as a kid, so this is totally a dream come true. The challenge has been trying to follow the structure. It's very much write-like-text-not-code and that makes it tough for a guy who does C/C++ all the time. Still, it's a fun challenge and something to do when I can't sleep.
I am currently learning a bit of web development! I have a personal site I just spun up on a raspberry pi. It's fun but it has gone on the back burner. Most of my time has been spent remaking my Linux User Groups website. I've been taking a very web 1.0 approach to my personal site and have been trying my hand at bootstrap for the LUG site. It's cool using php to add on the header and footers on for me. I cant wait to roll it out. It's going to actually work on mobile and look better than the old site.
I just got signed up for my first infosec conference (and my first overall conference since the pandemic started).
I'm getting my old Pixel 6 Pro setup with GrapheneOS and a 10 year old Lenovo Ultrabook going with Arch as my YOLO devices.
The technical part? Whole disk encryption with 2FA/yubikey decrypt. It's a bit annoying so far, but luckily I have until mid-October to figure it out.
I have been working on creating my first browser extension. It's essentially an open source and free alternative to text expanders like Text Blaze. Or it will be in the future at least. I had the idea quite a while ago but did not understand how I could implement it. Suddenly, two days ago, it clicked that it's all just JavaScript and I have been working on it though the evenings. A MVP is already working in Firefox and I will make it work with Chrome tonight.
I keep thinking of ways to improve, so I'm still in the honeymoon phase.
Running Linux (postmarketOS) on an old Huawei phone, it's not perfect, in certain situations the screen doesn't initialize, and the interface sometimes crashes, but i got wifi working!
sorry for the late reply, but for your specific model i couldn't find anything, this is the closest thing i got, but it's for the P10 Lite: https://forum.xda-developers.com/t/rom-10-lineageos-17-1-for-huawei-p10-lite.4064115/ . But if you want to unlock it you can try the PotatoNV method: https://github.com/mashed-potatoes/PotatoNV , i used it on my Huawei P9 Lite (VNS-L31) (the one running pmOS) and it worked. It involves opening up the phone (could be a bit of a pain) and shorting out a pin to ground while connecting it to usb (i reccomend having a friend help plugging in the usb while shorting the pins)
Huawei no longer gives out bootloader unlocking codes so unless you're fine with bruteforcing or paying a shady service and giving them god knows what I don't think it's exactly possible. Though the best place to check for yourself would be XDA-developers. Someone might've found an exploit for it.
someone already did!, the P10 is supported by PotatoNV: https://github.com/mashed-potatoes/PotatoNV
I have spend the last few weeks setting up three HA K8s clusters on bare metal.
Slowly getting the hang of it's inner workings and having fun working on it.
Vm to OpenShift, dockerizing apps, tarraform with taragrunt. So much dev work with not being a dev lol
Messing around with Llama2 to become the high performance unfiltered assistant I have always dreamed of.
Trying to finally set up my gentoo development environment to fix packages for the library (
cadquery
) I want to use to write a script that will generate a model for a 3d-printable mount for a door that will prevent my cats from hiding under the bed.(edit: I can't proofread before posting...)
I'm still working on my memory parsing bot for a game. Its fully functional but I'm just working on some extra features. Not much headway was made recently (I have a 1 year old who's the priority).
Funnily enough, at work we have a client who wants to handle some automation when a specific application they use is in a particular state. This application has no API or method of getting this state information out so the personal project is likely going to be adapted for work. It will likely be a service running on one of their servers that reads this state and reports it back to our services.
I love when things line up like this.
As a sneaky plug, if anyone knows of any good writes up on identifying structures or their signatures in raw memory I would be very keen to read them! I would like to try speed up and automate some of the pointer path finding so when the game updates I don't need to manually rebuild all the pointer paths as there is a lot of them.