[ home / rules / faq ] [ overboard / sfw / alt ] [ leftypol / siberia / hobby / tech / edu / games / anime / music / draw / AKM ] [ meta / roulette ] [ cytube / git ] [ GET / ref / marx / booru / zine ]

/tech/ - Technology

"Technology reveals the active relation of man to nature" - Karl Marx
Password (For file deletion.)

Join our Matrix Chat <=> IRC: #leftypol on Rizon

File: 1631336482854.png (261.26 KB, 480x481, God.png)

 No.11160[View All]

Every few months, people come up with an idea to create a new imageboard, since mostly everyone is dissatisfied with the state of vichan/lainchan, or thinks they can do it better. Having better software would greatly enhance the experience for both regular users and mods, and have more crossover appeal to “normies”. The problem is that no one can agree on the technical or more importantly non technical decisions on how one would go about making an actual, usable replacement for lainchan.

In fact, people don't even agree on whether the imageboard replacement should be an imageboard at all. This thread is a merged, consolidated, megathread of all the various attempts at answering this question that people have made.

Previously, there was a thread on outreach to lainchan, including a strawpoll:

The poll determined it should be built in Java, but a significant minority wanted to use a functional programming language, esp. Haskell, or Clojure/Lisp.

The only way a new imageboard will be built is if multiple people, technical jannies and lurker-programmers, from here and lainchan and even elsewhere, actually collaborate on a single project and concentrate their efforts on this.

There are important technical and non technical questions to be answered.

Namely, do we even want an imageboard?

Some anons have suggested a radical re-imagining of the medium of anonymous communication where boards are replaced with tags. Some want named accounts, some want textboards, the ideas are endless. Is there anything to be improved upon with the imageboard concept, and if so, what? If reddit is an improved version of the phpbb type forums of old, what does a “modern” version of a chan look like?

Feel free to use this thread for any polls, discussion, of the formats, technical, or non technical decisions related to a vichan replacement both for this site and in general.

Also comment on:

Concept: Classic Imageboard vs something else
Architecture: Monolith vs Microservices
Distributed: Distributed/Federated vs Standalone
Front end: SPA (ex: Angular, React) vs Server Side HTML templating
Backend Language: Java, C#, Lisp, Rust, Golang, PHP, etc.
Database: SQL vs NoSQL
433 posts and 67 image replies omitted. Click reply to view.


>2003? Most imageboards look late 00s early 10s
They look exactly like Futaba (2003) except they added a 1px shadow or worse, they removed underlined hyperlinks. Fucking web 2.0 minimalism.


Vichan is a read only API, there are no endpoints marked as anything other than GET, for it to be a real API you would need the ability to POST new posts from any client


Anon I like your schema (the first one) seems kindof incomplete tho


File: 1649516823870.jpg (134 KB, 1148x747, CQRKIhsVEAAcdt9.jpg)

I'm not a real oldfag and even I know that the Yotsuba most modern boards are based on is the redesign.



And like I said, all the "redesign" involves in adding a shitty shadow to post boxes and setting a font instead of letting the browser fall back on the default, lol.



Anyone wanna work on a modernization project of Futallaby 040103 via git?


Never use Java.

People have been saying this since Mootxico. It never pans out. 4chan might not be as popular as it was in 2016-2018, but it's way more popular than the years before - and it was already unusably crowded at that point.


>The point is the vast majority of time spent on a program will be READING the code not writing it and verboseness to a certain extent makes it more self documenting.
It is genuinely worrying that you think this. I have no academic background so can't speak to the technicalities of this or that language ecosystem beyond the ones I have hands on experience. However, just from over a decade of reading other public codebases, I can assure you that verbosity does absolutely not ensure self-documentation. If anything, it often leads to obscurity by verbosity.
Readability, etc. depends on the programmers, or the maintainers - and let's be real: imageboards are filled with middling-at-best programmers, who blaze ahead with no plan or change them constantly, or simply have edit wars over petty disputes. This should be kept in mind for any public forum based project.


bumping this thread.

According to previous polls on the topic, python was the most popular language in polls, followed by java, though judging from the responses of JVM devs here, the more popular jvm devs would prefer Kotlin at the very least.

If java and php are out, IMO python would be the best option, or kotlin if needed but kotlin's less popular.

there's also the systems/deployment aspect of dynamic languages. Best practices are that you create a an "artifact" whether that be a compiled binary, container/docker/podman image, etc. However to save on cloud costs its often the case that people would want to just do a git pull and have the software update dynamically (no compiling/building image required).


something like this roadmap/processes would be needed to develop a new chan


This is way too much flowchart’ing for something that’s just gonna be a hobby project maintained by a handful of part-time people at the very best


ok what would you propose we cut out


Design is always good even when it's a hobby project. I disagree with the flow chart but it's better than nothing.


Idk, all of it. Just start hacking together an imageboard in your preferred language, put it up on a git repo, share it, and see how things move from there. Also, 24/7 moderation is a pretty big ask. Also, please don’t call it “chan” or prefix it with “nu-“ that shit is a strong repellant for anyone that isn’t an obnoxious swamp ass incel.


