/qa/ - Questions and Answers

Keeping the community together by giving you a voice

If you want to see the latest posts from all boards in a convenient way please check out /overboard/
Note: JS is reccomended to be able to post effortlessly, but I am working on a system where that won't be needed.

By clicking New Reply, I acknowledge the existence of the Israeli nuclear arsenal.
Select File / Oekaki
Password (For file and/or post deletion.)

I mek code.jpg
The rewrite of the code
4569 4571 4928 4930 205978
It is I, Pupper, and I am doing a complete rewrite of the code, and wanted to get some input from you dear Anons on what wishes you have. My hope is to make the site more robust and userfriendly, and succeed on both these goals (or at leas not make it worse).

But before I get too far into the new code I thought I'd open up for input on features and improvements you want to see. It is still early in development and it is therefor still easy to change things before I weer of into a wrong direction and paint me into a corner. I am not planning on changing the overall look or function of the site just improving on what we have.

If you got any ideas, suggestions, grievances or fun jokes I am happy to hear them all. Developing something without knowing what you guys want can easily end in sorrow, so I want to avoid that with this preemptive strike asking for what you want to see.

I am looking forward to your input and I will note it all down (in this thread) and us it as help when developing the new code. I am not sure when the new code will be complete so I can sadly not make any promises in that regard, but I can promise I have begun with the rewrite.

- Pupper
4562 4564
>If you got any ideas, suggestions, grievances or fun jokes I am happy to hear them all.
Your wish is my command.

Let's start with my biggest gripe with the site: the archive. It's great that we have one on-site, the only problem is that it sucks.

ᐅ It's a wall of text
ᐅ It's not searchable
ᐅ The voting feature is useless
ᐅ The threads in the archive do not have post links preserved
ᐅ The threads in the archive do not allow you to save files with the original filename
ᐅ If you open an image in an archived thread and close it, it will take you to the very top of the page unless you have another image opened already
ᐅ Posts and threads in the archive cannot be linked to from posts that are not archived

So! Time for some suggestions about that.

ᐅ Archived posts should be linkable from unarchived threads
ᐆ Linking to them should be an easy, seamless ordeal:
>>(post number)
ᐆ Cross-thread links can be achieved a few different ways:
ᐇ >>>/mlpol/(post number) (preferred)
ᐇ >>>/mlpol/archive/(post number)
ᐇ >>>/mlpol/a/(post number)
ᐆ No matter the method used, the threads should clearly be shown as archived when linked to (strikethrough, appending (Archived) to the link, etc)
ᐅ Archives should be displayed and searchable the same way a normal board should be: there should be no static spreadsheets meeting me when I visit it!
ᐅ There needs to be more ways to find and bookmark important archived threads
ᐆ The voting and featured thread features, while never used, are fine and can be kept
ᐆ A bookmarking feature should be implemented in the archive, so you don't have to keep searching for posts there every time
ᐇ Being able to call these bookmarks up when out of the archive would be a plus, too

Other than that, here's a small laundry list of problems I've noticed:

ᐅ SVG files aren't thumbnailed, nor are they opened as standard images when clicked on.
ᐆ However, they do render when image hovering is turned on.

ᐅ The thread JSON has no custom flag support; when a custom flag is used, the flag information is just omitted completely from the post's JSON entry.
ᐆ This is more important for mobile clients such as >>4241 → , but still warrants fixing.

ᐅ There is little consistency between bracketed formatting tags (or BBCode style as I say) and the 8ch formatting tags.
ᐆ There is no BBCode method for creating 8ch redtext headings.
ᐆ There is no 8ch method for colored text, text alignment, or dice rolls.

ᐅ Post deletion and mod banter messages are not shown in an already open thread: a refresh is required to notice any such changes, instead of being shown dynamically as the thread refreshes.

ᐅ Image hovering has a multitude of problems:
ᐅ Catalog image hovering doesn't work.
ᐅ When mouse following is turned off, there's no option to choose which corner of the screen to anchor the hovered image to.
ᐆ Hovering downloads the data of all files that are hovered over, regardless of whether or not they can be viewed while hovered (ZIP, PDF, TXT, videos, etc.)
ᐆ Videos have no hover support.
ᐇ If video hover support is added, they should be muted by default and be configurable to either continue playback when opened fully or restart playback.

And lastly, some feature suggestions.

ᐅ Expose MD5, SHA1, etc. hashes for every file posted

ᐅ Implement the option to disable filtering on a per-thread, per-board and/or sitewide basis
ᐆ An insane idea inspired by >>>/mlpol/201560 → : an idea that may be insane enough to work as added shill repulsion
ᐆ Disabling image hiding optional, but definitely should be a per-thread option
ᐆ Should be a staff-only setting if implemented: could janitors use this?

ᐅ Enable the ability to list the contents of ZIP files and offer confirmation before downloading
ᐆ Could have security implications if a malformed ZIP is used

ᐅ Virus scanning for uploaded files
ᐆ Could be implemented as configurable ClamAV support on the backend?
ᐆ Could use https://github.com/nextcloud/files_antivirus (another PHP+JS monstrosity) as a template?

ᐅ Open PDF files in a new window
ᐆ Should be configurable to open in an inline window (if possible), a smaller separate window, or the default of opening in a new tab

ᐅ Code tags when you lazy niggers decide to fucking enable it should have the ability to specify syntax highlighting
ᐆ Should be user-selectable and not autodetected
ᐆ Should be implemented similarly to the align tags: (code=c)(/code), (code=diff)(/code), (code=php)(/code), etc.
https://highlightjs.org/ could be a starting point for this?
Well, I don't have anything that he missed.
4565 4585
>the archive
I agree that the Archive is lets say less than optimal, and it was a quick add-on to get some form of archiving. I will redo the archive completely and will try to get all your wishes implemented.
My plan is to move all the threads in archive to a database so will be searchable, and I will add the function of making them linkable (as you suggested). Also make an automatic redirect to the archived thread if using /mlpol/ThreadID link for an archived thread.

