Blazechan Thread #2: Electric Boogaloo

Testing instance: blaze.nextchan.org/
Repo: gitgud.io/m712/blazechan/
Current status: Beta v0.1.0, v0.1.1 being released today.

Please post suggestions/bugs here.

Other urls found in this thread:

blazechan.org/~videogames/
github.com/andreaferretti/on-rust-and-nim/blob/master/README.md
github.com/andreaferretti/kmeans/blob/935b8966d4fe0d4854d3d69ec0fbfb4dd69a3fd1/rust/src/point/mod.rs#L30-L39
github.com/andreaferretti/kmeans/blob/master/nim/algo.nim#L11-L12
doc.rust-lang.org/std/ops/trait.Add.html
github.com/andreaferretti/kmeans/blob/master/rust/src/point.rs#L30
github.com/kraih/mojo
ghostbin.com/paste/8bfks
8ch.net/log.php?board=pol
cpan.org/authors/id/S/SR/SRI/Mojolicious-7.31.tar.gz
web.archive.org/web/20121003095610/http://tinyboard.org/docs/?p=Your_request_looks_automated
github.com/petersanchez/django-esi
gitgud.io/m712/blazechan/commit/f76f4e8cd681ec44c7df7abf72192bb46fe65f9a#2a8a4ab5e4f6f9b0bf69e22296edd33d2157ec7a_40_42
github.com/torchbox/django-libsass
varnish.nextchan.org/.
github.com/django-compressor/django-compressor/commit/693464a1c278855747c1b5c96c48dcdd4c5f9cab
youtu.be/uKfKtXYLG78
8ch.net/tech/res/735410.html#q789706
blaze.nextchan.org/
twitter.com/SFWRedditVideos

ban 4chan board names

How about turning 4chan board names into metaboards? Then we can have the legacy board names without any central authority.

oh shit that's my post

if by metaboards you mean multiboards or overboards, sure

It was the only thread which wasn't my spam or a shitpost, lel

I'm thinking something like this: Administrators can create "metaboards" (multiboards focused around a certain topic) and board owners can add their board to metaboards (with a low limit like 2 or 3?). Or maybe tags can be metaboards? (something like blazechan.org/~videogames/ could have Holla Forums, /vg/ and so on and so forth.)

kind of like the promisedchan idea?

No, PromisedChan is something else I think. I still don't entirely understand how it works, though I'll definitely give it a shot once I complete the regular Blazechan backend and frontend.

Bump. Version 0.1.1 released.

PLS EXPLAIN

What is the file size limit?

They're vertical, not tree-style. Go to qute:settings and set the tab position to left, if I remember correctly.

is this the browser that is nto yet version one?
does it support firefox add-ons?

It's not yet version 1, but you could be thinking of another browser that's not yet version 1.

It doesn't support Firefox extensions and it never will, since it's not based on Firefox. It's possible but unlikely that it will support Chromium extensions at some point in the far away future, because it's switching over to Blink.

would be nice to get some ublock origin and umatrix

bump
your site is misconfigured, brah

Bump, working on a big commit to bring multiple file uploads. I've already integrated dropzone into the post form but it's currently broken.


There's no limit currently but nginx will drop the connection at >4MB.

write them yourself; adblock is easy-ish at least if the APIs are there

