/make/ - Creative

World made of things

Want your event posted here? Requests accepted in this /meta/ thread.

Max message length: 5120

Drag files to upload or
click here to select them

Maximum 5 files / Maximum size: 20.00 MB


(used to delete files and postings)

(688.97 KB 703x688 77098266_p0a.png)
About/rules/meta Anonymous 01/28/2020 (Tue) 16:40:11 No. 1 [Reply]
/make/ is a catch-all board for all creative hobbies, including but not limited to; art, writing, programming, game development, handicrafts...

You are free to make new threads for projects that you're working on. You can also do so for a concept or an idea, as long as you take it seriously and/or have some kind of plan to create it at some point. For other disconnected ideas, use the ideas thread.

This board is not strictly SFW, but straight up porn must be spoilered.

Open file (34.60 KB 1030x683 demopaint.png)
An image editor project Anonymous 05/09/2020 (Sat) 23:37:41 No.76 [Reply] [Last]
I often try to design something like the UI for a program or a game, or maybe typeset a manga, but struggle to do it because a program that is "decent", "free", and "image editor" at the same time doesn't exist. Gimp as a whole is a clumsy piece of shit, Krita devs seems to have no intention of ever fixing their broken ass text tool, MS Paint simply crashes if I try to draw a text box, many others have either no text tool at all or are severely lacking in other ways. I could write a book about all the ways that every single image editor is a pile of shit, but I can't pray and wait forever for one of them to get fixed so I think I just need to bite the bullet and prioritize making it myself. There's 2 I have already thought about in the past, one of which is just a simplified and stripped down version of the other, meant to replace MS Paint, pic related. I doubt I'll be properly making either one for a while, but I want to at least start on an image editor of some kind so I can design things. Making an image editor isn't actually hard at all, it's only hard to add certain features like magnetic selections and weird filters and support for all the file types, and making the rendering fast when you use large brushes on a large canvas and such. But for now I just need a simple editor that can draw basic shapes and text, paste images, and cut/paste selections.
17 posts and 4 images omitted.
Open file (370.03 KB 1280x1080 1591675617511.jpg)
>>112 >"we're gonna remake the text tool it'll be vectors and shit!" >tear it apart and break it, making it effectively unusable >give up and forget about it like a true open source team >hold fundraisers but make no mention of finishing the text tool with any of that money >still not a peep over a year later
Open file (2.01 MB 1084x764 paint.webm)
Holy shit, I just partly solved my image editor problem by downloading the Windows 98 version of MS paint. Text tool doesn't make it crash like it does the new version, so I can actually use this to make simple mockups with text. https://archive.org/details/MSPaintWin98 I find it both hilarious and depressing how a program from 1998 solved a problem better than basically any other current program could, including a newer version of itself. But that's where we are with modern software. It's not perfect though, there's a few problems so I still want to make my own program sometime soon, it's just not as critically important. It can only open .bmp files, though I can just cut and paste stuff in. The font names randomly become invisible, but I don't care about fonts as long as I can change the size. Probably most annoying part is that the zoom tool is kind of clumsy, you have to select the zoom level before using the tool, and then it gets deselected after clicking. And of course being MS paint, it doesn't have layers so it's hard to make detailed designs like the OP image.
>>148 And I just solved 2 of those problems by downloading the Windows XP version. It can open jpg/png files, and the font selector works much better. https://archive.org/details/MSPaintWinXP
>>148 >>149 Have you tried out mtPaint? It's basically a FOSS MSPaint XP and has layers. I have only worked with layers once though and it's a bit tricky to do some things. http://mtpaint.sourceforge.net/
>>150 Tried it just now but it seems incredibly clunky and unintuitive. Can't figure out how to do anything and saw too many problems, the workflow hit I would likely take from using it would make it not worth using. I can always use Krita if I need layers.