I am planing to do full overhaul of the json files, or at least clean them up. I have to do a little pondering regarding making the json files more tailored to our site or keep the backwards compatibility.

This will also be overhauled. I don't suspect there will be many changes, but if you have wishes for specific test formating feel free to give suggestions.
<Text (becomes pink automatic)
Is one idea I am playing with adding

>update of thread
I plan adding functionality to update the threads with bantz and other changes automatically. And I have some test js that accomplishes this, but it is just tinkering at the moment and I need to streamline it.

I will add the option to choose corner to "fixed hover" to. I will also look at all the hovering problems you mentions.
All of the JS will be rewritten, so none of the problems that are now will be "grandfathered" into the new code. Only problem is if I forget to add something.

>hashes for files
I plan on moving to storing files as their hash codes so identical images will not take additional space (like they do now), but rather the same file is served and linked. So to avoid any possibility for collisions I will use 128bit hash and add filesize to the end of the filename (probably overkill).

>disable filtering
The problem with this is that the filtering is client side so there is nothing that I can do to prevent users to create custom scripts to manipulate the DOM and hide threads. But it should be possible to do this in the default js, not that anyone moderately skilled wouldn't be able to override that easily. But I will look into this, shills rarely have the capacity to realize people can see when they are samefagging when IDs are on, so it is not likely they would run custom js.

>zip files
At the moment I only have check on headers of files to see if they are valid. But I will look into making an function to list content of compressed files.

>virus scanning
I will definitely look into some form of virus scanning of files. I haven't yet decided on how to best implement this, and what AV to use, but it is something that is on the to-do list.

>syntax highlighting
I will look into this, and if I find a good 3rd party OSS library that does this I will add it. And I will add code tag sorry for not having already.

Thanks for all the input, and it had many points I hadn't thought of and it will help a lot when it comes to writing the new code.
Keep the ideas coming, and don't hesitate to mention other areas I should pay attention to when doing the rewrite.

I can also mention this as it is a change that will affect users and perhaps ease some "fears" if it happens to you in new code:
>I am planning on making force-flagging of posters limited to individual threads. This way mods can be more free to forceflag people without exposing them sitewide; i.e. more fun for all especially mods..
Thanks for the prompt reply!
I've got nothing to add to the points on the archive, thread updates, hovering, filters, AV and highlighting, so onto the subjects at hand!