Bump. Multiple file uploads are done and working. Only the CSS needs fixing. (Haven't taken a look at NoJS uploads yet though.)

Into the trash it goes.

What is wrong with it? I appreciate any suggestions.

Comment box could use a little work.

Bump. Dropzone file uploads are done as well as a proper form error handling system. Going to bump version to 0.2.0 today.


Check it out now. I made it like the current Infinity postbox.

Bump, version v0.2.0 has been released. master up-to-date.

Some posts seem deleted because Alacrity shat itself, also bump.

Halfway through moderation tools. Here's some screenshots.

Part 2

...

what makes this better than all the other failed imageboard engines?

gay and shit

It's solving things correctly, i.e. it's not LynxChan.

Not sure why that's done, but maybe something with sessions/XSS I'd bet. It's probably an easy fix to just remove it. But as for why it's done, not sure.
Say, do autism browsers use the Origin header? Or is that just Chrome.

great explanation fagtron

Can you post the actual page? It's probably CSRF acting up but that should be using input fields.

I am trying to listen to what people suggest instead of insisting "it's the way it's supposed to be" like Sergio "html is a standard" Lynx.

who are you even? cuckbones?

Doesn't look like it, he'd have written it in Ruby and given up on it months ago.
Also Holla Forums is shitting itself under load, kinda hilarious.

Doesn't look like it, he'd have written it in Ruby and given up on it months ago.
lmao, nice job gookmonkey

Doesn't look like it, he'd have written it in Ruby and given up on it months ago.
lmao, nice job gookmonkey

No. I'm not affiliated with Endchan. I am the administrator of Nextchan.

kek cuckmonkey

I enabled CSRF_USE_SESSIONS so you should be able to post without cookies now. Can you try and reply back?

can you rewrite blazechan in rust?

+1. you should look into the tokio project.

If I wanted a verbose language I'd use Java. If I wanted a close-to-metal language I'd use C++. Rust is jack of both trades but master of none.

ok kiddo. im currently busy writing low level shit in my memory and thread safe language. but you gave me a good laugh. upboated

Instead you chose python which is a jack of none and master of shit
Well done

I'd just like to interject for moment. What you're refering to as Python, is in fact, Django/Python...

nope still python

Nice superiority complex. I know how to write C. I've translated algorithms to C. Doesn't mean I'll use fucking C everywhere. I chose Python because I'm familiar with it and because it's a HLL.
Please don't use the borrowck as an argument for Rust ever again.

Mate, python has its obvious flaws but it's still the sanest choice IMO. It's easy to write it. I know it's bloated and slow but so is any scripting language.

w-what about perl

kid confirmed
not an argument
tip top kek

Why not use Go? It was designed exactly for this kind of work.

lol no generics.
rust is memory safe, blazingly fast and you can fearlessly write multithreaded code.

I don't like its syntax, and I don't know whether there're good web frameworks for it. I'm using a web framework because I don't want the codebase to be turning to spaghetti. (See infinity's code for an example.)

I've checked out Go, it's cool but I didn't have the time to learn it yet. However I've got my eyes on Nim for some time, the language seems to be exactly what I like. The DSL part especially intrigues me. Think of something like this (which is possible in Nim, I have created a proof of concept to check whether this could be done):
route "^(?P[a-zA-Z0-9]{1,16})$": return HttpResponse.OK("test page")

not an argument
not an argument
still not an argument

The syntax, the verbosity and the community kills it for me. See this example for operator overloading in Nim vs. Rust[1]:
Rust[2]:
impl Add for Point { type Output = Point; fn add(self, other: Point) -> Point { let Point(a, b) = self; let Point(c, d) = other; Point(a + c, b + d) }}
Nim[3]:
proc `+`(p, q: Point): Point {.noInit.} = (p.x + q.x, p.y + q.y)
It's verbose. As I said in , if I wanted a verbose language I'd use Java.
[1]: github.com/andreaferretti/on-rust-and-nim/blob/master/README.md
[2]: github.com/andreaferretti/kmeans/blob/935b8966d4fe0d4854d3d69ec0fbfb4dd69a3fd1/rust/src/point/mod.rs#L30-L39
[3]: github.com/andreaferretti/kmeans/blob/master/nim/algo.nim#L11-L12

>[1]: github.com/andreaferretti/on-rust-and-nim/blob/master/README.md
v0.12.0

>[2]: github.com/andreaferretti/kmeans/blob/935b8966d4fe0d4854d3d69ec0fbfb4dd69a3fd1/rust/src/point/mod.rs#L30-L39
what fucking retard wrote this? why is he destructuring the points first?
doc.rust-lang.org/std/ops/trait.Add.html

impl Add for Point { type Output = Point; fn add(self, other: Point) -> Point { Point(self.0 + other.0, self.1 + other.1) }}

