Post your coding projects

oh yeah

did some minor bugfixes and stuff on md5rcmp

apparently is pretty fast, can do the test load on my media server(some 36k files or so) in the compare snaps mode, so… verifies the first snap(by comparing the files together that they all still match, could probably skip this and just do hash of the file itself), then the second snap, then the 2 snaps to eachother
in less than a second on the athlon 200ge using 1 thread, takes forever to make the snap of course since scrubbing entire drive(like 1tb of data currently)

I think I actually broke something, so now I’m using an nRF51822 bluetooth dev board thingy (based on an arm cortex m0 I think). Starting to get the hang of linker scripts and unsafe volatile register access in Rust :stuck_out_tongue:

Over the past week, I threw this together.

If anyone is actively looking for something on craigslist, I would appreciate any input on usage of it.

I’m still thinking of a better way to manage the telegram bot id, without adding it to the management page. Also, notifications use telegram… I’ll be adding email eventually, but it was easier to just use telegram to have something now.

2 Likes

couple minor changes mcli(forgot a couple minor things forever ago lol)

added a ‘-s’ ‘-start’ option for mserv(so that you can override it starting from the shutdown state into low power/wait state, into the running state)

added a pair of big options for the list creation,
namely a programmed mode
and an option to duplicate sublists(so that they appear multiple times in the list) mainly for the programmed mode

tldr: you can set a specific/exact order to be played and it will just repeat all shorter sublists until the longest one is completed(still works with multiplier for the longest list), with specific consideration for programmed mode that it considers all of the duplicates to be the same list as far as incrementing the sub list, so that they play sequentially,

had to do bunch of stuff for the other options to make it work with the dupe function, so that you can address them individually for changing the placement in the list(with move), multiplier, removing the list it removes all the duplicates etc

found a minor bug
had to move decreasing a integer into an already existing if/then, for the 1000 indexing thing, where the first file only has 999(1-999) and the following have 1000(1000-1999 etc) where it wasnt reading the last line of the file after the first one, in the case of input lists over 999
so just had to move it down one line basically

need to reaudit whole shebang tho still(specifically testing weird/obtuse scenarios looking for such occurrences of minor issues that havent been noticed thus far)

1 Like

Project to view photos from panoramic 360 cameras in VR headsets that also fakes 6-degrees-of-freedom and has non-destructive photo orientation correction

2 Likes

That’s pretty awesome!

Github link?

1 Like

Sorry, I don’t use github (nobody would be able to read my code anyway)… and I sell software.

2 Likes

That’s fair.

1 Like

added

a function to mcli to (pseudo)randomize the sublist order of the currently opened list

also forgot a debugging printf’s from the programmed mode, so removed them

updated the help text(to add rand), had to add a second comparator to an if statement that i added for the dupe function to prevent trying to open a non existing file

2 Likes

gonna run through the help texts and stuff again

but did add most of the stuff for the new functions already,

tuned/corrected a thing with using the single/numbered play when you interrupted the command with a new one, so now it reverts back to list before that command if you issue a halt or a stop, if you issue to play something new it just does that command

3 Likes

just couple more bugfixes mostly, and changed one of the setups for error messages(in some cases it would print one which was also correct but more information then required/not the correct one, like given filename doesnt exist, but also in couple cases arguments didnt match anyways, instead of saying incorrect arguments, would say the file thing first)

and gonna look at some of the text output to make it a bit more uniform with some of the newer stuff

had some downtime on a long gig past couple days so wrote a simple timecode clock and tap tempo bpm counter. Did them both in pythonista app

Code not on github yet, will try to compile in Xcode when I get some time to

havent done much lately with the projects, although probably gonna do a new mode for the md5rcmp thing, probabaly as a -v where it compares files individually instead of for verifying exact backups, more to verify if any files at all match, and report files which dont have any match

which will take alot more compute work to do the substantially increased amount of comparisons, but thats why its not the normal mode/will announce it will take longer etc

not sure how long it will take would have to implement a timer function with pretty high resolution but dont think it would give that accurate of a estimation given how fast it is currently(less than 1 second to verify 2 snaps, and then compare those snaps) as it may be fast enough that cpu turbos etc stuff would effect it a fair amount, where the longer one wont be affected nearly as much by percentage

but think it could be okay since is mostly for emergency use/when you think there may be an issue after a large dataset change to try and verify as much as possible, so if it took say 5000x longer with my current dataset it would only be like ~84minutes assuming it takes a whole second(when i know its less than 1 currently)

I’m not a programmer so this is some basic stuff but i made a GUI, using qt creator, to work with MAME so i can quickly launch various consoles games through MAME.

You can find it here:

And a video of how it works:

I’ve posted about this a couple times but I figure I might as well drop this here too.

MDS is a Homelab-inspired container init framework written purely in bash. Assuming you have the correct DNS records, you can just type

git clone https://github.com/reavessm/MDS.git
cd MDS
make init

and the scripts will walk you through searching, modifying, and installing as many docker containers as you want. Then it will automatically configure an SSL-encrypted reverse-proxy in front in a matter of seconds. You can even use docker-compose and proxy to external VMs as well.

The secret in the sauce here is the main config file has sane global defaults, but each service has it’s own config file to fine tune everything. This allows you to overwrite variables or entire functions if you need to. The per-service config file also comes with helpful comments to empower users to tweak common settings. It’s bash, do what you want.

I’m also working on extending this to work with VMs as well. It will essentially keep a list of .iso locations. Then it will pull the image and run the appropriate virt-install commands and spin up a vm in no time.

I’m currently using this for my homelab and have the following services installed through MDS with relatively little trouble:

  • Keycloak
  • Nextcloud
  • Gitlab
  • DokuWiki
  • Jellyfin
  • Ombi
  • Transmission+openvpn
  • Lidarr
  • Radarr
  • Sonarr
  • Home-assistant
  • probably others that I’m missing
2 Likes

Nice update to the README :wink:

1 Like

Becuase Kubernetes is hard…

Truer words have never been spoken.

1 Like

I don’t know if it’s really that hard, since I’ve never REALLY looked into it. Just reading what it’s supposed to do, it’s unnecessary overkill for most projects out there. And you need to engineer your programs from the ground up to get any benefit from it. Being horizontally scalable does not come from nothing. There is a lot of state management effort that goes into that.

Essentially, if you can only run one instance of your program (or it breaks) I don’t get what kube is supposed to do for you. But I’m happy to be enlightened. :slight_smile:

More that it’s stupid abstraction.

If you don’t need it. Most definitely yes.

But it can do things like scale up instances of services that are used a lot at this current point of time. And then destroy them again when not needed. So if you’re big netflix or something. Then yeah … seems great!

But most people aren’t building high availability, resilient, scale into infinity type of services for the globe.
Once you start thinking “this thing needs to work for the country 24/7” then you can start thinking about kubernetes.

That’s my opinion about it anyways.


What I found pretty mind boggeling is that netflix is actually killing their own services in production with something they call ChaosMonkey all the time. That’s why I brought up that specifically. Resilience testing of sorts. Netflix must live if things go south. If you have failure all the time, you can make sure it never dies. Theoretically.

1 Like