Open file (86.48 KB 1438x846 nibs.png)
NIBS imageboard client/server Anonymous 04/28/2020 (Tue) 19:30:44 No.63 [Reply] [Last]
There is a concept that's been hovering around for a while, but seemingly nobody has made a serious attempt at it. That is, a desktop client that can read imageboards. There's a lot of advantages to this, but you can take it a step further and reach a whole another level by also making a server that's designed to co-operate with the client. This thread is for me ideaguying and probably posting actual progress on such a system (from here out named NIBS for "N-ImageBoard System"). NIBS is 2 different things, a desktop client for browsing imageboards, and an imageboard server that's designed for the client. The basic idea behind it's operation is that whenever you get information from the server, you cache it locally on your computer, and when you view a page it's loaded from the cache, and you only ask the server if anything has happened after that. This results in colossal speed gains for the user and bandwidth savings for the server, the experience is better for the user and the server costs are much lower for the owner. The auto-update system will also be able to tell you everything about every thread/board you have open/watched across the entire webring, instantly as soon as something happens anywhere. By default, NIBS imageboards will be impossible to access directly from a web browser, and the NIBS client can't directly access traditional website imageboards. Instead both the NIBS client and server will be split into 2 parts; one for the NIBS core system, and another optional "plugin" that can translate to/from web protocols. The plugins will allow the NIBS client to read traditional imageboards, and the NIBS server to be accessible from a web browser like any other imageboard (some features will be disabled however because web browsers can't do certain things that NIBS client can, and traditional servers don't support certain NIBS server features). On the server side, this also allows you to detach the imageboard from the web by removing the plugin, thus only people with the NIBS client can access it. NIBS will have a "webring" by design, in fact the whole system revolves around a webring-like operation. It works similarly to the current webring except servers only store links to other imageboards, they don't share board lists. Instead the user's client will retrieve all the board data from all the different servers, and stores them locally. It will also be able to include the current webring boards. Pic related is a shitty graph that attempts to roughly describe how NIBS server and client communicate and how the "web plugins" play in. (just replace "NC" with "NIBS") Nchan ( >>4 ) will likely be "cancelled" and replaced with NIBS (that's where the N comes from). The web translator plugin should eventually be able to provide a website that basically looks like Nchan anyway though. However finishing NIBS will take a much longer time than it would to finish Nchan. NIBS is the true true thing I've really want to make, more so than a normal imageboard, and more so than just a handmade server. I just didn't have enough understanding of networking to think about this seriously. TL;DR A desktop program for browsing imageboards. A new imageboard engine.

Message too long. Click here to view full text.

