[–]▶ No.944760>>955572 [Watch Thread][Show All Posts]
Blazechan
The blazing fast imageboard engine
---
Current version: v0.12.0
Changelog
The "No update since 'Smas" Update
Many, many things changed.
- The panel application was merged into the frontend. This marks the
beginning of the major refactor that will happen to Blazechan, making
its parts fully replacable.
- A new settings system has been created, which uses database-backed
setting schemas to control board and site settings.
- Many board settings were added. Some are currently non-functional,
but those are expected to be fixed within a few days.
- New capabilities were added to extensions which allows them to now
add their own board and site settings, and extensions can now hook
right before and after a post is created to hook their own database
models to posts.
- Reporting posts was added.
- Blazechan now uses Django 2.0.
- A new document caching system is used, which is application-level.
Varnish has been obsoleted and this new Redis-backed cache is used.
- Some unit tests were added to test the permission system. These will
be extended to test more of the software in the future.
- Thread Updates. This uses WebSocket channels to transfer updates in
realtime.
- A huge ton of bug fixes. Thanks to everyone who found them.
Upcoming Features
- Full Tor support, with .onion redirection
- Theming, User CSS and User JS support
- Purging old boards with no content
- User post deletion with password
- Possible IPFS caching of images.
Let's get this train rolling again, lads.
- m712
You can verify the above message at https://nextchan.org/.static/tech-blazechan-msg.txt , with the key 5C651718F47D3410A50590E10297E4EB514B1570
▶ No.944762
▶ No.944783>>944786 >>944787 >>944880 >>956055 >>959075
>uses python
it's shit
the only good imageboard engines are written in bare metal assembly
▶ No.944786
▶ No.944787
>>944783
It runs better than php
▶ No.944820>>944829
Anyone else getting a 502 bad gateway response?
▶ No.944829>>944833
>>944820
My VPS can't handle all the stuff contained in it, so Blazechan dies from time to time. I restarted it, should work now.
▶ No.944833
▶ No.944859>>946724
>Not using dietchan, written in 9000 lines of pure C.
https://gitgud.io/zuse/dietchan
▶ No.944860>>944862 >>946657
▶ No.944862>>944864
I just added an install script to Blazechan. It currently only works for Debian/Ubuntu because I need to look up package names for other distros, but that should be fixed fairly quickly.
>>944860
It hasn't really been announced anywhere yet, so not that I know of. It's still not complete, but I'm working on it after a few months of necessary break.
▶ No.944863>>944865
kek, you couldn't even make a front-end for mewch.
What makes you think you are anywhere capable of making a whole engine?
▶ No.944864
▶ No.944865>>944866
>>944863
The frontend is done, but had some issues. Mega rolled it early before enough testing was done. We'll put the frontend back after I fix the issues and it's tested.
▶ No.944866>>944872 >>944874 >>944877
>>944865
>done
>no hiding
>no favourite boards
>no thread watching
>extra menu can't use js
Do you even know what "done" means?
▶ No.944872>>944874 >>944875
>>944866
>no hiding
Just don't create shit threads
>no favourite boards
What are bookmarks?
>no thread watching
Just keep the tab open.
>extra menu can't use js
>js
what?
Do you even know that you are a faggot?
▶ No.944874>>944875 >>944876
>>944872
It's Stephen.
>>944866
>features that can be done but I don't have time for yet
<not done
Sergio, unlike what you believe not everyone cares about shit you autistically care about. Do you really want to go down this path? Do you really want me to spill the beans about your [code] tags "fix"?
▶ No.944875>>944882
>>944874
>muh code tags
>calls other people autistic
ebin
>>944872
>le ebin suckless meme
▶ No.944876
>>944874
>It's Stephen.
Stephen Lynx? LOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOL.
▶ No.944877
>>944866
Also,
>no thread hiding
Filters exist, you can put the post content in it for the timebeing
>extra menu can't use js
Do you wanna know how I know you're Sergio? You suck badly at naming shit. For example, the above statement makes no sense.
▶ No.944880
>>944783
working on the logo as we speak
▶ No.944882>>944885 >>944886
>>944875
Oh seems like you want to go then.
https://gitgud.io/LynxChan/LynxChan/blob/master/src/be/engine/postingOps/common.js#L404-407 here, you can see that he's replacing [code] and [ /code] with <code> and </code>. Notice how he doesn't check at all whether two [code] [ /code] tags match. Of course this creates a problem: if you only post [code], then the rest of the page will be monospace.
And here's our golden boy Stephen's fix:
https://gitgud.io/LynxChan/LynxChan/commit/b955483cf80b79ff245d1d77b5f9c17962375a96
>in domManipulator, where pages are rendered
>not in markdown engine where the actual fix should be
>has to bend over backwards with a retarded algorithm just to close code tags
Not only does this reduce one's understanding of code, it also makes it harder to fix things down the line. This is the same engine which is supposed to be "an example to future imageboard developers" (his words, not mine).
▶ No.944885>>944888 >>944891
>>944882
And here you go sperging out about shit you don't even understand. I told you before, you don't even know why it doesn't matter if the tags are checked when posting. But I know you are physically unable to listen anyway, so keep on spergin'.
▶ No.944886
>>944882
wow. that is cs grad meme tier
▶ No.944888>>944890
>>944885
Please do enlighten us, o great Sergio, because as far I can see, it does matter apparently, since it needs a fix.
▶ No.944890>>944894
>>944888
When you render a page, you might render it in a way that will take only PART of the post, because on board pages you cut the text. So only after you do that you can check what is matched or not.
▶ No.944891
▶ No.944894>>944896
>>944890
That's a shitty justification. This would happen with any tag, and in fact it happens here (not sure if it's fixed) when a greentext is cut off. Why not check for all opening tags and close then recursively then? Why monkeypatch?
▶ No.944896
>>944894
Because no other tag will cause issues if unmatched.
▶ No.944897>>944898
>>944895
So apparently <code> isn't a tag?
And this still doesn't change the fact that the fix is shitty, and should be done properly.
▶ No.944898>>944901
>>944897
>done properly
Sorry, but I don't have the time to get a stamp from the central office of Your Personal Autism.
▶ No.944901
>>944898
>this shitty meme again
You're more stubborn than a goat. I'm done with you.
Also, since thread watching and favorite boards were requested by no one but you, I won't do it. If more people want it, I'll do it.
:^)
▶ No.944915>>945114
>my javascript pajeet engine is better than your python meme framework engine
What is the point of this argument? All imageboard engines are shit, no exceptions.
▶ No.945114
>>944915
True. It's all PHP, JS, Python, all trash.
▶ No.945340
>python/thon
Next up you'll tell us to install gentoo
▶ No.945368>>945523 >>946236 >>946340
When I try to create a new board, I get Server Error (500).
▶ No.945416>>946619
>>944854
Your commit list. Now.
didn't think so, faggot
▶ No.945523
>>945368
Thanks, will look into it.
▶ No.946236
>>945368
Are you Williamunaxy? You can log in to make a new board, I should check if a user exists before trying to create one.
▶ No.946340>>946368
Blazechan is currently undergoing a major refactor. This moves the non-datasource code into a new app, engine/, and also moves the frontend views and non-template code into the same app, effectively integrating the core of Blazechan closer together. This allows both backend and frontend to be easily replacable. The backend will implement a (currently in development) contract, which will allow you to use any backend you wish. For instance:
- NTTP/Overchan backend for Changolia
- Lynxchan database used as a Blazechan backend (with a shim)
- Vichan/Infinity backend with a shim
- Maybe something even more interesting
Additionally, extensions will now have a SQLite database that they will use to store their models. This is because since the data source is now agnostic you can't rely on a persistent database's existence (the backend may very well be a flat text file).
Please bare with me while I'm refactoring. No features will be implemented while the refactor is happening, but after that new features will be easier because the engine is more consistent.
>>945368
Should be fixed. Can you try?
▶ No.946354>>946368
>Decentralization
Please elaborate. You're using NTTPchan? ActivityPub? Diaspora? Zot? A custom protocol?
▶ No.946368
>>946354
Read >>946340. I probably didn't include enough details in the OP, hence the confusion. My plan is to allow decentralization through pluggable backend so the data source can be distributed/federated.
▶ No.946530>>946542 >>946556
I tried following the installation guide and got stuck at
>>> from panel.views.create import create_board
Traceback (most recent call last):
File "<console>", line 1, in <module>
ModuleNotFoundError: No module named 'panel'
>>>
▶ No.946542>>946556
>>946530
fixed this by stealing the right command from the install script, but now I'm stuck here
$ daphne -u /tmp/blaze.sock blazechan.asgi:application
/home/owner/blazechan/.venv/lib/python3.6/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
""")
2018-07-24 04:33:38,863 INFO Starting server at unix:/tmp/blaze.sock
2018-07-24 04:33:38,863 INFO HTTP/2 support not enabled (install the http2 and tls Twisted extras)
2018-07-24 04:33:38,864 INFO Configuring endpoint unix:/tmp/blaze.sock
^C2018-07-24 04:33:48,992 INFO Killed 0 pending application instances
▶ No.946556>>946558
>>946530
The instructions are now outdated since the frontend and panel merged. Are you using a different distro from Debian? If not, the install script should help you. I should add package names for other distributions soon.
>>946542
Looks like the server booted properly, you have nothing to worry about. You need to put it in a GNU screen (screen -S blaze), start it, and when the daphne output stops you can exit the screen using C-a C-d. When you want to come back just do screen -r b (any prefix works).
▶ No.946558>>946562
>>946556
How long should I be waiting for? Minutes?
It never proceeds past
2018-07-24 05:25:40,783 INFO Configuring endpoint unix:/tmp/blazechan.sock
▶ No.946562>>946571
>>946558
That means it already started and you don't have to do anything, just exit the screen. You can now configure/start nginx and it should work.
▶ No.946571>>946575
>>946562
Is frontend/static/vendor supposed to have nothing in it?
▶ No.946575
>>946571
Yes, since vendor files are now pulled by django-npm automatically when you do ./manage.py collectstatic.
▶ No.946619>>946627 >>946635
>>945416
>Just dox yourself faggot
>no? lol you must be a larper
what the fuck is wrong with you retards
▶ No.946627>>946628
>>946619
>he tied his real name to the software he contributed to
The only retard here is you.
▶ No.946628>>946630
>>946627
>I don't want to build up my career and instead want to larp as an anon faggot
finish up hs first then come back
▶ No.946630>>946631
>>946628
>he can't use a pseudonym
>he has to show his const additions to the kernel to his boss
You're low functioning.
▶ No.946631>>946632 >>946633 >>946635
>>946630
>You won't dox yourself like a retard, and want all your OS contributions you IRL, this makes you low functioning
durrrrr
▶ No.946632
▶ No.946633>>946634
>>946631
>he's still defending putting his real name online
▶ No.946634
>>946633
Yes anon this is part of what not being an autistic fuckwit is about.
▶ No.946635>>946636
>>946631
>>946619
You don't need to attach your real name to the work to use it in your portfolio you stupid cunt.
▶ No.946636>>946639
>>946635
>Just associate your job applications to shit you link to on imageboards
great idea retard
▶ No.946639>>946691
>>946636
>he's so scared of losing his wagecuck job that he won't even let people on a talmudic worship forum see it
Just admit that you don't have any contributions, anon. Nobody will judge you.
▶ No.946657>>946689
>>944860
No. That feature still hasn't been implemented.
▶ No.946689
>>946657
0.14.0 planned feature.
▶ No.946691
>>946639
>webdev cuck on the defensive
▶ No.946724
>>944859
>Dietlibc
Into the trash it goes.
Someone port it to glibc
▶ No.946725
▶ No.946736
I'm halfway through defining the interfaces the backend will implement. There is a small problem, though: zope.interface (the interface library I'm using can't distinguish static methods from normal methods, but you can work around it by using @classmethod and making the first argument _ or something. If more issues arise, I'll switch to using native ABCs.
Other than that, I'm going through the entire codebase of Blazechan to find places where I used the queryset API and replacing them with functions, and boy is it tedious. But for s good cause. Hopefully I don't get too burnt out so I can finish it.
▶ No.946765>>946767 >>946768
So this is clearly all pebcak/configuration errors, but why are the cached assets returning 404?
▶ No.946767
>>946765
Is this ./manage.py runserver or nginx? Did you do ./manage.py collectstatic?
▶ No.946768
>>946765
I did ./manage.py collectstatic, and this is nginx
▶ No.946770>>946771
$ ls /srv/http/static/
channels css debug_toolbar img js rest_framework vendor
CACHE does not exist for whatever reason
▶ No.946771>>946772
>>946770
Hmm... Did you setup the static dir in .env correctly?
▶ No.946772>>946774 >>946776
>>946771
STATIC_ROOT="/srv/http/static/"
▶ No.946774>>946779 >>946782
>>946772
Just in case that was the issue, I changed it to /srv/http/blazechan/static, and changed the nginx config to match, re-ran ./manage.py collectstatic
cached assets are still the only thing 404ing, with /srv/http/blazechan/static/CACHE not existing
▶ No.946776>>946781
>>946772
It's weird that it's not generating. Can you post your complete .env (you can omit the DB stuff and the secret key)? Also, can you do "redis-cli" then "keys *compressor*" and post the output of that?
▶ No.946779
>>946774
Can you check storage/log.err just to make sure? Maybe there's some indicator there.
▶ No.946781>>946783 >>946784
>>946776
DEBUG=True
DEBUG_IPS="127.0.0.1"
HOSTNAMES="localhost"
STATIC_ROOT="/srv/http/blazechan/static/"
COMPRESS_ENABLED=True
YUI_COMPRESSOR="yuicompressor"
▶ No.946782
>>946774
Oh, and just to make sure, the user you're running blazechan (daphne) as has write permissions to the static dir, right?
▶ No.946783>>946784
>>946781
[owner@Owner-PC ~]$ redis-cli
127.0.0.1:6379> keys *compressor
(empty list or set)
▶ No.946784>>946785
>>946781
I assume blazechan resides in /srv/http/blazechan/? >>946783
"keys *compressor*", with a leading * too
▶ No.946785>>946787
>>946784
127.0.0.1:6379> keys *compressor*
1) ":1:django_compressor.templatetag.3aef0a4b0cc5.file.css"
2) ":1:django_compressor.templatetag.11203c0f7655.file.js"
3) ":1:django_compressor.templatetag.11203c0f7655.file.css"
4) ":1:django_compressor.templatetag.32e893f513d6.file.js"
5) ":1:django_compressor.templatetag.d04b6a438de5.file.js"
6) ":1:django_compressor.templatetag.f8b240d0fef7.file.css"
▶ No.946787
>>946785
can you try copying one of those keys and trying to get its contents with "get (key name)"? It should be a bunch of \xYY and something like <link rel="stylesheet" href="blabla" />
▶ No.946791>>946792
>>946790
127.0.0.1:6379> get :1:django_compressor.templatetag.3aef0a4b0cc5.file.css
"\x80\x04\x95d\x00\x00\x00\x00\x00\x00\x00\x8cT<link rel=\"stylesheet\" href=\"/.static/CACHE/css/af9e350fbdee.css\" type=\"text/css\" />\x94GA\xd6\xdf\x93''\xb5=\x89\x87\x94."
▶ No.946792>>946793
>>946791
Can you check the error logs in storage/log.err? Maybe post the complete thing if it exists?
▶ No.946793>>946794
>>946792
$ cat storage/log.err
[2018-07-24 06:26:48,545] ERROR exception: Invalid HTTP_HOST header: '127.0.0.1'. You may need to add '127.0.0.1' to ALLOWED_HOSTS.
that's the entire file
▶ No.946794>>946795
>>946793
What about storage/log.info?
▶ No.946798
>>946795
This is certainly an enigma. Do you mind joining #nextchan on irc.rizon.org so we can figure this out?
▶ No.950342
▶ No.950413>>954589
>still shilling this vaporware
▶ No.954463>>954589
Sorry for the long absence. My day job started taking a long part of my day, and also I worked on some other project with some guys. I moved almost all the code into the 'engine' app, leaving 'backend' with the models and migrations only (migrations will be an implementation detail later on) and the frontend with templates only. I'm currently spec-ing out the backend contract that the backend needs to implement to talk to the engine. Let's hope this goes through... (Post body too long, here's the current draft of the spec: https://nextchan.org/.static/backend-contract.txt)
Mind you, it's still very incomplete because I'm generating the specs as I read through and adjust the code, but now that I have more free time I hope to bring things back on track. Only the views are left to do the raw Django ORM -> backend contract calls conversion, and then after that I'll be checking the templates for what members are needed.
Also, I thought about it a little, and not all backends that Blazechan plans to support supports all the features of a centralized data-source. So, I'll be implementing some way for the backend to tell the engine what features it has and what it's missing, and the engine can optionally turn off some features if the backend doesn't support it.
And finally, I decided to drop the zope.interface library for implementing the contracts because it's too complex and unnecessary for what I need. I'll be using simple base classes.
That's all for now, stay tuned.
▶ No.954589
▶ No.955495
I remember the first blazechan thread you made and have been following this since. Good job man it's amazing to see this grow as a project
▶ No.955572>>956012
>>944760 (OP)
before I consider using your engine I need to know what's your opinion on the jews
▶ No.956012
>>955572
The more I argued with them the more I learned their dialectic. At first they calculated on the stupidity of their adversary.
Then, when they could find no other way out, they played stupid themselves. ...Whenever you attacked one of the
apostles, your hand closed around slimy matter which immediately separated and slipped through the fingers and the
next moment reconstituted itself. If you struck such an annihilating blow that, observed by the audience, he had no
choice but to agree with you, and thus you thought you had taken one step forward, the next day your amazement would
be great. The Jew knew nothing at all about yesterday and repeated his same old twaddle as though nothing had
happened; if you angrily challenged him on this, he could not remember a thing other than he had demonstrated the
correctness of his assertions on the previous day.
Many times I stood there astonished.
I didn’t know what to be more amazed at: their verbal agility or their art in lying.
Gradually, I began to hate them.
▶ No.956055>>956768
>>944783
But what architecture?
▶ No.956767
Okay, after long fucking last I was able to allocate some time into working on Blazechan. I finished the interface specification, and significantly reduced the amount of models needed to implement (you only need 3 now, Author, Board & Post), since most are used on client- (well, server-) side only and aren't needed in the backend. I'm currently in the process of trying to migrate all the models (except the ones in the interface spec) in the backend to the engine without breaking the project, hopefully I won't break my local install.
▶ No.956768
>>956055
Your own.
Physical assembly, not some bullshit abstraction.
/tech/ INSERTS BITS ONE BY ONE MANUALLY
▶ No.957043>>957466
▶ No.957466>>959006
>>957043
What's a good language to master? Javascript?
▶ No.957766>>957816 >>957817
Things we need:
1. Archives for boards (for GG, IOTBW, HWNDU and other /pol/ ops)
2. Thread migration (e.g. Move specific threads from /tech/ to /emacs/ or /lv/)
3. temporary IPFS mirroring API (for those who wants to quickly share images, /pdfs/ and /webm/)
4. Metaboards and other ways of viewing selective categories of threads
5. invidio.us and other video embed support, ebook/video/audio support, imgops.com support
6. Admin/Moderation account control, 2FA support with Email, Phone or Matrix account
7. "Friend Board", "Catalog" and "News" poster bar support
8. Competitive board thread count distribution ("Less traffic the board gets, the less thread it can have")
▶ No.957816
>>957766
> "Friend Board", "Catalog" and "News" poster bar support
> "Friend Board"
What did he mean by this?
i think the most important thing to do is to make captcha work again or add some sort anti-spam
the spam on the site is starting to ramp up
▶ No.957817
>>957766
also, this is more "things i want" than "things we need"
i think point 8 is the worst thing in your list, that's not how imageboards (should) work at all, they would just be limiting a certain board
but in the end, it's up to m712 to do add this to blazechan
▶ No.958390
>>958159
Sorry, there is currently a memory leak in the channels layer which I have yet to fix, which means that every now and then it crashes. I'll investigate it thoroughly after the rewrite finishes.
Also, update on the rewrite, I decided to scrap the migration stuff, since literally no site uses it except Nextchan right now. I'll just migrate the site manually once it's done.
▶ No.958885>>959021
Boom.
After 9 years in development, it is finally working (kinda sorta). The frontpage and the board list are working, but all other pages need their imports and function calls fixed. Hopefully they will start working soon as well. Also, I made it so Blazechan can still render its UI while there are no boards, so you shouldn't need to create the board from the CLI anymore, just login and create your board (after that page starts working, of course).
▶ No.959006>>959036
>>957466
Javascript may be even shittier than Python, but it has multiple working JITs, at least. The Python devs aren't giving a single fuck about performances.
▶ No.959021>>959076
>>958885
>9 years in development
Dude... what took you so long?
▶ No.959036
>>959006
>but it has multiple working JITs
nice meme
▶ No.959075>>959131
>>944783
Assembly? Plebian. If you can't convert op codes to hex and maintain a list of dynamic memory references in your head while you hand assemble, why do you even bother to get up in the morning?
▶ No.959076
>>959021
Probably some very frequent masturbation.
▶ No.959131
>>959075
I laughed a lot harder at this than I should have
▶ No.959314>>959325
decentralization, like no-js, is a meme
▶ No.959325>>959350
Bump. Posting is almost working, however I will refactor it to make it simpler, which should speed things up. Panel is fully working. Once moderation tools are up, I think the rewrite is complete.
>>959314
>decentralization, like no-js, is a meme
t. cuck-chan, enjoy your ad scripts 😂😂😂😂😂
▶ No.959350>>959358
>>959325
t. pajeet who “maintains” engines in javascript and fucking python
▶ No.959358>>959365
>>959350
t. never programmed anything of significance in his entire life
▶ No.959365>>959382
>>959358
*mad pajeet
why does your website suck
▶ No.959382>>959388
>>959365
>it's this faggot
Filtered
▶ No.959388
>>959382
w h y
d o e s
i t
s u c k
u cannot escape the devil
▶ No.959713>>959745
Looks like ass. Rather fork vichan instead use (((python)))
▶ No.959726>>959745
>>959666
I was wondering if you could tell me the reason why the HTML pages you host over the web seem to have a kind of suction to them. thanks
▶ No.959745>>960177
>>959726
Cannot reproduce locally. Can you please tell me your browser and OS? Maybe steps to encounter? Please be more specific.
>>959713
What do you find in the style that doesn't look good? I'm genuinely open to non-shitpost responses, I can fix or at least compromise on stuff.
▶ No.960177>>960179 >>960227
>>959745
can you turn off the shitty drop shadows?
▶ No.960179
>>960177
But then how will I tell your low quality shitposts from the background?
▶ No.960227
>>960177
I'll make it an option.
▶ No.967801
Welp I disappeared again. I moved to another city but didn't get my computer shipped from home yet, waiting on that. Hopefully this week I'll be getting it. The rewrite is complete, I'm still in the process of improving things.
▶ No.967805>>967809 >>969037
this website hardly has enough people why would we want to split up the userbase more
▶ No.967809>>969037
>>967805
This anon is correct. We should kill projects other than vichan if possible, since vichan is the original code and nothing superior to it can be made.
▶ No.967818
▶ No.969037
>>967813
It's been that way since forever, oops. Gotta fix that.
>>967805
You don't have to post only on one site. Besides, te site is pretty much a demo for Blazechan at the moment.
>>967809
:^)
▶ No.969065
>967805
1st terry, then this.