The Legendary Next Update (365)

84 Name: Anonymous 2005-10-17 12:11 ID:Heaven [Del]

> some other trickery

I smell JavaScript coming in about >>90-120

162 Name:   2005-10-19 16:45 ID:gBva8ggI [Del]

Well, there are some issues to consider here:

  • Hardly anybody needs to ever use fusianasan. It's a gimmick. Design decisions should not be made around it.
  • The strings may be strange, and combining fields isn't the best design possible, but this is a 0ch clone, after all. If I were designing something from scratch, I'd do things differently, but as it is, people are expecting 0ch behaviour, and it would confuse them if the script worked like 0ch in some ways but not others.
  • I might consider adding additional strings that trigger sage and fusianasan, but I'm not sure what they should be.

In the end, people actually enjoy the 0ch quirkiness. I know I do. I know about designing good interfaces, but there's something fun about an interface that is a little bit quirky, as long as it doesn't get in your way, and these things don't.

239 Name:   2005-10-22 06:31 ID:Heaven [Del]

>>236

mode_image copies the Futaba/Futallaby HTML style and uses the same CSS, so yeah, it should be, and no, it won't be.

>>238

This would need writing to yet another file, and it also makes it less obvious how to get the same secret on several boards.

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

| stays |

259 Name: coda 2005-10-22 15:01 ID:1jzeBBcT [Del]

the text

c < d

causes a <d> tag to be opened, which is not on the list, and therefore all the text until the next tag will be deleted. a better behavior in this case would be to just convert that < to &lt;. you even ought to do this for

a < b

too, despite the fact that b is a valid tag, because who the hell leaves the closing angle bracket out of their HTML tag?

creating the correct regexes for this is an exercise left to the reader.

190 Name:   2005-10-20 11:11 ID:Heaven [Del]

Also, for multiple board installations, use symlinks to allow you to keep just one installation of the main code files.

243 Name:   2005-10-22 10:54 ID:Heaven [Del]

If you want to have a look at what the code actually does to dig out flaws, here is the current version:

sub sanitize_html($%)
{
my ($html,%tags)=@_;
my (@stack,$clean);
my $entity_re=qr/&(?!\#[0-9]+;|\#x[0-9a-fA-F]+;|amp;)/;

while($html=~/(?:([^<]+)|<([^<>]*)>?)/g)
{
my ($text,$tag)=($1,$2);

if($text)
{
$text=~s/$entity_re/&amp;/g;
$text=~s/>/&gt;/g;
$clean.=$text;
}
else
{
if($tag=~m!^\s*(/?)\s*([a-z0-9_:\-\.]+)(?:\s+(.*?)|)\s*(/?)\s*$!si)
{
my ($closing,$name,$args,$implicit)=($1,lc($2),$3,$4);

if($tags{$name})
{
if($closing)
{
if(grep { $_ eq $name } @stack)
{
my $entry;

do {
$entry=pop @stack;
$clean.="</$entry>";
} until $entry eq $name;
}
}
else
{
my %args;

$args=~s/\s/ /sg;

while($args=~/([a-z0-9_:\-\.]+)(?:\s*=\s*(?:'([^']*?)'|"([^"]*?)"|['"]?([^'" ]*))|)/gi)
{
my ($arg,$value)=(lc($1),defined($2)?$2:defined($3)?$3:$4);
$value=$arg unless defined($value);

my $type=$tags{$name}{args}{$arg};

if($type)
{
my $passes=1;

if($type=~/url/i) { $passes=0 unless $value=~/(?:^$protocol_re:|^[^:]+$)/ }
if($type=~/number/i) { $passes=0 unless $value=~/^[0-9]+$/ }

if($passes)
{
$value=~s/$entity_re/&amp;/g;

if($value=~/"/) { $value="'$value'" }
else { $value="\"$value\"" }

$args{$arg}=$value;
}
}
}

my $cleanargs=join " ",map { "$_=$args{$_}" } keys %args;

$implicit="/" if($tags{$name}{empty});

push @stack,$name unless $implicit;

$clean.="<$name";
$clean.=" $cleanargs" if $cleanargs;
$clean.=" $implicit" if $implicit;
$clean.=">";
}
}
}
}
}

my $entry;
while($entry=pop @stack) { $clean.="</$entry>" }

return $clean;
}

151 Name: Anonymous 2005-10-19 08:57 ID:Heaven [Del]

You may want to consider releasing Kareha & Wakaba under some sort of license at this point, just to make sure that the scripts always stay free for people to use.

http://en.wikipedia.org/wiki/Free_software_license
http://en.wikipedia.org/wiki/Software_License_Types#Free_software_licenses
http://en.wikipedia.org/wiki/Copyleft

154 Name: Anonymous 2005-10-19 13:28 ID:1l2MEdqn [Del]

>>148

>5) Seperation of sage et al from the email field to something else...

This is kinda what I had pushed for earlier in >>52. I think that separating the sage (aka, "don't bump"), fusianasan (aka, "show IP"), and ID:Heaven (aka, "no ID") functions from any particular post elements in the main scripts would be ideal for implementing Kareha in systems where inputting a certain string to trigger these functions is not intuitive (ie, every board outside of the 2ch/Futaba family). These trigger strings (S_DONTBUMP, S_SHOWIP, S_NOID) and their assignment to a certain form field input could be instead implemented individually in each template.

>2) Have the string to sage and fusianasan defined as a constant in config
>3) A specific string for ID:Heaven instead of anything in the email field

As I mentioned above, this would better work if they could be modified within each template in the list of string variable definitions.

>4) Cookie preferences such as "Don't use expanding textarea" which leaves it small or big.. or another option for that choice as well; an option to not save Name/Email automatically; anything else that is useful?