just noticed:
kek. that explains it

oh btw good job linking to an old version of the code.
github.com/andreaferretti/kmeans/blob/master/rust/src/point.rs#L30
fucking kill yourself faggot

github.com/kraih/mojo

Python is fine, the vast majority of traffic is lurkers.
Premature optimization is masturbation, and if you need more SPEED(tm) than a document cache provides for a fucking web page with comments on it, unless you're at GOOGLE SCALE(tm) with all the DYNAMIC CONTENT(tm) that it entails, you fucked up somewhere.

...

No, it's just about premature optimization being masturbation.
And friendly reminder that even at GOOGLE SCALE(tm) everything that hasn't been rewritten in C++ or Golang is still Python.

Google, like Facebook, uses C++ for their backends. No Python, now go hiss somewhere else.

Ignoring the fact that you sort of just repeated what I said, "No Python" is dead wrong. From Google's own sources, their production languages are C++, Python, Golang and Java. Those are the only languages they are allowed to deploy to production. Internally, they use many more, but that's an aside.
Fuck off, language shitter. You're not contributing anything to this thread other than the fact that you're autistic. Go make another Linux distro thread or something.

That's rich coming from someone who also does not contribute anything to the thread and most likely can't even program lmao

You've already embarassed yourself by implying that Python is not used as a "backend" language at Google. Not that it matters, the point was not to make a comparison, the point was to make fun of your premature optimization fetish. You're obviously autistic, so go make a Linux distro thread and choke on my dick, faggot.

Keep replying you redditor

alright i was bored and i decided to rewrite this shitty rust version properly:
ghostbin.com/paste/8bfks
now this is actually idiomatic rust. about 5% faster too.

...

Just about sums up all rust users in this thread so far.

kys nigger.

user my goal was not to make it faster but to rewrite it in idiomtic rust.
well that is your opinion
it does what the original does

I'd suggest not having confirmed pedophiles, antifa and goons involved in the project, for one.
>>>Holla Forums9949900

But then we won't have anyone working on the project!

OP please keep Holla Forumslution out of your chan's development and existence.


Go back to your hugbox, filthy Holla Forumsyp, and NEVER come out of there again.

I don't get it, what is this supposed to be? Some /polk/ anons apparently dumped redpill images on Blazechan (presumably to test it out), then imkampfy claimed it was Josh's doing? (I really don't know.)

Wait, imkikey is involved with nextchan? Fucking dropped.

Lol, no.

This. Look at /sudo/ and tell me letting Holla Forums drama into the site discussion is a good idea.

No, he's shilling in overtime against it.

>hangs out with based anti-racists and pedophiles
lol

Be sure to ban evade another hundred times on Holla Forums btw, I'm sure anons are enjoying you getting all those TOR nodes banned.

no u :^)
who?

Yeah, you're a moron who doesn't know what he's talking about.
Why would you even want to post on that shithole anyways? The mods have embarassed themselves more and more.

You have to go back
>>>Holla Forums

It's just the insane ramblings of an IRC circlejerk of Holla Forums mods.
Best just to ignore it, or laugh at it, take your pick.
There's nothing to really get about their insanity, that's what makes them insane.

i went to check the board log of Holla Forums and it is fucking hilarious
8ch.net/log.php?board=pol
the mod really is insane

off-topic though, best to just ignore it and let them burn their own house down

Any plans for NNTPchan integration OP?
I like your UI so far but we need to push the technology forward instead of just making it pretty. Shitmods and shitadmins have ruined too many boards.

What's even funnier about that log is it shows Jim (YogaPig) deleting posts talking about his credit card fuckup.
He just deleted it within the last two hours, for some reason.

There's a lot of imageboards made in Perl. You could write the next one. But don't forget about the -T switch, and always give minimum privileges and deny everything by default. Best to stick with core as much as possible, and only use a small number of CPAN modules, otherwise dependency shit gets out of hand quickly, and anyway many are probably not designed with security in mind. I'm not a fan of large frameworks either. But specific purpose modules like DBI are very handy.