Upon further consideration, I think for just software design cloud systems architecture, ci/cd, deployment, itsm, and SRE could be cut out because all of that shit is really more the responsibility of the operators, not the devs.

the only traditional operator task i think maybe should be observability, that should be built in since its hard to do without observability having been an architectural goal from the very beginning.


It really doesn't matter which language you choose as long as its not a scary language. Eg. Scala, C, C++, or any functional language really. I don't see the point of java if kotlin exists.
Regarding the last block in the design, most chans will be deployed in a small VM instance, and that should be taken into account. Also monitoring and instrumenting is really valuable, so that's good. Something like opentelemtry.

The database and api design, plus the implementation are both the "same step". They inform each other at the design phase and will likely be implemented together.
yeah, I got busy and couldn't finish a response. Here it is half baked.


>Eg. Scala, C, C++, or any functional language really.
Clojures more purely functional than java and a jvm lang to boot.


>most chans will be deployed in a small VM instance
maybe if it was more service/microservice oriented it could be a collection of cheap VMs (€5-10) rather than one single expensive VM. The cheapest OVHcloud vps hosts are ~ €4/$5. So you could get 24 cheapo services for microservices rather than one fat big server. Even if you want a beefier model you could get 12 medium servers, if it scales better than one fat server its worth it i guess.


Most chans receive zero new posts a day and happily run from a single perl script that has not been touched in a decade.


are we really wedded to scala? AFAIK Scala doesnt have a good API test framework like this: https://rest-assured.io/
unless someone here writes one. OTOH you can use rest assured with Kotlin. Kotlin seems to have alot better interop with existing java libraries.


There's a pretty good choice for all the people here saying they want jvm: CLOJURE

1. its a lisp, which floss and /g/ people love (scheme/cl)
2. Its more "purely" functional than Scala
3. It has way simpler syntax than Java or any other non lisp language since knowing () is literally 80% of the battle.
4. It has java library interop which is way easier than any other jvm lang other than maybe kotlin
5. It's a dead simple and a hellofa lot less big brained than scala, makes FP super easy for mere morals
6. Development cycle is faster due to it being dynamic, but still gets the benefit of AOT byetcode performance, once you're done developing/using the repl you can compile it to bytecode for production
7. No complex type hierarchies
8. Tooling is pretty good
9. No OOP option or object-functional, FP is literally forced.
10. Typical clojure style roughly corresponds to ML/OCaml with LISP syntax/expressions + hygienic macros, so you have to really TRYing to not write idiomatic code.
11. Good concurrency model (STM)

If you're writing in a domain where correctness is necessary (finance, embedded software) then static typing is a must. But for an imageboard? pfffff

Clojure is a no brainer, the only problem is that it's obscure, but trust me, when the entirety of syntax you have to learn is () most people can catch on pretty dang quick. Well ofc there are also vectors which use square brackets, and {} for edn, etc. but thats not that big a deal so maybe () is 80-90% of syntax rather than 100% like with other lisps. Still extremely simple. and the best part is you don't have to be some guy with a PHD in category theory.


How would this imageboard be marketed?


Through a marketing department with merchandise deals with sports clubs and Adidas and rappers


Anime girl mascot


OTOH why shouldn't PHP be used?

If you want your imageboard to have mass adoption, maybe it should use the language every other IB uses? The vast majority of people setting up an IB are amateurs not java corporate devs let alone XYZfunctormonad FP wizards.

If you make it in PHP you've made it in a language they already understand and can fix, maintain, easily, rather than forcing them to learn a new language.


Who's to say someone knows PHP? You're being very presumptive


I checked today and leftypol seems to be cached rapidly, what is the decision making process that decides if a website is to be actively monitored and cached?
It's a very simple language to the int anyone can pick it up very easily with marginal experience programming.


>It's a very simple language to the (po)int(?) anyone can pick it up very easily with marginal experience programming.
Really? If you wanted to, say, implement a feature where videos are automatically converted into webm's, would it be faster for a person to learn how to do that in PHP compared to another language?


I would say so I only program casually but I guess you would only be using exec to run ffmpeg against the file to make a new file in this instance and it would be a simple task regardless for most any language.


yes, most php based imageboards convert using third party command line tools like ffmpeg, imagemagick, etc.


If we were to use PHP, what framework would it be written in? Codeigniter, laravel, slim, or symphony? Or something more obscure like cake/yii/phalcon/etc.

And would it use server side or a front end? for the most part its convention to use vue.js with php backends


Futaba-esque imageboards are a paradigm that needs to be dropped
4chan's legacy should be forgotten, not revived


>500 posts
>literally no good ideas or posts

starting to think imageboards are a failed path


They are, like I said >>18142
The only people who begin to care about imageboards anymore are morbidly curious tourists and obsessed reactionaries, the first of which couldn't care enough to design newer software, and the second of which don't tend to have any real skills or talents or any drive for anything
Current imageboard maintainers like leftypol's devs will only go so far as to do small maintenance and feature additions to an existing software base

