/tech/ - Tech

Technology.

catalog
Mode: Reply
Name
E-mail
Subject
Message

Max message length: 8192

Files

Max file size: 20.00 MB

Max files: 3

Password

(used to delete files and postings)

Misc

Remember to follow the rules


(136.45 KB 2500x1250 what-is-a-groyper-1.png)
gochan Comrade 05/31/2020 (Sun) 19:58:53 No. 1948
How close is GOCHAN to being done? we need to replace this shit lynxchan software soon. there's also 'jschan' https://zchan.cc/index.html
im getting 500 errors every other click. we need to upgrade bunkerchan performance
>>1948 OP you should find out and update this thread. You can go ask on the riot channel, or go on github and take a look there. Also if there are any blocking issues then if you document them here I'm sure that will speed things up.
>>1950 the jannies of this site are literally the devs so id hope they could weigh in
(80.30 KB 889x500 1503544997_1486461000472.jpg)
I will just copy paste what i wrote in another thread Currently the rough roadmap to minimum feature completeness is this: >1. Refactor the entire database design to be magnitudes better than before, follow relational database standards in terms of normalision, and support planned future features. Implement sql queries to glue all the old functionality to the new database design and redesign that code to follow good code practices. Unify the 3 seperate sql build scripts into one master file. That is basically done >2. Write a migration script to port old gochan databases to the new format. Implement a versioning system for future database revisions that will work in a similar fashion to entity framework migrations (but manually written). Test the whole thing thoroughly. This is where we are right now. After that >3. Create a more specific roadmap with small individual tasks that people can pick up and perform. Which includes: >4. Overhauling the banning system which is super different from the old one, to use the new functionality and logic. Remove old banning system >5. Allow multiple files to be uploaded per post (database already supports this) >6. Implement a variety of frontend usability such as autorefreshing, expanding images, etc >7. Make the frontend match closer to the bunkerchan lynxchan frontend, including porting themes >8. A testrun by the mods and users >9. Writing code to migrate the lynxchan mongodb data to the new sql database. And that is roughly our roadmap. Keep in mind that the new db design and refactoring the entire codebase to use it (especially since I, the person doing the refactor, was unfamiliar with the codebase) is the most difficult part, and also the part that prevents others from working on other issues simultaneously due to the code and database changing massively constantly. ----- I am currently trying to write sql to port the old db to the new schema, but having to support two versions of sql makes it fucky and also the fact that the old database was completely unnormalized so I have to split certain tables into three new ones which all refer to each other with foreign keys. Drop by in the leftypol riot and @me if you wanna help out, though we do plan on making an official roadmap/todo board for people here to help out with small well defined tasks once the database thing is over. Please be patient. I do value the work I put in a lot but despite having graduated as a programmer recently, programming for prolonged times makes me anxious, mentally numb, unfillfilled and tired. unimportant but maybe contextfull: We just officially dropped sqlite support because it doesnt support table alterations after a lot of trouble. I am also trying to split a self-referential table containing all posts + any accompanying files/images into a thread, posts, and files table, all 1 to many, to support multiple files and also to more cleanly seperate thread entities from post entities.
>there is also jschan Sounds like lynxchan. If it is any consolation, once the riots inevitably die down the server wont struggle as much.
>using google-infested languages like Go and Js
>>1967 go aint bad, I agree JS is shit >>1962 programming anon here. Be careful about over normalizing shit since joins are expensive. In the real world after normalizing you usually do selective denormalization to speed shit up (using materialized views etc). P.S. I have another feature request, public facing REST API so other people can write frontends for it on other domains/sites. My idea would be to use react or something and have other people have their frontends on w/e domains and use the gochan API to have people post to bunkerchan (possibly even a mobile app)
>>1963 until the next habbening, remember this also habbened with the stock market crash
>>1971 I tried to optimise some things already in the threads with denormalized fields such as duplicating some fields such as "is deleted" etc. Sadly virtual fields aren't well supported but if it proves to be neccecary we might change some things. The only performance heavy table is the one with the posts, threads and files. Files cannot be denormalized into posts since we want to support multiple files per post. Adding a "last bumped" field and duplicating data such as which board a post is on into each post while it only concerns the threads seems wastefull. So I seperated threads into their own seperate entity and added a bool on posts to efficiently filter on top post.
True OG's would remember Dynchan :^)
>>1971 Why is JS6 shit?
Can I help if I don’t know Go? If no, anyone got any good Go resources?
>>2040 Definately. We need people who know html/js/jquery/css to help improve the usability of the frontend soon. Other than that, go is so purposefully simplistic that there isnt a whole lot to learn. There are pointers but no pointer arythmatic (so there is only nil and valid pointers), it is garbage collected, so no need to worry about memory management. Slices are basically resizable abstractions over arrays that are used primarily and errors are returned in an err reference type (or in our case a custom error type with additional support functionality) which you need to check for not nil on every return. Its verbose compared to other modern languages (i would love there to be basic generics without inheritance, would solve so much problems) but there are only two real pitfalls: >nil values >structs are value types and so passed by value, which is shit for performance so we tend to pass them by pointer ref. Hop on to the leftypol riot channel.
jannies please finish gochan! this 500 error shit is killing me! MAKE BUNKERCHAN AN N TIER SETUP WITH MULTIPLE APP SERVERS AND THREADPOOLED POSTGRES SERVER ALL COLOCATED! GROW BUNKERCHAN TO 2K USERS!
>>2048 >https://bunkerchan.xyz/index.json (version: "2.3.2") Bunkerchan is still on version 2.3.2 (December 2019), but 2.3.12 is already out (or 2.4). The first step to try to fix any software bugs would be to keep your system up-to-date and the admin clearly hasn't done that (maybe update to the latest NodeJS 12 and MongoDB, too...). The second step would be to check the logs and send relevant parts of them to the developer. Maybe if that doesn't work out, use another solution or write it yourself if there's nothing good out there. >MAKE BUNKERCHAN AN N TIER SETUP WITH MULTIPLE APP SERVERS AND THREADPOOLED POSTGRES SERVER ALL COLOCATED! >GROW BUNKERCHAN TO 2K USERS! You don't need that at all, trust me. It would be a waste of money at your size, even if you multiplied by 10. I'm running a LynxChan instance with 8-10k daily users (according to Nginx logs) and over 1.3k PPH (at least during peak hours). There have been crashes in the past (not currently however), some related to our own LynxChan addon and others caused by the engine itself which were fixed quickly after we informed the developer.
>>2053 >I am not accepting any pull requests from anyone >im not going to implement anchoring because i dont like it >write an addon with my 1337 addon system (addon system is just runtime monkey patching and as such plugins may and do break every update, there is no actual addon system) .t stephenlynx Also: >code is an undocumented mess >because of the lack of documentation and the unwillingness of stephenlynx to accept pull requests or consider features we are unable to implement features the mods of this website would like. >The usage of gochan, upon completion, was already an agreed upon deal that was established with the merger of GETchan into bunkerchan. >I have a big site <no link to site >8-10k daily users We have 145k unique users each month. The vast majority of the users on this website do not post, they just lurk. I dont have exact figures on daily users rn but its gonna be a whole lot than 10k. Even if every user only loaded the site twice a month, we would already be on about 10k users per day. Though i agree that having some sort of microservice hyperbuzzword server for bunkerchan would be overkill.
>>2054 >write an addon with my 1337 addon system (addon system is just runtime monkey patching and as such plugins may and do break every update, there is no actual addon system) It gives you the most freedom, but I agree that an actual plugin system would probably be better. >code is an undocumented mess There are about 6k non-empty lines in doc/*.txt. The comments inside the code base don't explain anything, true. Though most of the time it's easy to understand what's going on. >the unwillingness of stephenlynx to accept pull requests >consider features we are unable to implement features the mods of this website would like When we migrated from Vichan to LynxChan last year, StephenLynx implemented a lot of features for us in an addon which he later added to the engine (post history, DNSBL, ASN bans, individual file actions and more). Yeah, it's not very easy to get your suggestions or PRs accepted if you don't discuss them at length with him on IRC or on /lynx/. >link to site https://kohlchan.net >We have 145k unique users each month We have twice as many unique users each month according to Cloudflare Analytics. It's not a very reliable metric since many people have dynamic IPs which change every day. I'm only making the point here that LynxChan easily scales and our server is not even very powerful.
>>2053 >The second step would be to check the logs and send relevant parts of them to the developer. This. Space is a good dude but he doesn't even know where his logs are.
>>2057 >Yeah, it's not very easy to get your suggestions or PRs accepted if you don't discuss them at length with him on IRC or on /lynx/. He flat out told us he would not accept any pull requests, ever. He also kept being extremely smug and condescending. >>2057 >It gives you the most freedom Yeah but at this point you might as well just directly modify the code. Now that is not to say gochan is currently at the level of lynxchan (golang has no stable plugin/monkeypatching support), but for us, considering the future direction of features the mods want to go in, we would need such substantial changes to the codebase we might as well have created a different branch. On top of that, space and I would rather use an sql database. So far the code layout and inner architecture of gochan is more comprehensible than lynxchan was to me. Im not going to list all of the things that are better, since it would just seem like im throwing a hissyfit. But gochan was already in the books a year ago, it gives us a lot more control over it, and we think that by being a lot more open about collaboration (and not, say, tell people we wont accept pull requests ever) we can more quickly realise new features we need. If only for our own site. Though I appreciate any info you have on what could cause issues for the performance of lynxchan beyond being an old version. Dankse sehr. >>2058 space still hasnt given me access to the server so i cannot check them either
>>2059 Speaking of which, where is gochan repository? Is this one that haven't been touched in over 2 months?
>>2060 Yea. But if you check the refactor branch you will notice we have been working on it bit by bit. https://github.com/gochan-org/gochan/tree/Database_refactor
(522.41 KB 200x136 d64.gif)
>>2061 So it's still caching to disk, has functions with over 300 lines ( https://github.com/gochan-org/gochan/blob/master/src/posting.go#L276 ), no lazy/JIT caching and zero documentation? On a second thought, I can't find these source files in this branch. Did I miss anything or is this some sort of rewrite?
>>2062 >On a second thought, I can't find these source files in this branch. [...] is this some sort of rewrite? Yes. Major overhaul. Did you just come here to be smug again? Like how you entered the riot chat and the first thing you did was try and make fun of me?
>>2062 Nvm, found it. It's almost 400 LOC now. https://github.com/gochan-org/gochan/blob/Database_refactor/pkg/posting/post.go#L37 >So far the code layout and inner architecture of gochan is more comprehensible than lynxchan was to me. :thinking_emoji:
>>2063 So you are the only one that can criticize other people's work?
>>2065 I dont go into chats and proceed to make fun of other peoples personal life as an opening statement. You text on its own is sort of fine but your accompanying image just shows you are here to talk shit (as usual). You dont have to come here, the same way I dont come to your site/irc or bother you.
>>2066 >You dont have to come here Never said I did. >I dont go into chats and proceed to make fun of other peoples personal life as an opening statement. The what now? >You dont have to come here, the same way I dont come to your site/irc or bother you. You don't even go to fucking #bunkerchan anymore. >You text on its own is sort of fine Then why aren't you addressing it? >your accompanying image just shows you are here to talk shit (as usual). If you are so sensitive to pixels on the internet, don't look at them.
>>2059 >Though I appreciate any info you have on what could cause issues for the performance of lynxchan beyond being an old version. It's only speculation without any logs. If you don't have access to the server, you're most likely out of luck and there's nothing you can do except ask the one with root access to fix it.
>>2068 I told space it might be RAM. With vanilla 2.3 you have to reserve a lot of ram to gridfs and suffer from memory spikes from the execs. I told him about that was changed on 2.4 and I might have mentioned the addon for 2.3 that removes the execs.
>>2067 >I dont go into chats and proceed to make fun of other peoples personal life as an opening statement. >The what now? Dont pretend i didnt see you trying to make fun of me saying "i dont like programming for hours on end" in the leftypol chat on riot. >You don't even go to fucking #bunkerchan anymore. Exactly. Not sure why you even come here, to this site, on this board, in this thread, just to try and talk shit. Youre not even socialist, according to yourself. >Then why aren't you addressing it? Because im not going to address your childish attempt at talking smack. Especially since I did not write that code you are referring to in the first place. It should be obvious that software still in development, hence why we havent switched to it yet, is not feature complete yet. That function should be shorter. It should have better caching. But right now my priority is finishing the database, adding multifile support and several other things, not cutting up a working function, that is going to get reworked soonish anyway, into smaller parts. And unlike with lynxchan, I and basically anyone else who wants to help can go ahead and fix things like those, and not run into "i dont accept any pull requests". >If you are so sensitive to pixels on the internet, don't look at them. You said the same thing about child porn but unlike sociopaths like yourself, most people do have basic human emotions.
>>2070 Since when quoting is making fun of? >Youre not even socialist, according to yourself. I'm a leftist and afaik this site is about leftism. So yeah, nah. Socdem is left. >It should be obvious that software still in development Is it? Tags say it's past 2.0. You'd assume it was finished a while ago and then some more. >That function should be shorter. It should have better caching. And yet I'm the guy who can't write software for shit.
>>2070 btw, robi said his software with blackjack and hookes will be ready to be deployed in less than 2 months. Do you have any estimates?
>>2070 >You don't even go to fucking #bunkerchan anymore. >Exactly. And what the hell is that supposed to mean? That's the official irc channel for the site you are a mod AND a dev of. Why wouldn't you participate in it? Why are you holed up in the matrix channel?
>>2071 >Socdem is left. >/leftypol/ - Leftist Politically Incorrect Socdem is politically correct. /tech/ on the other hand doesn't have a political affiliation.
(9.08 MB gnuquest.webm)
>>2074 /tech/ is software freedom gang!
>>2075 Richard M. Stallman is in favor of capitalism. He has leftist tendencies, but he fundamentally still believes in the free market.
>>2071 >And yet I'm the guy who can't write software for shit. Because i didnt write it, you dense cuck. Im just helping out since a little while.
>>2073 Because i have better things to do than obsessively check an irc channel where nothing happens with about 3 people who actually ever post. > holed up Unlike IRC, the matrix channel actually allows me to view the messages whenever i want, even if i was away, people actually use it, and the matrix is where we coordinate moderation. Believe it or not, but i actually post less in the /leftypol/ channel than i used to do in the irc, despite it being vastly more active. >you have to No. Any feedback users may have can be communicated through /gulag/ or any of the other feedback threads. Riot allows me much more simply coordinate and talk to individual users in private since we dont have to be online at the same time, something which is important to me considering my busy schedule. I have full confidence in both space and comatoast that they are able to handle the irc, just like I am sure some of the leftypol mods are able to correctly moderate big general threads i dont browse. The only thing that ever happened in IRC is you shitting on anything I said and acting like youre some kind of nietzian ubermensch. I must say I quite enjoy not having to deal with you anymore. In all my shit years on this earth you have managed to make it quite high up on my list of fundamentally unpleasant people. Good night. Btw it wasnt the ram issue, space just didnt configure the cloudflare right so it was trying to serve thousands of files via nginx and the server ran into the open file limit. So you dont have to worry about it being a bug in your stuff.
>>2082 >So you dont have to worry about it being a bug in your stuff. Does it also mean you are solving a non-issue with gochan?
>>2085 Not OP. Lynxchan IMO is not very extensible and has a confusing codebase. Extending it feels like monkeypatching monkeypatches. MongoDB was not the right choice. Untyped imperative languages are the bane of my existence, except python.
>>2086 Sure, but can you extend gochan AT ALL? Like, without a fork? Lynxchan might not offer you a tidy api, but you do have flexibility. Monkeypatching is just changing attributes on things, it might be shitty when you change stuff like how your strings behave, but we are talking about the highest level logic here. As for "confusing", i'd say that's not only subjective but also I have been praised more often than not for it's organization. And mongodb is fine. More than fine, using mongodb gives you a much more practical workflow where you don't have to update a schema for every single little change you make to the model. Not to mention how the management tools are more modern and efficient. For example: for you to allow a remote connection on myslq you have to properly register it directly on the database along with the user. With mongo you just do the more intuitive thing of telling it to bind on 0.0.0.0 and connect as you would usually do. Now, to be fair, gridfs did have a huge drawback I didn't consider at the time: memory usage. You have a shitload of documents for the binary data and they have an index around the file they belong to. Which is no longer mandatory on 2.4, so that's not really an issue now.
>>2087 >you don't have to update a schema for every single little change you make to the model. i know this a meme nosql people say all the time but honestly how much do you really need to update the schema after initial development? And how hard is typing an alter table statement? For all that you lose transactions, commits/rollbacks and the data integrity guarentees of a solid relational database like postgres. You can even use it as JSON store if you want now. With proper tuning you can take a single postgres instance to 100k/200k+ users which is probably bigger than whatever we're going to have anyway Even something like apache cassandra would be better than mongo IMO.
>>2087 This is >>2086 (me), I commend you on the scale of your software. And also on the thorough documentation that you have. There's more to praise, I was just stating what I see as negative. I don't know anything about gochan, so I can't say anything about it.
(301.19 KB 1000x800 675.jpg)
>>2088 >how much do you really need to update the schema after initial development? A lot of new features require changes. It's very common. >And how hard is typing an alter table statement? Is not just about typing it, is about including on an automatic system so these changes are transparent to operators and making sure they are correct. These really add up. You want to see how big schema changes are? Gochan is past version 2.0 and they are rewriting the whole database. That big. >For all that you lose transactions, commits/rollbacks and the data integrity guarentees of a solid relational database like postgres. None of which were needed in a project like this. I don't think RDBS are bad, I just don't think they are the hammer and that all problems are nails. >>2089 Yeah, my whole point was that gochan doesn't solve anything, not that my software is perfect.
>>2078 why is he pro Bernie then?
>>2094 I'm just indirectly quoting him. I can't find the video right now, but I remember that he said something along the lines when somebody asked whether his ideas of free software are communism/socialism. People on the right may call Bernie a commie, but he really isn't. What he's proposing for the US (free healthcare, free university/college) has already been implemented long ago by many European nations.
>>2078 hes halfway between a green socdem and a demsoc. Stallman was the original anarcho-liberal
I've come to make an announcement: Stephen Lynx is a bitch-ass motherfucker, who pissed spaghetti code on my image board. That's right, he took his tiny fucking dick out and he pissed on my fucking imageboard, and he said his software was "THIS GOOD", and I said that's stupid, so I'm making a callout post on my riot IRC, Stephen Lynx, you got a small dick, it's the size of this walnut except WAY smaller. And guess what? Here's what a good image board looks like! THAT'S RIGHT, BABY. FUNCTIONAL TOOLS, NO CRASHES, NO SPAM, LOOK AT THAT, IT’S MADE IN FUCKING GO. He fucked my imageboard, so guess what? I'M GONNA FUCK AMERICA! That's right, this is what you get! MY SUPER LASER PISS CODE! Except I'm not gonna piss on America. I'm gonna go higher. I'M PISSING ON CAPITALISM! How do you like that, OBAMA? I PISSED ON THE FLAG, YOU IDIOT! You have TWENTY THREE HOURS before the piss DRRRRRROPLETS hit your fucking github, now get out of my fucking sight before I piss on you too!
>>2714 based.
>>2714 kek

Delete
Report

no cookies?