>I am planing to do full overhaul of the json files, or at least clean them up. I have to do a little pondering regarding making the json files more tailored to our site or keep the backwards compatibility.
To be quite honest, the JSON API for most board software was always kind of lacking. A lot of the mobile apps for say, 4chan, infinity/OpenIB, and the various forks of vichan rely on grabbing extra necessary data from the full site and going outside of the API itself, which rather defeats the purpose of having an API in the first place. 8ch's API, for instance, has no support for any board's custom flag data in the API itself.
If you want my opinion, stick to the fundamentals in the stock vichan API that work fine, but if extras are required, overkill the shit out of them. Do it once, do it right.
If you (know someone who) happens to know Java/Android, you can have them spin off a quick extension for Dashchan (https://github.com/Mishiranu/Dashchan-Extensions/wiki/Extension-devepment-tutorial) to test whatever JSON changes you make against it. That way you can both test the changes for functionality, and get an mlpol/NPFchan mobile app out of the deal as well!

>This will also be overhauled. I don't suspect there will be many changes, but if you have wishes for specific test formating feel free to give suggestions.
No objections to the automatic pink text change. You could also add the 8ch formatting for (((them))), though I find it a bit garish IMO and wouldn't miss it being left out.

>>hashes for files
>I plan on moving to storing files as their hash codes so identical images will not take additional space (like they do now), but rather the same file is served and linked. So to avoid any possibility for collisions I will use 128bit hash and add filesize to the end of the filename (probably overkill).
Very nice, I can get behind some sweet deduplication action.
That being said, my point was more about exposing the hash in a text string alongside the image (preferably hidden under the post's ▶ menu) for the user to verify against. Just in case, say, a file is DL'd over a piss poor connection, and the anon in question wants to check the hash for themselves.

>>zip files
>At the moment I only have check on headers of files to see if they are valid. But I will look into making an function to list content of compressed files.
I'm not sure how zip files are operated on server-side (if they are at all), but if you need to pull in an extra dependency for this, consider p7zip (7-zip CLI), which may also add the possibility of 7z file attachment support as well.
Whatever method you use to do this, be sure to have checks to make sure someone can't just upload an endlessly recursing archive file, have the archive list program eat all the memory, and crash the system. Perhaps a 30/60 second wait for the list to complete before the process is killed, and providing a simple "unable to list files" error when it happens?

>I can also mention this as it is a change that will affect users and perhaps ease some "fears" if it happens to you in new code:
>>I am planning on making force-flagging of posters limited to individual threads. This way mods can be more free to forceflag people without exposing them sitewide; i.e. more fun for all especially mods..
I've absolutely no objections to this change. It's far less controversial than an idea I've had cooking up for a while!

>Keep the ideas coming, and don't hesitate to mention other areas I should pay attention to when doing the rewrite.
It'd be my pleasure.

ᐅ The desktop notifications are a nice touch, but I find the pings it gives on every single post to be overkill and less than useful. Call me spoiled thanks to 4chanX.
ᐆ Have the desktop notifications configurable to only fire notifications upon replies to (You)
ᐆ Have the desktop notifications configurable to only fire on replies to posts you want (maybe under a post's ▶ menu, having an option to notify on replies)

ᐅ The thread watcher is a little anemic, and it's position as fixed on top of the page makes it's usefulness limited when browsing a thread.
ᐆ Have the thread watcher pop out just like the Quick Reply window (4chanX conveniences, yay!)
ᐆ Have the watcher be a little clearer (current thread in bold, dead/archived threads in dark text/italicized/strikethrough)
ᐆ Have some integration with the above notifications: maybe an extra (coloured) number beside new posts for posts that would trigger a notification normally?
ᐇ Would it be feasible to make the watcher button change colours when this notification event happens?

ᐅ There's no catalog for the Overboard.
ᐆ If this is an intended feature, perhaps have a more compact overboard layout?
ᐇ Say, a configurable amount of columns to display threads in as you scroll down?

ᐅ Quick reply doesn't let you change between Files / Remote / Oekaki.
ᐆ Oekaki doesn't display in quick reply either - not that important to fix, but still worth noting.

ᐅ Flash files do not open correctly.
ᐆ Either it has you download the .swf file outright (Chrome/Opera/etc.), or opens in a new tab (Firefox)
ᐆ I suspect that the .swf files aren't being embedded properly, causing the browser to treat them like files instead of, well, Flash.
ᐆ Wizardchan (also running NPFchan) has a Flash section in it's options to configure .swf playback and default resolution. Worth looking into?

Layering colours and spoilers does this.
It's not a bug, it's a feature.
N-no fix plz?

Thanks for your efforts Pupper, and here's hoping your undertaking goes smoothly! And that my sperglord ass doesn't bog you down in feature creep ^:)
>Dashchan API
I'll definitely look into this. Really good to have this as an guide to see what type of data 3rd party app devs wants. Also to avoid the obligatory https://xkcd.com/927/

>desktop notifications and thread watcher
I myself don't use these functions, so it is extremely helpful knowing how you like it to work and I will do my best to tailor it to your desires.

Overboard is in current code an "add-on" so it is not integrated as a core function. This will be different in the new code and it will be possible to make Catalog and make it more "configurable". I will try to add all the options you mentioned.

>Quick reply and Oekaki
I will try to get Oekaki into the Quick Reply. I might have to disappoint at this one point as the "realestate" available is limited and you have to get all the float and positioning to function flawlessly. Also I have to think of mobiles and make the Quick Reply box fit onto a small screen. That being said I haven't added Oekaki to the new code yet so it could be an easy task to do, and all I said above is just me blackpilling myself, and thinking worst-case scenarios.

I will do my best to try to get this working in all browsers.

>Will this feature be kept alive
I will make sure this stays as it is.

>Thanks for your efforts Pupper, and here's hoping your undertaking goes smoothly!
Thank you for kind words, and thank you for all your input. You'd be amazed how good I am at bogging myself down in features trying to cater to all thinkable eventuality, so knowing what people actually wants is a Godsend in comparison. Do not worry about bogging me down, you are most likely doing the opposite. Set the sperg in you free.
Well, I've found the new position of the Quick Reply box to be a little inconvenient, as it now covers a portion of the thread's posts while it's up. I've also had an issue where every time I hit a post number to reply to it, I have to click back inside the Quick Reply box to begin typing again. I'm afraid I don't have anything more constructive than that.
Any and all pointers are welcome. It is good to know what problems you encounter so I can make sure it don't carry over to the new code.
spoiler bug.png
spoiler bug 2.png
spoiler bug 3.png
While we're on the subject of magical spoiler bugs, here's some more bugs I decided to reproduce relating to spoiler bugs.

For the first image ( >>>/Test/1275 → ), this effect persists where it's not desired, though only when the spoiler tag wraps over to a newline that's been >greenlined.

As for the second ( >>>/Test/1277 → ), a different bug happens: if the spoiler doesn't start at the beginning of the line and wraps around to a new line, it doesn't bother spoiling the new line at all.

As an extension of the second bug and going into the third ( >>>/Test/1278 → ), with no greenlines it spoils everything fine. Starting it with a >greenline both fails to spoil the next line and colours it green, while the third spoils everything but doesn't mask the colour of the second line.

I'm guessing there's some recursing markup bullfuckery going on here, no doubt related to our favourite spoiler bug.
I'll look into it, and also make sure this don't happen in new code.

The tripcode always brings a little smile to my face and makes up for fucking up the login.
Eh, it's not bad.
>So to avoid any possibility for collisions I will use 128bit hash and add filesize to the end of the filename (probably overkill).
Hashes is something I have wished for too, but my vote would be for something that is a) compatible with other things that use hashes - like for reverse image search, if that is relevant, or other board software, etc; and b) has JS support for handling hashes in the browser.
Deduplication or bulletproof cryptographic verification of images isn't the goal here in my opinion, exposing something that users can work with is.

I just tried finding a post in the archive and agree that it is something that needs work, other than that the board code seems to be overall good enough. Don't break yourself trying to get everything perfect.
The hashing method I intend to use is SpookyHash 2. This is an hash that is designed to be be used on files, as it isn't cryptographic safe, but it is really fast on large files and don't use much CPU.
Thought of Murmurhash 3 too, but there is a known hash flood DoS attack for it. But I am still just playing around with this and nothing is set in stone.

>Don't break yourself trying to get everything perfect.
I will try to pace myself, but it is also fun rewriting the whole code. Hopefully the result will be as good as I hope. Also having written the whole code from scratch makes it easier to find and fix eventual problems, or add features, that might arise.
4590 4666
Howdy doo Pupper, hope the rewrite's going swimmingly and fun for you. Because I'm about to throw a wrench in the works with another feature request!

ᐅ Overhaul media embedding (YouTube, Dailymotion, etc.)
ᐆ Make the video URL change to the title of the video whenever possible
ᐆ Have the option of seeing the video thumbnail wherever possible,
ᐇ Either as an extra button next to the video embed button,
ᐇ Or, if image hovering is turned on, have the thumbnail display upon hovering over the link
ᐆ Have a configurable option to disable video embedding
ᐆ For sites such as YouTube, have the option to replace video embeds with a link to an alternative site (Invidio.us, Hooktube (RIP), etc.)

Don't worry, because this this time I come bearing gifts of shortcuts! Since it sounds like you're doing most of this work in JS, you ought to be able to recycle the embed functions that the 4chanX script uses. (MIT licensed, by-the-by)