If you're living under a rock and only know Catalyst, sure.
~ $ cpanm --showdeps Mojolicious--> Working on MojoliciousFetching cpan.org/authors/id/S/SR/SRI/Mojolicious-7.31.tar.gz ... OKConfiguring Mojolicious-7.31 ... OKExtUtils::MakeMaker~6.58IO::Socket::IP~0.37ExtUtils::MakeMakerPod::Simple~3.09JSON::PP~2.27103perl~5.010001Time::Local~1.2

All of these are CORE dependencies.

Bumping thread.
I finished board logs and was working on a ban page but I accidentally wiped out some of code, so I'm currently working on rewriting all that. I'll commit everything once they are done.

Do you keep a roadmap or a public todo list or anything?

Not sure what you mean. I install base OpenBSD system. It has Perl, and only those modules that are included in main Perl distribution. I don't want other modules at all, except maybe in special cases like if I really need to use a database, then ok I'll install p5-DBI (and a DBD) via the package manager. But I don't want to play with CPAN shell. Whatever it generates is not well tested (unit tests only, no integration or anything else, but even cpan unit tests are often just left as "broken" for various platforms). It can decide to upgrade things because installing the Foo needs Bar version higher than the one that comes with my Perl. I don't want that. And besides, some modules just plain don't build right unless you happen to run common GNU/Linux on x86, with the same gcc version used by module author (for modules or deps that aren't pure Perl).
I also had to maintain same Perl code on wildly different types of hardware running different Unix or even various Windows (even going as far back as Win98), and it was not pleasant at all when deviating from the main Perl. I learned to minimize dependecies because it minimized the problems.

Suggestions: Continue copying the Infinity Next front-end as you are doing now. Add support for all the options provided by vichan (think JavaScript) and implement anti-spam features, like Captcha. (Ideally, use fonts from the Laravel captcha).

Anti-Spam features I'd like to see:
Max threads per hour
Captcha
Tinyboard-Style antispam
Other things that will piss off bots.

Thank you for developing another piece of imageboard software. I appreciate your work.

Not really, other than the thing in README.md which is outdated.

That's what I plan to do.
Added to todo.
?
Like what?
np I assume this is not said ironically

Not sure how this would be effective by today's standards, but here is the documentation for Tinyboard's antispam:

web.archive.org/web/20121003095610/http://tinyboard.org/docs/?p=Your_request_looks_automated

I'm not sure, actually... Another thing that popped into my head was cookie-based banning.

It wasn't. I really appreciate everyone who works on imageboard software -- there isn't enough of it.

>web.archive.org/web/20121003095610/http://tinyboard.org/docs/?p=Your_request_looks_automated
This is interesting, however a bit sophisticated. Should I implement this? I was thinking of adding cache-based flood detection like Next does, a captcha and checking for linkspam and checking if the last post in the thread is the same post (preventing doubleposting).
How?

Set cookie on user. Unless the user clears their cookies/cache before switching their IP to ban evade, they would still be banned.

All good features.

That's trivial to bypass, even your average Holla Forums user can do that.

I'll be releasing v0.3.0 later today, which brings (incomplete) moderation actions and a lot of smaller fixes.

Traceback (most recent call last): File "manage.py", line 4, in import dotenvImportError: No module named 'dotenv'
When running python3 manage.py migrate
Am I doing something wrong, or am I just too new to python?

you need the module dotenv dude

Installed it, tried uninstalling and removing python-dotenv, dotenv, and djang-dotenv. I played around with just about every combination, always leads me to this error:

Traceback (most recent call last): File "manage.py", line 7, in dotenv.read_dotenv()AttributeError: module 'dotenv' has no attribute 'read_dotenv'

anything that imkampfy and his irc friends aren't involved with they say it's run by "goons" and start spamming FUD about it.

You're new to python
Try this:
virtualenv venv
. venv/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver

Never install anything with system privileges using python-pip. If you must install a package outside of a virtualenv, and it's not in your distros repository, simply install as your user:
pip install --user package