28 posts and 3 images omitted.
>>142 >My intuition is that the servers will just be tasked with storing data and taking requests to upload and download data using some protocol, while the clients do all the presentation and interaction. Is that not correct? Yes, but of course the page templates are among the things that need to be loaded from the server since you can't know what kind of website someone wants to make. So although your client actually builds the pages without the server's help, the server decides what logic is in the template and how to lay out information onto the page. The template can then use the data you've stored locally (such as favorited images or (You)s) to generate something malicious onto the page, like as mentioned; new unique file paths that the client then attempts to access. You could think of it as a PHP server where the server simply sends the raw php files to the client, and the client actually processes the php file. Not exactly like PHP of course, but similar idea. Styles would work exactly like CSS files, except like everything else, they're loaded only once.
>>143 Okay, so your problem is basically that you want a non-shit javascript replacement for specifying functionality that isn't hard coded into the client/server. The struggle will be in balancing how restricted that replacement is: Too restrictive and people can't properly make their websites; too unrestricted and there will security holes. To guarantee the server never sees local data, you're basically going to need the template to either never directly interact with local data, or never directly communicate with the server. I'm not sure how that's going to fit into your system since you have a lot of extraneous ideas that go beyond the classical imageboard. As far as I know, everything that already exists in this domain is shit. The way to go then is probably to do something like build your own bytecode interpreter. You'd just define a set of instructions that are as stringent as possible, and add things when you can guarantee they are secure. You could also create security levels for different instructions and notify the user when a bytecode binary contains these operations, or let them configure what security levels are restricted. Of course this would then entail writing a compiler of some sort, lest you force webdevs to write assembly. (Though I'd approve of that.) Or you could say fuck it, and make content static and rendering client side. That's what I would do if I were just making an imageboard client/server program. I like to start small, so I feel like getting the single-format website working would be the right way to start. From there it should be possible to incrementally add some form of sandboxed dynamic content, slowly and carefully building it into a general purpose system without any gaping security holes. I'm grilling your ideas here mainly because I've been thinking about similar things but I'm fairly tied up with my own projects. Either way, best of luck, I will continue lurking.
>>144 >javascript replacement Yes and no. It wouldn't necessarily have to be an actual scripting language so long as you can build the page. Problem is, as far as I can tell it kind of has to be similar to a scripting language or else it's too restrictive, when I tried to prototype different ways to build pages it just always veered towards the same thing and/or had the same problems. Maybe I lack creativity to come up with something else. One of the things I was contemplating was, as implied, not having some language features such as if/else conditions. That way you couldn't "program" with it, but it still has enough logic to construct pages. A lot of the interactivity that people use Javascript for these days could be replaced with smart HTML and CSS features, I was going to do something like that instead of relying on an actual scripting language. I can think of solutions for doing nearly all imageboard features without javascript. >you're basically going to need the template to either never directly interact with local data, or never directly communicate with the server A combination of those was one of my ideas: when you query local data in the template, you must define bounds for it. Within those bounds is a special "sandbox" where only cached files/resources can be linked, and outside of those bounds the local data can't be used anymore. But even that has potential complications and annoying limits. >you could say fuck it, and make content static Well that would certainly make it easier, but I'm not very motivated to make that. The more restrictions and limits I have to place on the system, the more I'd rather just work on NIBS instead.
Speaking of NIBS, I haven't worked on it too much because real life fucked my shit up and got me out of the mood, but I did start working on a database system. I've officially decided to make my own database, I don't want to deal with any database program's shit nor tell people to install MySQL nor ship such a huge bloated database with the client. A custom database should in theory be much faster since it'll be specifically tailored to do the job that NIBS needs it to, and it will certainly be much smaller. Main problem is that I have very little experience on interacting with files, so I have no context about how fast or slow it is to search through data in a file, what the fastest way would be, and how important asynchronous reading is. Mildly related; I found a "secret" low level API in Windows for reading/writing files. https://docs.microsoft.com/en-us/cpp/c-runtime-library/low-level-i-o?view=vs-2019 I don't know if you're supposed to use them but it's refreshingly straightforward, just open a file with the permissions you want and tell it to move x amount of data into your buffer, not need for a bunch of extraneous shit or being limited by C stdio features. I'm pretty impatient about making an imageboard so I thought about making a simple web imageboard first (essentially Nchan in C), but ran into a problem: HTTPS. That secure shit is a royal fucking pain in the ass and as far as I can tell there's basically no guides for building a program for it from scratch, there's no good documentation, and of course openSSL or whatever is just as much of a pain. I swear every time I want to make something I'm stopped by someone else's gay fucking system that I'm supposed to interact with. How hard can it possibly be to make a library that you can just include from your code and start using? How hard would it be to make that system just do what it's meant to do in a straightforward way? I could make the imageboard HTTP only, but it can't join the webring because I can't load anyone's webring.json without a HTTPS connection to their server, and apparently some browsers are really annoying to you about "insecure connections" nowadays. Basically everything just sucks and that's part of why I want to make everything from scratch.
>>146 I recently played around with nginx for serving files, and it probably can do what you need for HTTPS. You would just need to generate the html/css/js for the browser to consume, and then use that as a proxy/copy of the main data. It would fulfill your design for the translator part of the diagram. Maybe you wanted to write the entire server from scratch, but if you're going to have support for legacy systems you might as well use standard tools for the legacy system and then remove/replace them over time. The idea I mentioned that I was looking into is making a standarized imageboard file format. It would be less like a database and more like a raw zip archive. It would be organized in such that boards, threads, and posts would just be directories, making it very easy to write some basic C code to process the files, generate html, and serve that statically. This would allow you to have an imageboard file the that you could browse in read-only mode, but which would be easy to write software to make changes to it. From their, people would be able to use this standard as a basis for their own client/server protocols, like what you're doing, but much more robust to differences in implementation and porting. So you could have somebody make a completely distributed ipfs chan protocol, or your nibs protocol, and so on, and if one was abandoned, the boards could easily be retrieved and moved to another system. I understand you're adding stuff that's more like a booru almost, but I feel like that's a separate thing. My main concern is about solidifying the channel of communication. As long as we have a firm foundation stuff like that can be worried about later or in parallel. Most of the modern webdev practices are bullshit when it comes to chans. We don't need a special media database to remove duplicate files or track tons of metadata. There are no users accounts, just some mod data and configuration options. A traditional filesystem is perfectly adequate for handling these sorts of things, so long as concurrency is handled properly with locks and such. It is entirely feasible that we could create an imageboard server that would have zero non-posix dependencies, and painlessly compilable on linux or windows, because posix is shared heritage between the two. Those secret functions you found are more or less based on the C standard library, which is itself based on posix. Anyway, that's enough ranting for now. I have not really made my proposal concrete in any way, aside from writing a bit of code and experimenting with the html generation stuff. I guess a good step for me would be to make a written proposal for this specification and then post it to see what people think about it.

Open file (713.51 KB 993x919 upperview.PNG)
Open file (785.82 KB 2048x2048 body_v04.jpg)
Open file (728.63 KB 2048x2048 body_v06.jpg)
Open file (360.70 KB 2048x2048 body_v07.jpg)
Digital art thread Anonymous 05/01/2020 (Fri) 04:02:30 No.71 [Reply] [Last]
Post your digital art here, be it 2D or 3D. I'm currently working on this character for a future piece. In the end, she will be an android in a cyberpunk setting waiting for the bus.
11 posts and 6 images omitted.
Open file (1017.81 KB 2048x2048 brainiacRender_v05.jpg)
>>114 Textures of the skin almost done
>>135 If the skin's supposed to be manufactured and presumably from a bunch of different vendors, you might want to make the individual parts not fit perfectly. Having the skin layer slightly off along the edges or little bits out of spec will help sell the look.
Maybe someone can help me out here. I'm getting really pissed off with 3D modeling. I've been using tinkercad but it lacks so many really obvious options. Like aligning faces doesn't exist in it. You have to use janky work arounds with the alignment tool. I tried Blender and went NOPE before I'd even finished looking over the menus. It's a complex cluster fuck and nothing responds how you want it to. I'm sick of tools having cluster fuck interfaces or lacking really obvious basic options. Is there a decent CAD software out there that is an intuitive as tinkercad but has a full option set for basic movement and alignment? I'm looking for something like GIMP where it doesn't have all the options but it just works for almost everything.
Open file (1.43 MB 2048x2048 brainiacRender_v06.jpg)
Open file (82.16 KB 719x754 brainiacRender_v07.jpg)
Open file (1.21 MB 2048x2048 dispMapOnCoat.jpg)
>>136 I ended up increasing its extrusion out, it was indeed pretty flat. I'm thinking the skin crawling up along the edge isn't strong enough, but I've been working on this character for so long, this will have to do. I need to finish the textures soon, and I'm struggling a lot with the coat. >>137 I have no idea about CAD software anon, but isn't Blender mainly for artistic purposes? I'm not a blender user, but I hear you need to learn the software's shortcuts to be able to use it efficiently. Thing is the software has a crap ton of those...
>>138 Blender is jack of all trades 3D modeler due to it's open nature. Everyone piles everything on top of it. Forget the white coat. The hoodie looks good.

Open file (574.69 KB 3007x1775 telephone amplifier.png)
Anonymous 06/20/2020 (Sat) 23:23:22 No.115 [Reply] [Last]
Tell me what to do with it. QUACK
4 posts and 1 image omitted.
Open file (394.28 KB 1069x3264 antenna phalus.png)
Antenna incl metal construction not in the picture
Open file (651.63 KB 2124x2678 radios ass.png)
The back. Thing on the bottom. TRANS goes to antenna
Open file (375.06 KB 2807x1157 cb-radio.png)
What the heck?
looks like you have the manuals right there, they don't say what frequency or how many watts they are?
50 watts There is really no information in this manual about frequency.

Programming/dev thread Anonymous 01/28/2020 (Tue) 16:45:57 No.3 [Reply] [Last]
if (bodyCannotBeEmpty) {
return getShittyOP();
else {
return "";
15 posts and 6 images omitted.
Open file (96.25 KB 840x700 1579071602773.jpg)
I think it's time to give up on this fucking IOCP. I just discovered that it's posting several events into the same socket at the same time (on different threads). I mean I'm sure this is all fine and intended since the only IOCP example I've ever seen before in my life is an echo server that just shits the received data back as soon as it's received regardless of what's received. But meanwhile in real world that's a completely useless behavior for the program. This is the biggest difference between my code and the example code, because I can't just echo the data back as soon as it comes in, I need to actually put together the data that I'm receiving, wait until I have all of it, process it, and then send a response to the same person afterwards. But despite working on this for like a week now I can't figure out how to do that and I haven't been able to find any examples that do anything like it. While reading about this, I also found out you're supposed to close the completion ports manually when they're finished. The provided example code opens a new one for every socket but never closes them, the whole design makes it impossible to close them. I also don't know how to approach doing that because I have no idea what the completion port is tied to, how do I know when it's ok to close it? My only remaining hope is to make a server using the old slow socket functions and hope it gives me some kind of insight that I've been missing about sockets, or something that makes me understand this system better. I said I wouldn't blogpost much but this shit drives me up the fucking wall, because if I can't read Microsoft's mind about how this is meant to be used then the alternative is to start using fucking nodejs and javascript again, which is basically like putting a giant slimy nigger box that randomly plays fart sounds between me and the computer. Of course I could just ditch Windows and only make a Linux version of the server but a) I don't want to, and b) I'll have to do this anyway when I want to make a multiplayer videogame because nobody plays games on Linux.
It finally (almost) justwerks. So I did end up checking through an old school socket guide and immediately found out something very fundamental(?) that I didn't know about. It seems like there might actually be no way to know when the client is done sending data. I'm not sure if that's true, but the guide showed an example of multiple separate messages strung back to back, and then started talking about protocols as the solution. So I assume you're supposed to parse out the expected amount of data from the HTTP header (or whatever protocol you're expecting) as it comes in rather than relying on some piece of information that the system gives you. Basically the connection just stays open and sends/receives shit whenever it feels like and it's up to you to figure it out. The IOCP guide has several places that look like the client is done sending data, there's even comments that say so, so I just assumed there's a way to know. But more importantly, this ties together to the big realization about what I've most likely been doing wrong. It's such a disjointed combination of a lot of things going wrong and the IOCP guide being fucking retarded in 2 different ways that it's hard to describe. So the IOCP guide defines this IO info structure that you use manually to tell yourself whether the current event is sending or receiving data. It's always sent to the system along with the same socket info, I couldn't figure out why it's separate so I just merged them (it basically changes it from READ to WRITE and then echoes the data, and then changes it to READ again). Another confusing thing about it was that inside of the IO info struct, there's a WSAOVERLAPPED struct, this is what the system actually expects, but it returns the pointer to your IO struct anyway (WSAOVERLAPPED is first member of the struct so Windows still understands it even though the pointer is technically the IO info struct). The WSAOVERLAPPED itself is never used in any way in the example. In order to send a reply to the client, I used WSARecv to check if there's any more data to load, and then immediately did WSASend if there wasn't. Although this isn't necessarily a mistake entirely, it becomes a mistake because of the way the IOCP guide had set up the IO struct. Both of those function want the WSAOVERLAPPED struct (IO info). In IOCP example the IO info struct is just reused, and it's probably fine because of what it does. However if you call 2 things back to back, it creates 2 different events that are using the same IO info data. So here you're actually supposed to create a new WSAOVERLAPPED struct (or IO info) and send that (the old socket guide clued me into this since the old system just tells you what the event is as opposed to making you tell yourself). And to find out when to reply, you're supposed to read the received data as it comes in, parse the HTTP header, and then use WSASend to send a reply when you've reached the expected end (HTTP header ends in 2 new lines, and if there's body content the header will tell you how long it is). Since I tried to use WSARecv to check for end of incoming data, it just created a new event for no reason, and since the IO info was shared between different types of events that were running simultaneously on multiple threads, everything got fucked.
Open file (2.25 MB 1622x822 almostworks.webm)
>>60 So after all this, I may finally understand how the IOCP system works. I rewrote it according to my new understanding and it now works with almost 100% consistency, except for one crash that occurs randomly, I haven't been able to track that down. It seems to be related to sockets closing or something, since it often happens if I cancel the page refresh. After I get a little more experience with this and fix all the bugs, I'm probably going to write some kind of guide for this because the only example that I could find doesn't explain it properly. Of course I could still be doing everything wrong and it only works by chance somehow. As for the crash itself, the reason I'm having so much difficulty is that I can't find anything that should be able to crash (unless it's some Windows function shitting itself). The IO info and socket info are never reused or removed, so there can't in theory be a conflict between them (the array of them will run out eventually and the system stops working, but I just did that to find the problem). In webm related I notice it does a bunch of sends in a row right before crashing, but all of them are on a different socket and different IO info so they can't be conflicting. It might also be stuck somewhere else which is why nothing happens inbetween the last sends. There's always a possibility that the problem is in my own string functions or something. At this point I should just bite the bullet and use a debugger. I rarely do that because I hate having to create projects in some shitty IDE, and more importantly I use a batch file to set up my compile and I don't know how to configure that in the IDE, so I basically have to move all my files and create some separate hard coded compile setup or something, I don't even remember, I don't want to remember. I was going to start using debuggers more and learn to use them proper after I get myself RemedyBG, but I haven't had a pressing need for it yet since I can usually find any bug in a minute. This time is a lot harder because it's multithreaded and the problem is most likely the IOCP system doing something unexpected that nobody bothered to explain. I don't even know how to debug multithreaded code though, since I can't imagine you can step around in the code normally, and break points will be scattered across threads. I just wish there was a way to tell where the crash happened, all you need most of the time is to know where the problem is, it's relatively straightforward to find the cause afterwards.
Open file (3.74 MB 1586x890 werks.webm)
FUCK YEAH I managed to track down the last remaining crashes, and the primary one WAS in fact in one of my own functions. I'm using a new string system that I haven't tested much that I call "defstr" (double ended flat string), it's basically a continuous chunk of memory where you can add/remove data from either start or the end without causing re-allocations or big data moves, and it re-allocates if it needs more space (or shifts around if there's a lot of extra space in the opposite end). It's perfect for this since I can add new data to the end of the buffer, and remove data from the start when I read it. Anyway one of it's functions had a missing piece that eventually caused the reallocation to fail. The weird thing is how uncommon this problem was, I should have definitely run into it before, I even tested the functions when I made them but didn't encounter it. The second crash was much rarer and I hadn't seen it in a long time, this one actually gave a windows crash prompt which tells me it's an access violation. I found the cause of it when I started thinking of how I can start re-using old IO and Socket data again so it won't just create new ones infinitely. And as soon as I removed the line that closes sockets, the crash no longer occurs. I had to change the design of things a bit such that the socket info keeps track of how many IO operations are active on it, and is only closed when the last active IO operation is removed. So now it works very consistently, it never hangs or crashes or gets stuck or fails to send resources no matter what I try on the browser's side, it never exceeds 6 active sockets and 13 active IO operations on a single browser loading a page with 30 images, and it reverts to around 17 MB memory usage after each page refresh. I actually load images directly into memory when I send them, but I think it's possible to pipe files straight into the IOCP. That'll be required eventually since I want to minimize memory usage headaches (though I'll probably use Nginx for static files anyway). There might also be some possible exploits, for example I'm not sure if sockets ever time out on their own, so a malicious user could fill the server with passive connections. There's an option to time out the IO event, but I'll just have to see. But anyway I want to get to the actually interesting part now, which is making the application server. I can already parse the most important parts of the HTTP header to figure out whether it's a POST or GET request, and what page/file the user wants to access. I don't think there's actually anything very complicated about this, reading the headers is simple, sending files is simple, the hardest part might be to parse form data, especially file uploads (I'll also need a way to pipe the file data straight into a file rather than loading the whole thing into memory). I experimented with normal forms and multiplart forms, and the data seems pretty straightforward, though I didn't try file uploads yet. Webm related, I can already serve pages and files. Besides minor tweaks here and there (and the linux equivalent of the server), there's only 1 big obstacle before I can start working on Nchan, and that's the database. I actually have no clue how to connect to a database from a C program like this. I know how to do text commands since I've used FFMPEG from one of my programs before, but you need to actually log in to the database and stuff so I don't think it's the same at all. Anyway now I can finally stop blogposting about this.
Open file (27.47 KB 530x195 texty.png)
Finally un-died enough to get around to setting up stb font properly, and I'm surprised at how clean it looks. I thought all the letter spacings would look completely fucked, but it looks mostly consistent even at very small sizes. The letters themselves don't look too great though, but it's readable at least.

Open file (563.11 KB 1227x1804 nindex.png)
Open file (433.01 KB 1194x1440 npost.png)
Open file (283.86 KB 1352x1322 ntagsearch.png)
Open file (89.55 KB 1335x1083 nboards.png)
Nchan Anonymous 01/28/2020 (Tue) 17:52:06 No.4 [Reply] [Last]
Nchan (temporary name) is my imageboard engine project. The goal is to do basic shit that we should've been doing ages ago, like browsing threads by tag, supporting all file types, using .webp thumbnails for compressed animation and transparency (including apng), making nojs posting super comfy, not having a clunky inconsistent pile of garbage UI, and having more/better post formatting options.

It currently runs on node.js, though I'm planning to eventually rewrite as much of it as possible as C++ modules (basically everything except the initial request redirecting).

It may not be finished for a while because I'm not good at designing/using databases. Technically most of it already works though.
33 posts and 12 images omitted.
Open file (28.94 KB 429x166 yfw accounts.png)
>>49 >I was talking more about color coding PPH on the board list Oh yeah, I can easily slap color coding for all the stats including user count. We'll have to see what it looks like and how exactly to do it when there's a website with active boards. >I would say blocks of color is better than a continuous spectrum >have it configurable It would still cause problems since the PPH changes over time, so a board sitting right at the edge of a 'block' will keep changing color and/or switching between the "fast boards" and "slow boards" groups. I'm generally not a fan of things that are kind of tweaky and unreliable like that. I feel like the best solution is going to be to give users the ability to organize boards manually. >Would that matter anyway? Wouldn't one just take priority over the other? I won't get into the details of it, but currently it would just create a bunch of duplicate filters instead of updating the old ones. However, if I add the ability to load settings/filters from an account, it will require some kind of "setting packs" that can be updated/removed. That kind of system would allow you to update filters from JSON too, since you can update one of the 'setting packs' instead of merging the settings directly into yours. >As for accounts, I hope they would be limited to things that require permanence like this or the job system? That's an interesting discussion that I probably don't want to have, because people will object to anything account related no matter what. The software itself will make it possible for BOs to require accounts for various things (including posting) just because of the nature of the permission system, but whether it's enabled will depend on the admin of the imageboard. It'll be disabled by default, and I haven't yet decided on whether I want to enable it in my own imageboard. I'll probably only allow BOs to configure it for paint chats and poll creation.

Message too long. Click here to view full text.

>>50 >I don't like account requirements either, but the way I see it is; if someone wants to run an imageboard (or, to an extent, their own board) where accounts are required for something, I don't think anyone should be able to tell them they're not allowed to do it. There's some undeniable benefits to account requirements, and rather than preventing that entirely through software design, I'd rather focus on improving people's ability to find/use/make an alternative to that board/website. The accounts thing makes sense. It does worry me but not because of what you are doing specifically, more just a general fear that imageboards will become shit like the rest of the internet. The fact that a "4chan Pass" is a real thing that exists already means we've gone too far. But I can see some potential applications for it, mostly for boards that are 90% tripfags and for "muh sekrit club" types. >It's kind of like /a/, they have a very heavy handed word filtering system that people like to complain about, but it works for them and I don't think there's anything wrong with that. Many people there like it, and the ones who don't went to /animu/ I've always liked splinter boards in theory but in practice it's usually disastrous. Boards like /animu/, /b2/ and /vg/ were outliers because they were so big in the first place, they could afford to shed users, and even then there was issues and drama. In most cases they just died in a matter of weeks because it just isn't possible to split apart a small board without crippling PPH. So many problems on imageboards could be solved by having a larger, more discerning userbase
Oh and I had an idea, I'll just append it here otherwise I'll forget - wordfilters for individuals. So I could set "rabbit" to wordfilter to "fuzzball" and it would only show up on my end, not for anyone else. Also an option to turn off wordfilters on the user end, I think it's ridiculous that people have to play along with whatever shitty meme wordfilters some mod put in place if they don't want to
Completely forgot about logging in. Also I should mention it in this thread as well; I'm most likely cancelling Nchan in favor of NIBS ( see: >>63 ) Unless for some reason I feel a need for making an imageboard soon and absolutely can't stand any of the current ones (lynx/jschan/etc), I might throw together some half assed version of Nchan just to get the critical missing features in. But if not then I won't be working on this again. NIBS should eventually be capable of putting out something like Nchan and more anyway.

Open file (49.96 KB 550x850 the new infinity cup.png)
Anonymous 05/11/2020 (Mon) 21:32:15 No.85 [Reply] [Last]
Hey /make/ friend, I noticed you're pretty good at your 3D stuff, how about coming and joining us over at https://anon.cafe/icup/ to get your board advertised with a team?

(420.40 KB 640x480 idea man.webm)
Ideas/random thread Anonymous 01/28/2020 (Tue) 16:41:24 No. 2 [Reply]
Ideas and thoughts about other things not worth their own thread.

Report/Delete/Moderation Forms

Captcha (required for reports and bans by board staff)

no cookies?