https://github.com/ccd0/4chan-x/tree/master/src/Linkification for the CoffeeScript version,
Or https://www.4chan-x.net/builds/4chan-X.user.js starting at line 15545 for the pure JS version (specifically, the "key: 'Clyp'," string)

You may even be able to implement such devilry such as Pastebin embeds, if you really wanted to. The code's all there in the script!
I can please you and say I have implemented almost all your wishes in the new JS already.
I will look into the Thumbnail of embedded videos, and the option to select alternative site for embedding.
>Pastebin embeds
would definitely like to have this, one of the only advantages 4chan has with 4cX
Checking, and I will make sure to include that in the code.
4673 4676
Some type of timeline to give ppl a general idea when a new version may be completed? Also it should work on the very latest version of php or it's not worth it. Even the support life of php 7.3 is only a couple years, as php 8 will come out. Did you ever think of getting modern...like lynxchan? Not being a dick, I love how the php boards look, but php is for old ppl who are stuck in the past.
4673 4674
Any chance you can post the full config.php (or the part that makes the board options link) ? Im just fucking around and i can't get the options tab to look right. I think the order of my js is fucked up
4673 4676
not to sound like a robot but make it look like 4chan does on mobile. 4chan is the only board that looks decent on mobile, just little shit like buttons for links and the drop down menus to select boards makes it easy and nice to navigate the board from a mobile phone browser. I wouldn't get too crazy with a ton of options, as most of the new options will probably break with php 8.0 - so just make a board that is reliable, works ? looks well on mobile. Never mind the 50000000 stupid fucking options that no one uses anyway. ALSO i find it hilarious that ppl on this board like HITLER, you are just like him, in denial and out of touch- php is dead- code a fucking modern board.
4674 4675
>Some type of timeline to give ppl a general idea when a new version may be completed?
Sadly I don't have a timeline for completion at the moment, it is slowly coming together. I got posting and most of the frontend finished so there is mostly the moderation section and the final pieces tying it all together left to do. But I hope it will not be too long before I have something preliminary to present to you all.
>Also it should work on the very latest version of php or it's not worth it.
The new code will run on ASP Net Core 2

Added text file listing all additional JS loaded in instance-config

I am trying to make it mobile friendly without dumbing it down. Basically at the moment I am making the page as it looks on desktop work on mobile. But I will look into making a setting that can be turned on to make it more mobile friendly (dropdown on board selection etc). Once I have a preliminary working code you can play with it will be easier for you guys to give feedback on what parts don't work optimal and what options you want changed for both mobile and desktop.
>>4673 >>4671
>forgot file
Thanks!!! Take your time, you have the best php imageboard out there by far, the best looking, best crypto and stuff. When you have the best code, you shouldnt be rushed.
Yeah its so fucked up, sometimes i wonder if i should just switch entirely to lynxchan. Your php looks WAY better on mobile than any node.js board out there tho.
Rude. Rolled-up newspaper.
Besides, would you have preferred it if he'd written it in Perl instead?

Anywho, nice to see you've made yet more progress on the rewrite there, Mr. Pupper. You know what time it is: suggestion time! Let's see if I can't do this while loaded!

In regards to what I said before about the ability to disable filtering (a la >>4561), I've thought of a way to expand upon this, and defeat the ability to just inject custom JS to dodge around it.
That method is to make it a separate thread designation: just like you can flag threads as stickies, locked, bumplocked, and so on, you can flag a thread as a shill thread (Star of David very much included) which would then apply the filter disabling on top of being a nice little call-to-arms that no amount of custom JS can erase.
Of course, I think it's still a good idea to keep filter disabling as a more silent option on the side as well, but I think making it its own thread flag would work wonders.

