The Legendary Next Update (365)

1 Name: !WAHa.06x36 2005-10-12 15:51 ID:gBva8ggI [Del]

So, as Xee is almost done, and I'm mostly waiting for external contributions, I decided it was time to start working on the Legendary Next Update for Kareha and Wakaba.

Only problem is, it's been a long time, and I've forgotten most of what needs to be done. Most of it is mentioned SOMEWHERE on the board, though. So this is your chance to pipe up with your pet feature request, or if you're feeling really helpful, to dig out some old posts that mention things that need fixing.

Hop to it!

2 Name: Anonymous 2005-10-12 16:25 ID:hjzD4Li4 [Del]

How about listing what dmpk2k or you have done already?

  1. Split threads and posts into separate tables. You're repeating the lasthit and parent column over and over.

3 Name: Anonymous 2005-10-12 16:58 ID:Heaven [Del]

Kareha:

  • Conforming of navigation to 0ch standards for conveniency, efficiency, etc., i.e.
  • Navigation links also at the bottom of the thread pages
  • "First 100" to be replaced with "Next 100" (and "Previous 100") in thread pages
  • First post always showing up, even for later quoted ranges. Currently, you can supress this on 0ch by identing "n" before the post range.
  • Default l50 links in all lists
  • Automated archiving, i.e.
  • Automatic thread closing at a configured number of replies and/or thread size (recommended default values: 1000 posts or 512KB)
  • Automatic closing and moving of threads that do not get any activity in a certain timeframe (based on average activity frequency of the board)
  • Bonus features (not really important):
  • Fusianasan (reveal hostname by entering fusianasan or [string] into Name field)
  • Customizable Capcodes (please more than just "Admin", perhaps fancy colours)

4 Name: Anonymous 2005-10-12 17:13 ID:Heaven [Del]