Python is sane so it should be installed to .local/bin and if it's actually a tool it should be in your path to use.

The readme hasn't been updated in ages. You need to manually create a board and its settings and the site settings via the shell currently. When I work on board creation this will be automated.

I'm just telling him how to set up a python environment, he seemed confused.
Are you using a singleton (one DB row) for site settings? Just curious, haven't looked at your project for a while.

I'm doing Infinity Next-style options, that is, a table for options with a key, value, type, an is_global bool, and a board (WHEN is_global=f). Each row represents a setting.

Bump, v0.3.0 is almost ready. I'm checking everything and then releasing it. Here's a teaser for the ban page.

v0.3.0 has just been pushed to the repo.

Nice!
May want to update the "VERSION" file

Woops, forgot that. Thanks.

So it's easily added to without migrations. I see.
Looks nice.

Bump. Pushed 17 commits to master. Pagination has been added to the board index, and it no longer shows the entire board catalog in one page anymore. I also improved caching a bit.

I see. I was never able to get it working, I'll wait until either I'm more experienced with Python or until the imageboard software matures to run it myself. I'll defiantly be keeping eyes on it though, because this is very interesting.


Thank you. Very helpful.

Bump. Version 0.4.0 released. This is mainly a performance update, because perviously Blazechan didn't prefetch anything from the database, which caused a metric fuckton of database queries from the template (for loops). I added a custom QuerySet with a method to easily prefetch a lot of things required to render a post from the database. I also started using Django's template and view caches. The template cache allows me to granularly control which part of the template gets cached (though it's kind of a hack, even though I set timeout to 0 it still tries to save it to the cache). Most of board index, threads, index page, board list, and overboard is now cached. It also invalidates when a new post is made automatically (template cache parameters).

You should play with this:
github.com/petersanchez/django-esi

Bump. Released version 0.4.1 released. This release removes template caching as it was not really useful. I was able to optimize database queries from about 90 to 20 (!!!) on almost every page. Going to work on board assets now (banners etc.).


Thank you. I decided to forfeit template caching for now, as Blazechan is very optimized at the moment (19 queries on board index).

I'm up after 3 hours of sleep, give me a break.

real men work 37 hour shifts

Why so many? Ideally it should only be one query.

Doesn't that just mean you're Josh then?

HURRDURR ME POST GIF 2015!!!!!!! FUNEEY

Probably fixed with prefetch_related, but then again I'm not sure what's queries are happening in the first place. Maybe I'll get the time one of these days to work on this shit.

The queries can't really be prevented. The 19 queries include every single part of the board index. It does prefetch_related which pulls the appropiate stuff from every table then joins it in Python.

Bump. I'm going to be releasing v0.5.0 soon. A few changes.
- Board assets are half complete. You can upload banners to the board currently. The panel page is really half-assed at the moment, though. I plan on improving it.
- Fixed some bugs with the overcatalog.
- Added titles to pages. It doesn't show the site name only anymore. It shows the thread name/board like in Infinity.
- Added Last-Modified header support to over{board,catalog} and board/catalog/thread pages. It checks based on either last created post sitewide (overboard) or last created post on board. This is still incomplete and does not consider a few things like posts being deleted/banned.
- Some more I don't remember. Check the git commit log to see everything I did.

gitgud.io/m712/blazechan/commit/f76f4e8cd681ec44c7df7abf72192bb46fe65f9a#2a8a4ab5e4f6f9b0bf69e22296edd33d2157ec7a_40_42
you dun goofed boiii
also why dont you use blake2b instead of sha256?

wew lad.

Blazechan isn't installed on his new server yet.

I set up Blazechan again. It should be working fine.

Bump. After a long break, I released v0.5.0, and v0.5.1 shortly after that. This update brings board assets, and some new styling options (pinktext). There is also a lot of backend-wise improvements and refactoring.

Holy shit, this thread is still alive. Bump.
I'm in the progress of currently migrating all stylesheets of Blazechan to SCSS. I'll be releasing 0.6.0 once that and a few other things are done. So far only panel is left.
Also, go check out the new postbox. I designed it after the Infinity Next postbox. I'm thinking of doing a switch in the settings to switch between the Infinity NoJS postbox and the new postbox. Pic related is the current JS version.

You best be using libsass and not ruby, nigger.

I'm using gulpfiles, so node (it's the only part of Blazechan that uses node, so don't worry). I am not sure whether that uses libsass or ruby sass, though.

Just use django-compressor. It has an offline mode if you think the cache check is bloat.
github.com/torchbox/django-libsass

With django libsass+compressor you can even do cool things like this:
import sassdef board_icon_map(): from .models import Board icons = Board.objects.all().values_list('board', 'icon') return sass.SassMap(icons)settings.py:from .sass import board_icon_map...LIBSASS_CUSTOM_FUNCTIONS = { 'icons': board_icon_map}

Of course, I would probably not expose libsass to user editable values like this, especially on a web application that attracts hostile users, but I don't think there's any harm in using it for values that are generated by the framework itself, for example a FileField url.

One thing that's a bitch though you're going to use this for something that's supposed to be a number from the database: you basically have to cast the string from a values list to a sass.SassNumber type for libsass to not shit its pants.

Like so:
counter = [(i[0], sass.SassNumber(i[1], u'')) for i in counter]

I've eliminated javascript carousels for fun using this and a SCSS mixin.

Gulp was used with Next because that's what Laravel did, and it's pretty bad compared to something like compressor.

also
from django.conf import settingsfrom django.core.cache import cachesfrom django.core.management.base import BaseCommand, CommandErrorclass Command(BaseCommand): def handle(self, *args, **options): try: compressor_cache = caches[settings.COMPRESS_CACHE_BACKEND] compressor_cache.clear() except: raise CommandError('Invalidation error') self.stdout.write(self.style.SUCCESS('Successfull invalidation'))

Seems neat. I'll take a look at compressor.

I've updated the postbox. I'll probably be releasing version 0.6.0 in a few hours. The postbox has already been pushed to master, but it has a few errors. This is the current one, which is much better. Try it out for yourself.

Whew.
After a 6 hour coding marathon (It's 2 AM here now), I finally finished board creation and user creation. Pics related. I'm going to sleep now. I'm going to be checking whether anything else needs to be fixed tomorrow, and then release 0.7.0.

Is this the true power of infinity?

Ebin. Gonna fix it firs thing tomorrow.

Bump. Version 0.7.0 has been released.
- Board and user creation is now possible.
- A bunch of bugs are fixed.


Fixed.

these threads are allowed but lynxchan ones get deleted

mods are kikes

Good

The lynxchan ones I saw are mainly deleted because they usually devolve into a shitflinging match between Lynx and other anons.

Version 0.7.1 was released yesterday. It migrated the SCSS preprocessing to django-compressor.

I don't think I've deleted any Lynxchan threads. Do you have archives of deleted Lynxchan threads? It should show in the log.

This. Ring is a cuckold mod. He's deleting LynxChan threads because m712 guranteed a volunteer position for him on next/tech/ :^)

First off, my Nextchan thread was deleted back in October because it was deemed "not technology", so there goes your bias argument, because if your thesis actually held, then that thread wouldn't be deleted either. Secondly, this thread is purely focused on updates for the development of Blazechan, save for a few derailings above. Thirdly, kill yourself tripfag. At least there's a reason I'm tripfagging in this thread, but you are doing it just because you're an attention whore.

...

...

Bump. Version 0.8.0 is going to be released after I finish a few more things. This update really helps un-spaghettify the JS code. The JS is currently live on the site, I'm currently working on the JS settings menu.

Bump. Version 0.8.0 released. This modularizes the Javascript of Blazechan, allowing new plugins/widgets to be developed for Blazechan and added seamlessly. Take a look at master under frontend/static/js/. I tried to document as much of the JS as possible, but there's still much to be documented and I am really tired. I'll work on the documentation tomorrow. Ciao.

why not rust -> wasm?

Meme answer: rust is shit lol
Real answer: rust is shit lol

Take a look at /autisticautism/ on the live demo.
The post numbers are all shit.

more money for me :^)

tf help pls fix

What page do you have the error on? The exact URL?

Really weird, it's like the database reset or some shit. total_posts on /autisticautism/ shows 3 posts, while there's clearly 4. Something's wrong.

Bump. I added documentation about installation of Blazechan and how to create a widget for the JS API.

for awhile the 5th post number was showing as 3.

wassums don't work in netsurf

I manually edited the database to fix it for now. I'll make it unique_together with the board ID to prevent that from happening again (the site will return Internal Server Error then).

Bumping so the thread stays alive. I'm kind of burned out so I'm taking a break from Blazechan for a couple weeks.

Current remaining stuff:
- About 70% of the panel needs to be done, a lot of things are missing.
- FFmpeg support for video/audio types.
- JS for usability improvements.
- Global moderation (delete/ban on all boards etc.)

Bump. Major things happened.

- nextchan.org now hosts a Blazechan instance. I have explained my reasoning on the frontpage.
- Varnish is partially working at varnish.nextchan.org/. Posting purges the cache for the necessary board pages and moderation actions are working but not everything is very concrete and board actions still don't do any purging.
- I switched to a feature branch-based development system. This helps me quickly develop things that I want and store them for later when I can merge them into master.

...

???
???

lol kill yourself

pls fix

No one cares about lynxchan, faggot. Lynx has proven that he's a retard time and time again. The fact that you care about lynxchan shows that you are a retarded subhuman with an IQ of 70.

As for whatever antifa bullshit, that's also a result of your intelligence, or lack thereof.

If you think that you're somehow hurting the software by implying this, or making anyone mad, this is also a result of you being a retarded subhuman. No one cares, faggot.


Implement themes yourself, there's still a lot of work to be done elsewhere on other shit as far as I can see.
Compressor allows that sort of scenario for multiple 'themes' to be generated.
github.com/django-compressor/django-compressor/commit/693464a1c278855747c1b5c96c48dcdd4c5f9cab

Nice idpol there, fag.

It's a dogshit architecture that made the same mistakes as vichan did, except with nodejs. Go fuck youself.

next time you post updates in here just sage the thread

Themes are QoL so kinda a far away thing. It's not really hard but I am working on things like Varnish support and sticky/locked threads right now.

not an argument

But I wanna get people to see my updates :^(
Also the thread was on page 10.

You're right about themes, anyone wanting them can do it themselves with browser extensions. Be nice and put plenty of metadata in the HTML for those people though.

Sticky/locked threads? That's like a 2 minute job. If it isn't then you've overcomplicated your shit.

You're right, it's pretty easy to do. The hard part is making it work with Varnish because every action modifies a different set of pages which need to be purged. I'm halfway through the Varnish support, you can see the development on the 'varnish' branch.

Also, I wanted some peer review on this idea: I want to create a "Contract"-like system, i.e. a PostContract for implementing a Post. The reason I want to do this is because I want to decouple the panel, backend and frontend.
To elaborate on this idea for a bit, let's say I have a PostContract, which has a get_id() function. Default backend will return the post ID on board, and Overchan/NNTPchan backend will return the hash post ID.
Thoughts?

Why not write it in C?

Why not write it in Erlang?

"Why not write $thing_with_string_manipulation in C?"

I don't know it.

it is good. very good in fact. watch this video
youtu.be/uKfKtXYLG78

I don't get why you don't just have post_id and hash_id in the model. Where the nntpchan backend will simply return hash_id in whatever representation. Am I missing something?
If you think it's right, go for it. But it seems to me that you're overcomplicating it with dynamic functions that have further overhead with python versus simply using a stored representation, and then only selecting that value when you go to serve the representation in an NNTPchan context.

Whatever makes sense, really.

What string manipulation do you need? You already have printf for templating.

And gets for parsing amirite?

printf is safe.

printf is memory unsafe

You're supposed to control the format strings, dingus.

not an argument? it still is memory unsafe

Sticky/locked threads are done now. Also npm dependencies are automatically pulled in to static/ by django-npm now.
It's not too far away. I'm working on a few more backend things like a better asset management system (UI + backend), after which I will focus on backend. I'm alternating between frontend and backend to not get burned out.

focus on frontend
Fuck I'm tired. It's 4AM.

Given a controlled format string, no. Why would it be?

printf is memory unsafe.

...

I didn't move the goalposts, I said this back in . You should use printf("%s", "string") instead of printf("string"), this is common knowledge

What else is it you want?

you said that printf is safe. i said that it is memory unsafe. then came a whole lot of no argument from you.

Printf is memory safe given a controlled format string. This is the common usage of printf. It's like claiming Rust is unsafe because you can (and do, so it's actually even worse) use unsafe mode.

rust's eqivalent to printf is memory safe. printf is memory unsafe. controlling the format string is not enough.

How the fuck do you read data with printf?

I'll just write a program in C that fucks with the memory of your Rust program.

Will your OS permit such a thing?

Proofs?

You don't, printf prints data. Use getline. However, a CGI script doesn't read anything, it gets it as enviroment variables.

Update. Version v0.9.0 was released, I am now working on the frontend. Image expanding and cite hovering work inside the thread now, working on just highlighting the post if the cite is visible.

add a proof of work system. i fucking hate captchas

Could you add better support for non-js users?
>replace a href=#POSTID onclick=something with a href=p: target="a" onclick=something
>in the backend, replace \na: with \n>>
(8ch doesn't like so you'll have to imagine them)

bad gateway general

Not hard to do. I will work on it.
>>replace a href=#POSTID onclick=something with a href=p: target="a" onclick=something
>>in the backend, replace \na: with \n>>
This seems to be really convoluted. Do we really need this? And I don't even know what this does.
Quick reply box works without JS mostly but there are style incompatibilities between it and the NoJS box (i.e. capcode goes on the left of reply button, labels on the left become placeholders, etc.). I'd have to duplicate code for that.
>(8ch doesn't like so you'll have to imagine them)
I can see .


blaze.nextchan.org is dead. The main site uses Blazechan. It might go down sometimes but other than that it should be mostly up. dev.nextchan.org might go down more frequently, though.


How would it work, exactly?

If you follow all these suggestions including the really autistic ones, your board will end up like pic related.

You mean, it will remain culturally relevant long enough that newfags born after it was created will make use of it?

A reddit-tier meme image is relevant in the sense that people still wheel out anti-16chan FUD copypasta in nextchan threads thinking they're relevant

It makes it so that when you drag a post ID into the text field, you get the post ID and not a link to something (you use "No. " for post link)
Instead of
8ch.net/tech/res/735410.html#q789706
You get
p:789706
This is then changed on the server side to


And the iframe on the bottom is just to make the link not do anything without using JS to disable it.

Also you can use some html5 element to use regular labels instead of placeholders, don't remember the name

>Testing instance: blaze.nextchan.org/

502 Bad Gateway

replace blaze with dev.

Do you have personal contacts, dev?
I would like to talk to you a bit...

I just opened up adminnextchanorg, it might take a bit for the DNS records to propagate so if you can't send mail there wait up to 24 hours. Feel free to send any questions and/or nudes.

Any progress blazeanon?

I'm busy nowadays IRL, so not much progress for a few days. Working on interactive boardlist in my free time.

Bumping because the thread is on page 15. Not much development happened lately; I'm taking a break. I'll come back in full force after a few days.

If it was on page 15, it probably belong there.

fuck yourself larper. im actually interested in blazechon.
i would really prefer an imageboard written in rust though.

I just had an idea. How about adding a "Link Thread" feature to a thread, which allows you to share a thread between boards?
For example, say thread X concerns both Holla Forums and Holla Forums. If board vols from both boards agree to link that thread, the thread would show up on both boards.

Crosslinks are already a thing