Also non-tech-wise:
Imageboards just suck
4chan always sucked even early on
It helped drain the mystery out of the internet
4chan and its main English language predecessor, Something Awful, more than anything else helped create and propagate the mythology of the implied straight white male internet dweller, with a repetitive "meme" vocabulary as a system of signals for it
Even to this day, stuff like QAnon and soyjaks spread throughout the Internet like a miasma wherever people tolerate it, taking up as much space as possible, killing off any discourse remotely interesting or novel

So, yeah
It's a dying space that was never really any good in the first place


what specifically is wrong with the format though? You've described the type of people who use/used them, but is it inherent to the medium?


As it stands, every post is just a single self-contained <div> with its own media attachments and whatnot, which lets drive-by posts happen pretty easily, as well as dump threads, passive-aggressive responses that don't directly reply to whatever they're addressing, etc
Threads need to be "smarter"
They need to have coherent semantic links in some way


what's not good enough about threads and >> links that they dont qualify as coherent semantic links?

To me the fact that every post is its own thing just makes it easier to visually identify individual posts. It's not very different from any other social media or chat (except for threaded/tree structured ones, which tbh just make it hard to see connected comments, only thing that makes it usable is collapsibility). I doubt the underlying html actually encourages drive-by posting and dumps, just appending the posts to the html in one div would allow the same exact thing with an uglier interface.


>They need to have coherent semantic links in some way
so basically wikipedia then?


No, not basically wikipedia then


>what's not good enough about threads and >> links that they dont qualify as coherent semantic links?
Read any thread on any imageboard right now


reddit comes to mind weirdly


explain what you'd mean by semantic links. Do you mean making it a graph type social network?


I have to learn Go. Might make a pet imageboard project in Go and drop it before I even finish 10% of it.

The category theory stuff is overrated. You really don't need to know much. Just practice. At least with scala.

In fact, after doing Scala for 2 years, I'll conclude that category abstraction libraries like Cats and CatsIO are actively harmful in actually using said abstractions. Either the language was not made to accommodate these category theory abstractions, or the Cats/CatsIO library sucks balls and was implemented wrong. I have more gripes with Scala 2, but they are too abstract to explain, unless you've had to wrestle with the compiler and type checker. Shit like "tagless final" for libraries sounds really cool, but whomever is still pushing that shit today is the devil. Namely, doobie fucking sucks, but it's one of the most used database libraries.

Anyways, my point is that category theory is not necessary nor necessarily useful to use scala, including it's functional abstraction libraries.

Clojure sounds nice. I haven't worked with a big system lisp, I've only done small functions and such. I've heard writing code in a Lisp is a pleasurable experience.
So what do you propose?

There's some interesting imageboard concepts. There's a 3D imageboard/forum space. It's pretty weird. boorus are also considered imageboards. Reddit-style, or digg style forums aren't really imageboards. "bb" forums I guess are imageboards, assuming image posting is enabled, and are also the OG forums after usenet and mailing lists. I want to think that the format of imageboards and BB forums works for what they are used for. Namely sequential discussion. And reddit-style/HN-style forums are good for mainly one-off comments surrounding a specific OP.

I wonder if there's a way to get the best "features" of both platforms, and come up with a unique forum experience. How would this look?



File: 1678745101272.png (236.13 KB, 751x683, ClipboardImage.png)

>>18795 (me)
Besides reddit, another very popular platform is fbi.gov. As a non-discord user, I tend to underestimate the importance of the platform.

A good community nowadays has way less expectations of privacy than the internet in the early 00s and 10s. Interactivity, chat, quick response, self-moderation, hierarchy of moderation (drama), drama, lightweight "channels", etc.

One complaint I read about old BB style forums is that they're hard to parse. Part of it is due to the shit reply system. Another part is due to the layout of blocks per post, whereas fbi.gov has a more compressed view. There's also the ability to "spam" comments. On imageboards, each post is a huge block.
Thanks. I'll definitely check it out. Might contribute even. My goal is mostly to learn Go, not to build anything. Unfortunately I don't have much time to spare to learning anyways.


gochan's db schema was way too complicated IMO


Disc0rd is too insular, which causes it have very petty in-group dynamics (including grooming) and the most stilted conversations you could ever have. It was designed to be Slack but for gaming groups, not a general social platform.


what does everyone think of the first pic for this DB? is schema in this post developed enough to use?


Well, I'll give the same opinion I gave on that post, it's still to immature to be used. But you can begin developing and build out the schema as you go along. It's actually a common practice in many places. Ideally you would sketch out a database with as much domain knowledge as possible, but crucial parts of the domain are usually discovered as the software is built, so changing the database mid development is almost always inevitable.

Unique IPs: 27

[Return][Go to top] [Catalog] | [Home][Post a Reply]
Delete Post [ ]
[ home / rules / faq ] [ overboard / sfw / alt ] [ leftypol / siberia / hobby / tech / edu / games / anime / music / draw / AKM ] [ meta / roulette ] [ cytube / git ] [ GET / ref / marx / booru / zine ]