I also thought a bit about custom colours for text. My considerations for this is, quite simply, that giving users carte blanche to vomit whatever colours they want into text is an overall net negative.
A possible compromise to this is, of course, limiting the amount of colours one can pick from. My suggestion, a very tentative one at that, is to limit it to 3-level RGB colours (https://en.wikipedia.org/wiki/List_of_monochrome_and_RGB_palettes#3-level_RGB) that you could pick with a number designation: say, [colo(u)r={1-27}] or [c={1-27}]
That all being said, I'm also not opposed to forgoing the option of picking custom colours for text in the first place, and keeping it limited to a very select handpicked few as it is now. Just please, anything but full run of the RGB or CSS space.

There's also the vague suggestion of possibly exposing the moderation controls in a way that would be operable by a mobile app (expanding on >>4565) to ease mobilefag moderation efforts, but I'd only suggest implementing such a feature if, and only if, there is an actual app to test such features against. Last thing you want is a security hole because of a feature that is never actually used, after all!

I'm out of thoughts to throw at you, and I'm still somewhat surprised I haven't bulletpointed everything like I have before. I'll take that as a sign to stop for the night. All the best to you, you mad, mad man.
Sorry for late reply.

Thank you for kind words.

>the ability to disable filtering
I will do some thinking on how to implement it. It would be possible to prevent some filtering possibilities by randomizing the IDs and such so there is nothing to filter on (except text in post). But this has some drawbacks too when it comes to keep and "discussion going". Also I would have to add an function to randomize filenames and also serve them to prevent image filtering. But I will ponder on it.

>custom colours for text
I have not planned to give people other options than Green, Pink, Orange. But I will consider adding the options for more if the need arises. I am of the mindset that simpler is better and giving too much customization options to users, might hinder creativity (in some aspect), and as you say might lead to nauseating color posting.

>operable by a mobile app
My plan is to make the site work as well as possible in browser so no app would be needed.

>I'm still somewhat surprised I haven't bulletpointed everything like I have before.
Please keep the suggestions coming. It is you the users after all that will be using the new code the most, and it is my goal to make it as pleasant as possible for you to use it when posting.
I think it would be nice to be able to choose spoiler individual file attachments, maybe just me but if it were an easy thing to implement I'd appreciate it
I will look into it, should not be a problem I think.
Top o' the whatever-the-fuck to you, Pupper. I'm getting low on suggestions to throw at you, which I consider quite a good thing. Just some small suggestions this time:

I thought for a bit about the old-style 8ch redtext, and I'm curious if it would be possible to separate out the heading property and the colour of it, such that you'd end up with a red [r] colour to use elsewhere, and a one-size-up heading [h] to use, well, wherever else.
I find the 8ch redtext rather obnoxious IMO, but the colour would work pretty well on it's own. The heading could find some use elsewhere, like when making subtitles and lists and the like in a post. Or just combine the two tags for the full obnoxious 8ch experience!
While we're on the subject of redtext, it also works weirdly with spoiler tags ( >>>/Test/1321 → ), probably with format tags in general as well, and also suffers benefits from the previously mentioned spoiler bug feature.

Speaking of spoilers, I'm also curious if it's possible to implement nested spoilers: 4chan spoilers do this, where you can place another set of spoilers inside an existing spoiler tag, and that second set won't reveal until you also mouse over it. Right now, it just combines nested tags into one continuous block. Not that big a deal, but thought it would be worth mentioning.
4722 4726
I'll look into making a header type markup, and nested spoilers.
Oh yeah, could you also have spoilered images default to having the 'save as original filename' image name be something like "Spoilered.png"? I know it's a small thing, but sometimes it can ruin the surprise and I know I've had to change filenames to generic things before just to avoid spoiling things inadvertently.
That is a good idea. I'll look into how to best implement it. There is two ways to accommodate for this as I see it. Best method as I see it is to only change the visual name to "spoilered.png" or just "[save as original]" and still keep the function that when saving you will save it as the original filename.
On another note the new form I've made makes it easy to rename file in the form before uploading, and I've also added option to automatically randomize filename before uploading.
Thanks man. Sounds like you're making some steady progress on the whole thing. I'm guessing it's also partly a learning experience on ASP.NET, eh?

I'll also add in one feature request that so far, every vichan descendent seems to have left out.
Is it possible to have the favicon light up with a red (!) upon receiving a reply to (You), just as it is with 4chan? And would it be possible to make that a user configurable option, for those who want to rein in their narcissistic tendencies? ^:)
I suppose while we're on the subject of favicons, is it also possible to have the favicon change on different events, such as threads locking, threads being removed, possibly mod/admin capcode posts in a thread, basically whatever you'd feel would warrant a favicon change?
Per-board favicon sets optional, and definitely a stretch goal, since we don't really use or need different sets for the different boards right now. But then again, I know how you love your feature creep. ^:)
It is a bit of a learning progress that is true. Hopefully I won't paint my self into corners too many times on the way to completion.

I will definitely add the function to stroke your inner childish joy when you get a (You). And I will look into making other custom favicons for other events. Having one for locked and reached bumplimit and others might be useful. I'll do some testing and experimentation to see what looks good and works.
Hey, learning experience projects are the best projects. Besides, we had plenty of teething issues with the code when fallenPineapple first coded the place up, so we'll work through it all the same. We're here for 'ya, dawg.