I like this one, as far as saving name and e-mail inputs go. I occasionally browse 4-ch at school, and it'd be nice for just an option to clear cookies when you're done and don't want anyone else to use your name, e-mail, and deletion password.

What the hell is RENZOKU?

P.S. >>151 is RMS

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

What wakaba needs is that SILLY_ANONYMOUS too! :D

50 Name: !WAHa.06x36 2005-10-15 19:03 ID:Heaven [Del]

First thought: It would eliminate the concept of sageing as a protest entirely.

216 Name: Anonymous 2005-10-21 15:04 ID:Heaven [Del]

>>208

> multi-page links (1-, 101-, 201-, etc) at the top of subpages

This is just implemented on some 0ch types. 2channel doesn't use it (at least on no board that I know of).

229 Name: Shii the Metal Idol 2005-10-21 18:13 ID:z/kxsMjQ [Del]

0ch-PHP had this nifty feature where if it was a certain "high bandwidth" time of day, then you couldn't view the whole thread.

Hm... that is kind of useless on a worldwide forum, huh?

But there should still be an option to keep people from viewing more than 100-200 posts, as an emergency way of saving bandwidth.

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.

241 Post deleted by user.

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

>>18
Firefox 1.0.7, WindowsXP Pro.

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.

312 Name: Anonymous : 2005-10-24 18:15 ID:Heaven [Del]

Oops. I got confused by the "link to parent post" thing. Maybe you could make that an anchor as well.

Not getting quote highlighting is the point, isn't it? I guess if you really want WakabaMark to spread you can force it on everyone who doesn't know how to change, but it would be nicer to make people choose it so we don't have to constantly see the results of accidental markup. This is more about social engineering than your program, though.

220 Name:   2005-10-21 15:45 ID:Heaven [Del]

Kareha can't use different layouts for posts on different pages, except by CSS trickery. I could add the second colon, though.

Also, I've implemented optional thread closing now, but there's no extra post. That would just be a total mess to implement, and would make re-opening threads annoying, if such a feature was requested. It replaces the posting form with a notice that the thread has been closed, instead.

48 Name: Anonymous 2005-10-15 17:08 ID:Heaven [Del]

I've also had an idea swimming around: an option to only count actual thread bumps in MAX_RES (not "sage" posts). I think it would lead to making each bump more valuable so that people don't do so wastefully and unnecessarily.

359 Name: Anonymous : 2005-10-31 12:45 ID:Heaven [Del]

>>357
by "including," I mean "plus."

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.

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.

93 Name: anon!21anon4H3U 2005-10-17 14:00 ID:Heaven [Del]

>>91 Ohshi-, time paradox!

174 Name: Anonymous 2005-10-20 02:03 ID:Heaven [Del]

> Making them configurable from site to site is really dumb, because it would create an unthinkable usability mess.

Why? Let people figure out things themselves, if they are so keen on changing their keywords. They can get together in their own webmaster threads and figure this out. I don't see why this should be solved here.
Of course I think this is a dumb idea in the first place. Nobody needs to know what fusianasan and sage are. Write a FAQ with two sentences about it and/or let your oldtime users tell newbies. Two frickin' words, and you people talk about it as if it were something like making up a new system of romanization!

> Then why not simply boil it all down to the comment field, with trigger strings for inputting the name, e-mail, sage, ID:Heaven, and fusianasan? You can get a lot more minimal with the current interface.

That's a bit too much. You want to talk about sage and fusianasan in the comment field, not trigger it with it.
I suspect you are joking here, though. Design is about what you can take away and still remain optimal conveniency/efficiency on the user part, not about taking as much away as you are technically capable of.

362 Post deleted by moderator.

257 Name: Anonymous 2005-10-22 14:23 ID:Heaven [Del]

Semantical nitpick: shouldn't the "Page top" link be called "Thread list"?

234 Name: Anonymous 2005-10-21 22:20 ID:Heaven [Del]

requesting features:

  • >>n and >>q and anything else that can be used in the url.
  • a "catalog" page for wakaba, like some futaba boards have.

71 Name: Anonymous 2005-10-17 08:18 ID:Heaven [Del]

>>63
Nevermind, the issues seem to have resolved themselves within the hour of the new version being uploaded.

More stuff:

To more closely resemble the 2ch look, how about prefixing thread title headers in the main board page with a 【position:postcount】thingie?

And as suggested before, the navigation links on the bottom of individual thread pages should include "Previous 100" (ie, all posts before the first post in the URL) and "Next 100" (ie, all posts after the last post in the URL). Of course, this could get screwy if you're using reverse order and out-of-order posts in the URL, so I dunno how well it could be implemented.

The "First 100" link should also be removed from the bottom of individual thread pages, and there should be a link to to thread-list included below the reply box of each previewed thread on the front page.

Bonus:

Change "Del" links to widget buttons.

In order for the CSS selector not to take over the entire header, how about turning it into a drop-down menu? The same could be done with the Admin functions (appearing only after one correctly inputs the password), placing it on the right side of the board and thread title headers (this would also allow admins the convenience of deleting and permasaging threads from the front-page).

and would something like this work (given that all boards share the same root directory)?

>>>>sup/1129153864/1-100
>>>1129153864/1-100

P.S. When you mentioned serving dynamic pages in >>46, were you referring to individual thread pages? As I mentioned before, it'd be nice to make the front page as dynamic and flexible as thread pages when it comes to viewing options (via PATH_INFO).

264 Name: Anonymous 2005-10-22 18:51 ID:Heaven [Del]

Random post: The test thread could use some linking in the notes at the bottom (what's the common nomenclature for that one?).

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