So, the biggest potential cost saving solution seems to be the porting of the codebase so we can run on open platforms.This also aligns with Voat's pre freedom principals, and makes us more enticing to funding from similarly aligned groups like the free software foundation, potentially. While the git repo for voat is considerably outdated, there's little harm in poking around and familiarizing ourselves with the codebase. Other than donating and reaching out to potential donors, it seems logical that the best thing the community can do for the site right now is put our skills to work. I'm not the best programmer, I'm not a project leader, and I'm not someone with a ton of web development experience. What I CAN do is grunt work. I'm sure there's a number of users on the site in similar shoes that can cobble together a new stack for voat, even if it ends up needing a bit of outside help towards the end But we need someone to manage us. There have been a couple of comments pushing for such a community effort, but no where that has been explicitly marked as dedicated towards it. For initial planning purposes, I'm setting up this thread to accomplish that. Anyone interested, please post a list of technologies you are familiar with, level of experience, how much time you estimate you can put towards this project, and anything else you think might be relevant. I've also pinged a number of people who I know to be developers active on voat, or who showed interest in this in other places.
We especially need project leads, both someone willing to manage this clusterfuck, and people willing to lead particular subgroups when it comes time to figuring out who will actually work on what.
We need an organizational and code management structure. I suggest Git for code and trello for goals, with a slack channel for communication
We need people to verify code submisisons, both to look for potentially malicious code, but also to submit code to a second round of unit tests, and quash as many bugs as possible BEFORE we get too far past a particular area of the site's infrastructure, as well as ensure that everything is running as efficiently as we can make it. No use redoing the stack if it takes WAY more power to host the damn thing.
We need people who have the hardware and the knowhow to TEST our stack, once its in an alpha state, because unit tests aren't enough on their own
and finally we need people who can tap away at their keyboards, and produce functional code.
Fuck, there's probably a few roles i'm missing, but point is, Putt is doing ALL of this right now. He isn't going to work on porting when he's trying to keep us running, but the longer we wait, the harder this will be. So lets get started.
We also need to develop coding practices and standards. I think all of us can agree reading someone else's code that's inconsistently formatted and lightly commented is hell. We want to make any code we write as auditable as possible, for each other's sake, and the sake of the site's future if this project gets anywhere.
@VoatSearch @roznak @AnmanIndustries @JunOS @Ywis @ohnoitsaninja @Professor_de_la_Paz @1moar @TeranNotTerran @ShowMeYourKitties @bikergang_accountant @Caesarkid1 @derram
view the rest of the comments →
bikergang_accountant ago
Can I plug https://gitgud.io. It's run by the same guy that does catbox.
I'm going to try running the site on dotnet core and see what hangups come first.
We could go completely away from c#. This is how they get you on the db. You end up with two layers dependent on their environment and you can't simply write a replacement in one step.
I am shockingly ok with sticking with c#. I don't know it but I know you can't ask your main contributers to code in a language they don't know intuitively. I think core is the way to go even thought I could contribute the most on node.
Donbuster ago
Duly noted.
if you are up for it, would you join our slack team for more expedient communication?
https://voatrewrite.slack.com/shared_invite/MTg0Mjg2MzQzNTg0LTE0OTUwNzc4NjMtZDcwZmNiODU5Yg
bikergang_accountant ago
I'd really love to see a profile of the sql calls and their total execution time by template. Caching db is my jam.
@PuttItOut
For example this will produce a partner database with the same name +'.meta'. It stores data about the calls with a schema like this:
CREATE TABLE stat (template text,time int,calls int,past int, sig float);
time is total execution time.
calls is total calls.
past is how many times a different call shared execution time due to asynchronous.
sig is the standard deviation of the execution time (actually varience).
If we had data like that it's easy to identify one call to cache and that particular call speeds up 100x. I can even get past writes "invalidating the cache". I don't invalidate the cache. I write to the cached object and use a write to db when the key expires. Your most active data just lives in memory with no ipc or networking involved.
But the key is you need that profile information first. Your profiler needs write caching though so you aren't writing to a table for every read.