I'd also like to suggest having higher-res icons for mobilefags, but I would very strongly advise caution and restraint for that, for the simple reason of mobilefags and your plan to have a fully functional mobile version of the site.
There are different favicon standards for Android, Android TV, iOS, Windows 8/10, Safari, and possibly more. It is extremely easy to go overboard, full force autism with favicons (as one glance at the output of https://realfavicongenerator.net will tell you), and I don't suspect anyone's tested if it's even possible to have special mobilefag favicons be switched up like in desktop browsers. But if you're insane enough to tackle it please don't for your sanity's sake mane, I hope you've got SVGs for the current black sun design handy.
As a side note, I'm also the OP of >>4299 →, and have zero issue with taking the brunt of the disgusting favicon generation autism should you go down that route. Maybe testing for functionality. i'm scared of the rabbit hole i've just opened god help me

Other than that, there is the minor detail of UID totals not being displayed in the page info at the bottom in threads that have IDs hidden. Unsure if an oversight or deliberate move, but something worth pointing out.
>Hey, learning experience projects are the best projects
So true, and thanks for support. Also sorry for late (really late) reply.

>I'd also like to suggest having higher-res icons for mobilefags
I'm thinking of using plain PNG as favicon as all browses support that. Hopefully it will also lead to less pain in getting it working at different resolutions. But I will do some digging and all that when I wan't a little break to do something different and have some non-system-breaking fun. It would also as you say (or hints) be good to have icons that reflect the OS and don't break the overall look and feel of the OS GUI. Also I suspect my brand of autism will make me do it. Breaking an UI quickly becomes an eyesore and a deepfelt need to fix.

>Other than that, there is the minor detail of UID totals not being displayed in the page info at the bottom in threads that have IDs hidden. Unsure if an oversight or deliberate move, but something worth pointing out.
The reason UID count don't show up on pages with hidden IDs is because it is generated by JS that counts IDs it can see. And since there is no IDs to see it don't know what to do. In new code it would be easy to add UIDs to threads with hidden IDs, but there is upsides and downsides by showing it.
Screenshot from 2019-05-22 22-17-27.png
Screenshot from 2019-05-22 22-22-14.png
File (hide): 3F4626EB51222D37A75E8ECE6FE63CCE-361728.zip (353.3 KB, Listing of : C:\____\mlpolbackup_backups\backup\qa\src\1558576336618-3.zip Size Date Time Name -------- -------- ------ --------- 1469 23-05-19 03:41 favicon-16x16.png 440 23-05-19 03:41 html_code.html 27320 23-05-19 03:41 mstile-150x150.png 49994 23-05-19 03:41 android-chrome-192x192.png 426 23-05-19 03:41 site.webmanifest 214501 23-05-19 03:41 android-chrome-512x512.png 1063 23-05-19 03:41 README.md 21424 23-05-19 03:41 safari-pinned-tab.svg 15086 23-05-19 03:41 favicon.ico 3026 23-05-19 03:41 favicon-32x32.png ......... (only showing the 10 first files) ......... , favicon_package_v0.16 (1).zip)
favicon_package_v0.16 (1).zip
>I'm thinking of using plain PNG as favicon as all browses support that.
It's not a bad idea at all, but the only problem with that is scaling down to lower resolutions, which could fuck up the pixart of the changed favicons, especially the (!).
Thing is, ICO files actually have multiple different resolutions of icon inside the file, going from 16x16 (the familiar favicon size) to 256x256 in steps of 16, 24, 32, 48, 64, 72, 96, 128, and then 256. You can see a breakdown of all the sizes in pics related, including our current one.
Thankfully, you don't need to make every individual step: just 16x, 64x, and 256x should be good enough, and the software scaling takes care of the rest. ICOs also do PNG compression since Vista, so they can stay compact as well.
GIMP will export to ICOs in a snap, so accounting for the increments in pixart should be easy.

The "fun" part comes from the various mobilefag implementations of favicons. I'll just attach what https://realfavicongenerator.net gave me for pic #3 to show you the depths of webdev cancer that our favourite tech giants have decided to 'grace' your <head> and webroot with. I told you this was one hell of a rabbit hole!

Anyway, enough autism from me for today.

>So true, and thanks for support. Also sorry for late (really late) reply.
You're welcome, and don't sweat it.
10898__safe_artist-colon-conicer_derpy hooves_derpibooru_503_aaaaaaaaaa_animated_bipedal_computer_derpy hooves tech support_dialogue_female_frown_hoof .gif
Rewrite the imageboard backend in C++
No balls
4883 4887
I did consider (not too seriously) writing it all as an standalone OS, but it would be way too much work. Perhaps after I am done with the Asp Net Core C# version I will find myself in a position where trying to writing it in C++ allures me into its embrace. Playing with a low level language again does sound like fun.
>I do like having full control
It's fun, and it helps you get a better grasp of the language. But yeah, I understand. I spent a year writing an imageboard in C++, but kind of lost my focus on it about 90% of the way through.

It is pretty fast, though, with post times of about 150ms at 1.8 million posts site wide
I have to admit I do like the idea of once more be able to fully control threading, locks, pointers and all the good stuff you can do with full low level control. And tweaking it into running lighting fast is one of the fun parts. But I imagine one of the main bottlenecks will be the DB and optimizing queries. I don't think I will be able to write an DB equivalent that is anywhere near what current iterations is capable of.
>Plain Ansi C have, and will always have, a big place in my heart
I've just been using the MySQL connector library. It allows you to make prepared statements and queries natively. And yeah, DB optimization is the main bottleneck. The right DB index in the right place can turn a 10 second query into 100 milliseconds
It is truly amazing what the right indexing will do.
>Playing with a low level language again does sound like fun.
I heard is like God mode, while the code runs lighting fast because less CPU cycles needed.
Yes, low level languages are extremely fast compared to languages like PHP, Java, or Ruby
It also has the added fun of running your software on really old or esoteric systems, like a Pentium II, for shits and giggles
4906 4907
It would appear that reporting is based in some way off of IDs, as when I tried to report https://mlpol.net/sp/res/4143.html#q13337 I kept repeatedly getting "Undefined index: id" errors.
Also, take a look at that post if you would and give it a hit.
Oh, might not be an issue. I think I just had the thread open for fucking ages. Sorry.
Thats correct. All reports are linked to the UID that submitted them
No worries
Hey Pupper, do you have an ETA on the completion of the new code now that you're about nine months into working on it?
Internet Pony.png
Hi I don't have an fixed ETA as I have been working a bit on again/off again on the code.
I have most of the user side of the code completed, and I'm working on getting the Moderator side of things complete. After I have the basic of Moderator functions in place I will open it up for testing and feedback.
So hopefully in not too long I will have something up for testing. But I am a bit unsure on timeline as the upcoming festivities and family unions, but hopefully before Christmas or New Year I will have something up. Moderator side don't have to be as pretty and user friendly as user side to begin with.
I hope once you get to play with new code you will be pleased, and that it runs smoothly.
Glad to hear it frend, thank you for all of your hard work. I'm looking forward to it, been excited for a lot of the features proposed here to be implemented.
>I am doing a complete rewrite of the code
Does this mean NPFChan current version is going to be unmaintained and deprecated soon?
t. anon who is thinking about adding custom features to a imageboard and hosting one
Oh yeah, when you expand a quick reply window you can shrink it vertically, but not horizontally. I know it's a bit 11th hour, but that's always bugged me a bit and if you could patch it that would be much appreciated.
Sorry for late reply. Sadly I have to say NPFChan is currently not being further developed upon by me. Much of the expansions I made to the code I would not say were optimally included as I had to conform to what the code already did and squeeze my patches in there. So starting from a clean slate was a much better prospect for me going forward.

>Oh yeah, when you expand a quick reply window you can shrink it vertically, but not horizontally.
This is an error I am aware of and share your feelings about it, and I have fixed in new version. All the JavaScript is created from scratch for the new codebase and hopefully fixes all problems/shortcomings (and don't introduce new ones).
Is the code done and in the process of integration, or what?
Doing the finishing touches and getting all the functions working. Then I will get people on staff do some testing and give feedback. When all this is done (or while this is being done) I have to write some code to get all the data into the new database structure. I have chosen to wait with creating the Archive as it isn't an priority at the moment.
But long story short, we're closing in on the end.
Okay. I recently noticed an issue where when you link to another thread and you're using the last 50 posts button, clicking on the link to the other thread will result in a 404. Not sure if that's been fixed in the new version, but thank you for all of your hard work friend.
I know about the problem, and it is fixed in the new code. The reason this happens is that the "Last 50 post" page isn't generated unless there is 50 replies, and when you are on a "Last 50 posts" page it only links to other "Last 50 posts" pages, or assumes all pages have a "Last 50 post" kind of page, so links to new Thread will result in an 404. (To use a long way, and some bad sentence building, to explain it)
4952 4953
Writing a Simple Operating System from Scratch.pdf
You can post pdf files even if they are disabled in the config files. Any fix for this?
It's gold. Thanks.
hi, how do you make a youtube appear with the [embed] link after it like lynxchan? Is it css or Java? Thanks
I have beta of code running on a test server so ironing out kinks and adding functionality needed. And I still have to work out moving all the current data to new database too so hopefully that won't take too long. Motivation unfortunately also plays in on when it will be completed, not every day I am motivated to mess around with the code.
>not every day I am motivated to mess around with the code.
Better to wait, to fix bugs is a downer.
Are you going to fix the bug where people can make Empty Posts?

Just like that, by clicking New Reply with an empty text box, it's possible to create an Empty Post.
Some asshole could probably fill a thread with shittons of empty posts to make it hit post limit, permanently locking it.
You could fix this by making all posts require a minimum of 1 letter before they can be posted.
That way someone could still do the whole "One letter per post" thing so people can still press F to pay respects while saying nothing else.
4983 4984
I don't think it should be removed. It can be funny in moderation, and we already have a report feature for if people are spamming it.
You're right.
Can mods unlock threads that have reached the post limit?
>Can mods unlock threads that have reached the post limit?
There is a bug in the current code that results in threads that reach 1000 replies starts bumping again. I am not sure I will add this bug to new code or add functionality to keep certain (un-pinned) threads be without bumplimit as it is an edge case.

As of now the new code don't allow blankposting, but if it is a desire for it and after talking to staff they want it too it can easily be changed.
Will the current archived threads remain intact in the new code, or is it time to panic and begin manually archiving all of the threads I want to revisit?
I will not move to new code until all threads (current and archived) are moved to it and functioning. So no need to worry. I just hope that this won't be a big task and delay moving to new code too long. I have to admit I haven't started looking into the movement yet. Thought it was best to wait until I had the entire new database structure hammered out and set in stone.
Could a built-in "Post polls with designated time limits attached to posts" system be added to the site?
The bottom of every thread has a clickable "Auto-Refresh" thing you can click to turn auto-refreshing off. Could one of those be added to the top of threads, too?
It would make viewing the site in mobile mode more convenient since you wouldn't need to scroll to the bottom before you can turn off auto-refreshing.
A Mobile Mode that hides all images by default to increase load times would also be great, but then again I could see shill bastards turning that on so they don't have to look at horse pussy. Maybe add the ability to flag your images as "Load no matter what, even in mobile mode".
>Could a built-in "Post polls with designated time limits attached to posts" system be added to the site?
It would be possible, but not in any plans at the moment as there is several 3rd party sites that has all the functionality built in. One solution that might be better and cleaner is to add embedding of, as an example, Strawpoll links like for YouTube videos.

>The bottom of every thread has a clickable "Auto-Refresh" thing you can click to turn auto-refreshing off. Could one of those be added to the top of threads, too?
>It would make viewing the site in mobile mode more convenient since you wouldn't need to scroll to the bottom before you can turn off auto-refreshing.
I will add this functionality to the new code. But if you want to turn it off for all threads there is an option in the [Options] menu to turn off Auto update by default.

>A Mobile Mode that hides all images by default to increase load times
I'll look into this as of now there is just an simple "hide all images" (still loading them). I will look into changing that code to not load unless revealed. An option to "Load no matter what, even in mobile mode" I don't think I will put in any work to do because it will add an extra flag to keep track of and would add unnecessary complexity that two lines of custom JS would render useless.
[Go to bottom] on mobile doesn’t work.
t. iShit.
But mobile has quick reply box so that’s a bonus.
## Admin
>[Go to bottom] on mobile doesn’t work.
Looks like Apple chose to do their own thing, since iOS 8, and break RFC 1738. And because they are as big as Microsoft was during the IE era (especially on mobile) they get away with it with good help from kool-aid and fanboys. I'll do some testing and try to implement the workaround to force Apple to acknowledge there is an Anchor link in the URL.
( https://stackoverflow.com/questions/22643032/anchor-tag-doesnt-work-in-iphone-safari )
Thank you for answering, and good luck on the workaround.
Also, fuck apple.
5030 5038
Hey Pupper, i've noticed a Bug. the "Go to top" Button at the bottom of the page does nothing,at least it doesn't for me.
>It works fine in Firefox.
Im Using Chromium based browser.
5033 5038
I don't like that files have a random hash as it's default file name, rather than chronologically increasing numbers. it makes downloading something and leaving it in a file easy because chronologically increasing numbers means files will be chronologically ordered automatically. as of right now, there is no chronological file name if a file has a user-given name making file organization even harder. I don't like it, and want it reversed.
>there is no chronological file name if a file has a user-given name making file organization even harder
I prefer the random name, it makes it harder to our adversaries to keep track of the posts. Also it has the advantage to avoid to rename every file before to post it.
5035 5038
>post tracking
for all practical proposes a unique hash is hardly different from a unique number. searching either will yield the same results, in finding a specific post. If the date of a post is already listed, a chronological name is worthless. and I genuinely don't understand the second part of your post. I understand the preference. But the minimum I would want is an alternative download method like what 8kun has. But of course, I prefer how /mlpol/ did it like a week ago.
5036 5037
This reminds me of faggots wanting to dig archived threads. Why would you need to do that?
never said anything about archives, but as I said. I like how because the files are named sequentially, it makes downloaded files sort chronologically automatically, making file sorting very very easy.
It is absolutely trippy seeing my post from over a year ago in an active thread.
Sometimes files get lost and we know we can find them in an archive due to unique filename or unique keywords in certain posts. Like map files, for example. Or a prediction that came true. Or an info dump. Or just lulzy conversations.
## Admin
5043 5057
I'll check it, I know some browsers for some reason don't support Anchor links (RFC 1738). Or it could be that they don't like the "Last 50 posts" link format. Does this happen on "View all posts" pages or only "Last N posts" pages?

>random hash as it's default file name
The Hash is an hash of the content of the fille so not a random hash. The reason this is done is so we don't have to save multiples of the same file.

> But the minimum I would want is an alternative download method like what 8kun has. But of course, I prefer how /mlpol/ did it like a week ago.
So an link similar to "save as original filename" that downloads and saves files as the timestamp of when the post was made?
Is it possible to align text to the right? I think I remember seeing it done before but I might also just be mistaken.
## Admin
>Is it possible to align text to the right?
If you mean like a markup code for right alignment (similar to bold) not at the moment, but I will look into adding it (without breaking too much with css.
Lmao, this is what happens when I click [Embed], then shrink it back down.
## Admin
I'll have a look at the javascript to see what might have happened.
Does this happen each time on your browser, or was this a one off? If happens each time what browser do you use?
Each time. Safari browser.
## Admin
I assume it is only on Twitter embeds this happens.
No The "View all" and "Last n Post" Works fine. its the "Go to top" As well as the "Go to bottom" Buttons.
## Admin
5063 5067 5068
I'll do some investigation to see if there is a workaround (I haven't gotten to it yet). Worst case I'll add some javascript that does the scrolling. I assume it is Safari browser (only one I can remember that don't work as of now with the "Go to top/bottom" links).
Just a question, but can I get an ETA for getting the archive back up? Thanks for doing the update btw, it all looks nice
## Admin
The old threads can be loaded now, only thing that is missing is a way to browse through them.
Aiming for better than what was, but as an quick fix I can create a list similar to how it was in old code while I work on a better system. So by tomorrow I should be able to have a simple list up and running.
Thanks m8, I look forward to seeing it! Take a picture, friendo
Im Using a chromium based browser. Iridium
yo fam where be the git repo of ASPNetChan?
It Works Now, Thanks Pupper!
## Admin
Did a small update:
>Added Pagination where you can browse previous posts while retaining the limit on how many replies to show [Last n Replies]
>The View all/normal view of thread will now show all replies without limiting to last 1000 replies

Please give feedback if there is any problems you encounter or changes you want to see.
5245 5247
While I generally am support of things being as user friendly as possible, I also appreciate there being a certain learning curve to using this site. It needn’t be too intuitive. The learning curve keeps normies at bay, and ensures that the site will only be used by those with enough patience and intelligence to figure out how it works. Like solving a puzzle in order to unlock a door. Not that I am against improving the site but this is omething that you might take into consideration.
There is something to be said for not making things too easy especially since most of our new arrivals cant even be sussed to read the OP of the very obvious newfag thread, which even when collapsed displays the policy page in a very obvious and deliberately labelled link.
>The learning curve keeps normies at bay
## Admin
Regarding JFIF files and user having problems uploading them. JFIF is supported and most likely reason for problem is that either the file is a different image format (that is unsupported) or that it is corrupted. You can try using Gimp or another editor to view image properties on the image you have trouble uploading to make sure it is an JPEG image. If it says JPEG and you still have trouble please use this thread or create another one on >>>/qa/ to continue inquiring about it.
## Admin
Going to do a little maintenance hopefully it won't take too long or affect site too much.
Awesome! Thank you so much Pupper, you are amazing!
Is there a way to randomize the order images show up in on Ponerpics?
The thread >>>/mlpol/282598 → Anonfilly Thread - Playtime Edition, has currently 722 posts, it passed the bumping limit; however it is my understanding that it should bump either way in the /overboard/ view, but it is not happening.
## Admin
The change I made was that only pinned threads will keep on bumping in /overboard/ after they pass bumplimit. This is because pinned threads are not at top of /overboard/ as they would be on their respective boards.
2 viewpoints.jpeg
## Admin
I see I have made an error somewhere along the way regarding the anchor links (not sure when I added the error that made anchor links break). But all should be good now and Top, Bottom and Post anchor links should work now. Sorry for the problems people have had using them, or more correctly trying to unsuccessfully use them.
## Admin
Also fixed small bug with the (You) notification where the notifications were not cleared on load of page so all pages with (You)'s sent notification/notification sound on first "Update".
5270 5271
If you could implement the random image banners/christmas things to redirect or load with some specific url set, that would be nice. I see a cute one i want to save, but trying to save it just saves a completely random one.
## Admin
The Christmas images are all fetched from Ponerpics (searched for Christmas). I would recommend getting them from there as the images used in lower right corner is made smaller and optimized for faster load so they are not the best quality. But I will look into adding an fixed url that can be used for the random images.
## Admin
To help you out this is the IDs of all Christmas images currently rotating
790227, 829205, 1030862, 1032959, 1038260, 1048347, 1312170, 1325860, 1615607, 1646417, 1900421, 1903802, 1905123, 1905777, 1909946, 1916323, 1918405, 1918983, 1918985, 1919254, 1923778, 2219923, 2221924, 2226401, 2228917, 2231747, 2246454, 2268320, 2325734, 2424715, 6040450, 6043820
Thank you, friend. <3
The videos now have the Picture-in-Picture feature.
## Admin
5452 5453 5455
ie pone.png
Going to do a small update to the code and server today, so there might be a small amount of downtime at one point. Going to try to coordinate downtime with lull in posting, but wanted you all to know just in case.
Also as always report any errors you encounter after update, but hopefully I won't fuck up and there won't be any to report.
Cool, thanks Pupper!
5456 5457
Update completed, hopefully no new bug were introduced. Let me know if any of you encounter any.
## Admin
Aaaaand. Forgot to add Capcode.
5458 5459
I'm trying to post a pic in thread >>>/mlpol/301871 → and I'm getting a "Not Found" message.
Same problem in thread >>>/mlpol/292877 →
I found a workaround.
Posting pics without text will fail, but adding some letters, the post is successful.
## Admin
I will look into this tomorrow (sadly need to go to sleep). Hopefully just a tiny thing I missed and forgot to test.
Sorry for the inconvenience but glad you found a workaround.