Wakaba:

  • Better handling of the code that automatically inserts the >> links for quote-replies. Right now it inserts them numerous times if you go back and forth several times before actually hitting "submit".
  • Reintroduction of "Marked for deletion (old)" (it's just handy to have that)
  • Prune-limit mode that is defined by number of files or size sum of files on a board

5 Name: Anonymous 2005-10-12 17:15 ID:Heaven [Del]

Additionally, I'd like WakabaMark to be fixed somehow.
I don't know how, though. You know my resentments.

Finally, thanks for your fine work throughout all this time.
It is appreciated!

6 Name: !WAHa.06x36 2005-10-12 17:30 ID:gBva8ggI [Del]

I fixed the Javascript a bit, and uploaded it for these boards. Try shift-reloading to get the new code, and see if cookies work better now that I'm not using cargo-cult code.

7 Name: !WAHa.06x36 2005-10-12 17:41 ID:gBva8ggI [Del]

(Lots of stuff in here, click "whole post"!)

> How about listing what dmpk2k or you have done already?

Truth be told, I haven't even looked over his contributions yet. I'm doing some work on Kareha first. He did bandwidth load balancing for Wakaba across several servers, and image file archiving, at least. Plus some proxy checking and other goodies.

> Split threads and posts into separate tables. You're repeating the lasthit and parent column over and over.

Bad idea. Adds a lot of code complexity without adding any new functionality. The current solution is simple and robust.

> Automatic closing and moving of threads that do not get any activity in a certain timeframe (based on average activity frequency of the board)

This is nearly impossible to get right, and I don't think I'm going to try unless someone can think up a reliable algorithm that uses the data that is availble (not much).

> Reintroduction of "Marked for deletion (old)" (it's just handy to have that)

I tried several times, and concluded it wasn't worth the code and database overhead it would take. This feature is relatively easy to implement for Futaba-style post number limited boards (and Futaba implements it really stupidly), but it gets tricky when you have different deletion modes and want to do it right.

> Prune-limit mode that is defined by number of files or size sum of files on a board

Size limit is already implemented. I might add file limit, but I'm not sure it's all that useful, when you already have the size limit.

The rest, I agree with, and I will try to get most of it done. I'm sure there's some more stuff hidden in old threads, though!

8 Name: test 2005-10-12 18:18 ID:Heaven [Del]

What wakaba needs is that SILLY_ANONYMOUS too! :D

9 Name: test 2005-10-12 20:46 ID:Heaven [Del]

> Reintroduction of "Marked for deletion (old)"

I actually don't like that, and think wakaba should no longer use the futaba style of dropping threads by default. Why not use the least-popular option instead? If a thread is in demand, let it live.

10 Name: Anonymous 2005-10-12 22:19 ID:UAOHJNRy [Del]

>>9
That's an option, you pick which one you want.

11 Name: Anonymous 2005-10-13 01:41 ID:Heaven [Del]

>>9
I mentioned the option because on highly active boards it's helpful to know which threads will be gone in the next few minutes.

12 Name: test 2005-10-13 02:11 ID:Heaven [Del]

>>10
Exactly, but considering a lot of people can't make heads from tails in config.pl, how about a saner default?

>>11
That's true, but if least-popular threads are set to be deleted, instead of oldest-first, you don't have to guess.

13 Name: Anonymous 2005-10-13 02:13 ID:Heaven [Del]

I have always found that it's more difficult than one would think to implement features that will measure "popularity" in a satisfying way that isn't open to abuse in one way or another.

14 Name: !WAHa.06x36 2005-10-13 04:30 ID:gBva8ggI [Del]

I've been meaning to change some of the defaults away from Futaba-style to saner behaviours. Any suggestions for what to change are welcome. So far:

  • Pruning set to furthest-back instead of oldest.
  • Size limit instead of post number limit, maybe?
  • I'll add thread closing to Kareha, but I was thinking of setting the default behaviour to never permasage or close threads.

15 Name: Anonymous 2005-10-13 06:01 ID:Heaven [Del]

> Pruning set to furthest-back instead of oldest.

I don't like this one. You just have to continually age a topic (until it hits the permasage treshold) in order for it so survive a long time. Normal users might have good reason to ignore simply it, though...

> Size limit instead of post number limit, maybe?

Sounds good.

> I was thinking of setting the default behaviour to never permasage or close threads.

I guess I don't have a strong opinion on this one. As long as the values will be customizable, I don't really care, I suppose.
Also: I just noticed that "¦" in tripcodes will work correctly but turn into "�U" through the cookie on /soc/ but not on the sandbox.

16 Name: Anonymous 2005-10-13 06:02 ID:Heaven [Del]

> Also: I just noticed that "¦" in tripcodes will work correctly but turn into "�U" through the cookie on /soc/ but not on the sandbox.

This might have been worded a bit akwardly. What I meant was: Tricodes work fine with ¦ on both the sandbox and /soc/&/sup/, although the latter boards will strangely turn the ¦ into a U? after the reply button was hit.

17 Name: !WAHa.06x36 2005-10-13 06:16 ID:ReFmOAs0 [Del]

>>16

Yes, it's throwing Javascript errors for me if I use that character. Gonna look into that some more.

18 Name: !WAHa.06x36 2005-10-13 10:11 ID:gBva8ggI [Del]

>>16

What browser are you using? I think I've tracked down the problem, and it's most likely a browser bug. The ancient Firebird (not fox, even) version I tested at work had the same bug (character set issues in the escape() and unescape() functions). It looks like your browser also doesn't follow the spec for how they are supposed to work.

19 Name: Anonymous 2005-10-13 11:43 ID:Heaven [Del]

>>18
Firefox 1.0.7, WindowsXP Pro.

20 Name: !WAHa.06x36 2005-10-13 12:03 ID:gBva8ggI [Del]

>>19

I can't reproduce this on Firefox 1.0.4 nor Safari on the Mac, but that ancient Firebird had a similar problem (but even worse).

Anyone else? Try post with a | in your name.

21 Name: !WAHa.06x36 2005-10-13 12:10 ID:gBva8ggI [Del]

Also, here's something that would be useful, but is a bit more work than I feel like doing right now:

A simple thumbnailing program, that has no external dependencies and can be compiled to a maximally compatible, statically linked executable, for those who have hosts that don't have any image processing software, and don't allow you to compile your own. Should be able to load GIF, JPEG and PNG images, and produce JPEG thumbnails. Should contain all the source code it needs without linking to external libraries (it's easy enough to just stuff libjpeg, libpng, and zlib into the distro).

If anyone is lacking a programming project, feel free to take up this one! If you do, I can provide some fairly fast and good-looking image scaling code (or just rip it out of mangariini yourself).

22 Name: | 2005-10-13 19:57 ID:Heaven [Del]

> statically linked executable

I have to disagree with this. It should run in perl too.

  • If you're running wakaba, obviously perl must be there
  • Most hosts that library-poor don't provide compilers (or shell) either

23 Name: Anonymous 2005-10-13 22:46 ID:0dCD+kFU [Del]

The point is to make a portable file, so you do not /have/ to compile it on the host. Statically linked lets you use libraries that the host does not have.

Sure, doing it in perl is an option though.

24 Name: 19 2005-10-14 00:36 ID:Heaven [Del]

>>20
"|" is not "¦"

25 Name: | 2005-10-14 00:37 ID:Heaven [Del]

Anyway, test with |

26 Name: Anonymous 2005-10-14 00:38 ID:Heaven [Del]

| stays |

27 Name: ¦ 2005-10-14 00:38 ID:Heaven [Del]

Test with ¦

28 Name: !f53YGgdzmM 2005-10-14 00:38 ID:Heaven [Del]

Weird, ¦ now stays ¦.
Testing #¦ now.

29 Name: Anonymous 2005-10-14 00:40 ID:Heaven [Del]

Funky, works... I am pretty sure the error has something to do with the characters preceeding the "¦" in the unprocessed tripcode. It begins with a "`"

30 Name: !tFiTnDB9dg 2005-10-14 00:56 ID:Heaven [Del]

testing #`¦

31 Name: !nFxirOdZ2I 2005-10-14 00:57 ID:Heaven [Del]

testing #`abcdef¦

32 Name: Anonymous 2005-10-14 00:57 ID:Heaven [Del]

Well, both >>30 and >>31 didn't change the ¦ into ?U so I am out of ideas what happened...

33 Name: !WAHa.06x36 2005-10-14 05:01 ID:gBva8ggI [Del]

>>32

Your browser momentarily regressed to an old bug and then got better? Who can tell?

>>22

Running in pure perl would be ideal, portability-wise, but in practice implementing a JPEG loader and saver from scratch in Perl is both a lot more work than anyone wants to do, and the result will also be too slow.

As was already stated, making a statically linked executable lets you distribute pre-compiled binaries that people can just upload along with the script.

34 Name: Anonymous 2005-10-14 12:36 ID:hjzD4Li4 [Del]

Tell me more about these pre-compiled binaries. I thought that was impractical...I mean, instruction set differences and so on.

35 Name: !WAHa.06x36 2005-10-14 13:11 ID:gBva8ggI [Del]

Well, a lot of machines run on x86 these days, so that covers a lot of it. And you could pre-compile for a couple of other architectures, and have it pretty much covered. Linux and unixes in general make it ridiculously hard to distribute binaries, as opposed to Windows or Mac OS, but it's still possible with a bit of trickery. Avoiding dynamic libraries helps a lot.

36 Name: Anonymous 2005-10-14 13:29 ID:8YdETsDh [Del]

I had a number of good old threads from this board bookmarked so I could read them later and wrap my head around their ideas, but then I lost them all in a hard drive crash (strike two, Western Digital!). I also had a number of Japanese BBS's linked from this board bookmarked so I could take a look at their software's functionality and get some other ideas.

Anyway, these are all non-template suggestions:

  • Topical category metadata in new thread creation so only one instance is necessary per site (further fine-grained behavior with PATH_INFO would let you nest one category inside another and view multiple categories of threads at once).
  • Thorough search functionality a-la notchan, using PATH_INFO. This might not be possible without implementing a per-post metadata system though.
  • Elaborating on the above, per-post metadata for "sage" status, for future-proofing in case someone wants to remove the functionality from the e-mail field (onto a checkbox, for example).
  • config.pl parameter for a generic image that takes the place of a deleted image (ie, Hello Kitty)
  • Fine-grained banning options that let you choose whether or not the user is blocked from reading a board, posting to a board, or both. Another parameter defines the duration of his ban ('0' for permaban), and another defines a reason/message displayed when the user tries to access a board.
  • Replace HTML error pages with dialog box equivalents using JavaScript.
  • Kill user deletion. I can't see any case for when it'd have constructive uses.
  • Conversion to mod_perl?

I also have an early idea swimming around in my head about only bumping threads a few positions up, instead of to the top. Another idea is actively bumping threads down, either by a few positions or to the bottom. I'm not exactly sure yet what good it'd be for.

Also...

>* I'll add thread closing to Kareha, but I was thinking of setting the default behaviour to never permasage or close threads.

I think this is ideal for the time, until we have enough statistical data to derive thorough auto-permasage and auto-delete/archive algorithms. Just add the functionality for mods to manually set these statuses, but remove the "permasage at 1000" behavior.

The standalone thumbnailer project is a great idea too. As a suggestion, how about adding functionality to also read and thumbnail document files like TXT, PDF, and DOC?

37 Name: Anonymous 2005-10-14 13:32 ID:Heaven [Del]

Oops, forgot to link the first point to my original thread: http://wakaba.c3.cx/sup/kareha.pl/1127326007

Oh, and see if dmpk2k is willing to port over the proxy detection and load-balancing/distributed server cluster functions to Kareha. Those would be neat.

38 Name: Anonymous 2005-10-14 13:56 ID:Heaven [Del]

> Thorough search functionality a-la notchan, using PATH_INFO. This might not be possible without implementing a per-post metadata system though.

I think this not something that needs to be part of the software itself.
Besides, Google mostly provides that function just fine with site:blahblahblah.com blah

Also, what is "user deletion"?

39 Name: Anonymous 2005-10-14 14:13 ID:Heaven [Del]

>>38
Sorry, I guess I should've worded that more clearly. I was referring to the ability for users to delete their own posts. It's counter-productive to discussions when a user deletes his own post and a quick replier later quotes or references it. It also encourages users to be lazy with posting, because they can always go back and hide their mistakes.

40 Name: 38 2005-10-14 14:15 ID:Heaven [Del]

Oh okay.

I agree, for Kareha at least.

41 Name: !WAHa.06x36 2005-10-14 15:30 ID:gBva8ggI [Del]

> metadata

Not sure, that would require a database redesign and I don't want to force people with a current install to do that. Also, it seems something like that would work better for a whole new script, properly designed around the idea.

> config.pl parameter for a generic image that takes the place of a deleted image (ie, Hello Kitty)

Ah, good, been meaning to do, forgot about.

> Fine-grained banning options that let you choose whether or not the user is blocked from reading a board, posting to a board, or both. Another parameter defines the duration of his ban ('0' for permaban), and another defines a reason/message displayed when the user tries to access a board.

None of those seem useful to me, because I'm of the opinion that bans are to prevent abuse, not to punish users.

> Replace HTML error pages with dialog box equivalents using JavaScript.

Would require a bunch of hidden-iframing and such. I'd like to do a complete re-design full of javascript trickery, and this idea would fit better in such a context... That is to say, I'm lazy and the current version is robust, and I'm loathe to go around changing it, since it would introduce new problems.

> Kill user deletion. I can't see any case for when it'd have constructive uses.

On image boards, it has a very definite use - people do fuck up and post in the wrong thread, or create new threads. It's better if they can clean up after themselves. In Kareha, you can already disable deletion.

> Conversion to mod_perl?

As far as I know, it should work in mod_perl already, modulo some prototype bugs. I'll try to get those fixed.

> The standalone thumbnailer project is a great idea too. As a suggestion, how about adding functionality to also read and thumbnail document files like TXT, PDF, and DOC?

That would require a LOT of code, especially when you don't want external dependencies, so it's a bit iffy.

42 Name: Anonymous 2005-10-14 16:30 ID:Heaven [Del]

Forgot this one:
The general functions of imageboards do not seem to be clear to most people that eventually come around, the influx of total newbies is still big. Many neither know what sage is, how to properly reply to threads, what tripcodes are, etc.
Because of that, I believe it would be good to include a default link at the bottom of the unordered list at the bottom of the new thread form that links to http://wakaba.c3.cx/docs/docs.html#UsersGuide

Relevant:
http://dis.iichan.net/idc/kareha.pl/1128824710/12-

43 Name: Anonymous 2005-10-14 16:31 ID:Heaven [Del]

PS: I always wanted to say this: The # anchors on the TiddlyWiki automatically scroll me (FF, 1.0.7) just below the actual text box of the entry. Is that a bug, a feature or... ?

44 Name: !WAHa.06x36 2005-10-14 16:33 ID:Heaven [Del]

Uh, kind of a bug. I really should fix it, but, lazy.

45 Name: Anonymous 2005-10-14 19:39 ID:1l2MEdqn [Del]

>>41

>database redesign

You mean requiring SQL software, or just making backwards-incompatible changes that would screw up old threads?

>prevent abuse

Are you only referring to flooding and spamming, or also trolls and flamewars?

Finally, out of curiosity: how much of the functionality in the .js file do you think could be properly implemented into a new or existing perl script?

46 Name: !WAHa.06x36 2005-10-14 21:01 ID:Heaven [Del]

> You mean requiring SQL software, or just making backwards-incompatible changes that would screw up old threads?

I mean, needing to alter the table that is already in the database. I don't want to try to do that any more than I have to, as it's pretty hard to get right in a database-independent manner.

> Are you only referring to flooding and spamming, or also trolls and flamewars?

Yes, only flooding and spamming. Trolling and flamewars are not a problem one should use banning to try and solve.

> Finally, out of curiosity: how much of the functionality in the .js file do you think could be properly implemented into a new or existing perl script?

Well, if you serve up dynamic pages, you can do the form-filling on the server, but that's about it. The rest is dynamic stuff.

47 Name: Anonymous 2005-10-14 22:48 ID:1l2MEdqn [Del]

>>46
Well, I haven't checked to see exactly where the ban functionality exists in Kareha, but my idea is something along the lines of: (1) encrypting the offender's IP, (2) writing it to a bans.txt list, and (3) writing a parameter next to the IP specifying the time when the ban should be lifted. Of course, you also need underlying code to check bans.txt every time a user tries to post or reply, and also to remove a ban entry at its specified time.

This thread has been closed. You cannot post in this thread any longer.