The Legendary Next Update (365)

177 Name: dmpk2k!hinhT6kz2E 2005-10-20 02:33 ID:Heaven [Del]

What does Thorn have to do with Kareha? Thorn's counterpart is Wakaba.

Anyway, the version of Shiichan on world4ch is bust. It's not a case of feature versus feature here, Shiichan simply doesn't work. It's not worth comparing until it doesn't break regularly.

If Shii were still working on it might be different, but Shiichan is effectively a dead project which incidentally has a closed and broken version working on world4ch.

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.

316 Name: !WAHa.06x36 : 2005-10-25 05:01 ID:Heaven [Del]

Nothing specific, just protecting against any possible future ones.

323 Name: Anonymous : 2005-10-26 18:16 ID:Heaven [Del]

>>321
Wait, why should l50 links be indexed/cached? IMO the only links that should be on Google at all are main pages and "entire thread" links.

Some final points (I hope) before the whole thing is wrapped up:

  • The CSS in the All threads page is unsightly. Is there a way to properly wrap the outer color border(s) around the table of threads?
  • I still say that the "Navigation: " text is extraneous when people can clearly see what the links do. Also still partitioning for 0ch-style error pages (with displayed user host and all).
  • Now that we do have filesize indicators in the backlog page of mode_message, do you still find it useless to have the red bold filesizes near the bottom of thread subpages?
  • Does mode_message now work in PAGE_GENERATION => 'paged'?
  • Idea: forced anonymous/sage/ID/fusianasan by IP/thread/board/whole site (some of these combinations already exist, I know)?
  • Finally, I imagine that the permasage/close/delete functions in kareha.pl will be easily interchangeable among the conditions in post_stuff(). Can you confirm this?

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.

102 Name: Anonymous 2005-10-17 15:04 ID:Heaven [Del]

> Maybe the thread title should be an l50 link?

That's what I've been saying in >>3!

> If anything, the role of capcodes should be minimized or altogether eradicated, in favor of ninja moderation.

It's up to the administration of the site how to use them. I am advocating that if they are used at all (and yes, there are useful instances for this and yes, these are and should be rare) then it would be helpful to be able to differentiate between site owner/admin/supermod/mod/maid/etc

192 Name: Anonymous 2005-10-20 11:52 ID:iWMGI/HY [Del]

> The "entire thread" link can easily be changes to link to the files in /res/ instead of going through the script, but that would make it somewhat less convenient when you want to consturct custom URLs, so I haven't done it.

A better solution would be to use mod_rewrite to rewrite all /kareha.pl/$number/ links to /res/$number.html
It schould be a lot faster then running the script and the links stay the same.

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!

193 Name: 148,161,166 2005-10-20 12:04 ID:0dCD+kFU [Del]

>>Well, then you are out of luck, aren't you? So you want to enter your E-Mail but cannot because then the post wouldn't bump then? Solution: Write it in the comment field, problem fixed.

There is no reason to change well-known keywords for this or even turn this into a frustratingly unconvenient tickbox/checkbox.
Having a specific trigger to trigger ID would also work.

>discussion of only one comment box, then you couldn't talk about sage/fusianasan/whatever

You could only trigger the functions in a specific format, say

:link-sage
:name-blah#faggot
lol comment

I do not believe this was an actual request, but it is obviously possible and usable. Another way would be escaping keywords that you want to post.

> partition to kill secure tripcodes

Why? If you are going to get rid of secure tripcodes you should get rid of tripcodes by the same reasons. On another note, why have I seen partition instead of petition multiple times?

>So I misspelled one word once. Sue me!

My point was that it is unnesessarily obtuse, not nit-picking that you misspelled it.

>This is a widely used system. There is a very low learning curve here. sage = does not bump thread when replying, that's all there is to know. People can then figure out why it is useful on their own.

You would think there is a low learning curve, but that is not really the case. For example, on an imageboard, what effect do you have making a sage post (with no real content) with prune oldest and a permasage limit? What about prune oldest with a permasage limit that excludes sage replies?

>trigger replacements

I'm not sure what to replace sage with, if anything. Down certainly doesn't describe it (to me it implies the reverse of age, which is not the case). don't_bump or dont_bump? show_host or show_ip works for fusianasan imo... show_ID to trigger ID?

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.

209 Name: Anonymous 2005-10-21 14:16 ID:0dCD+kFU [Del]

More information on the all threads page, date of the last post? file size?

A quote button that puts >>n and puts the post prefixed by > in the reply box

Different secret strings for different functions (e.g. one for ID generation and one for secure tripcodes)

111 Name: anon!21anon4H3U 2005-10-17 20:34 ID:Heaven [Del]

Thought of something else: can there be the ability to separately place a title on a board and what the head <title> element says?

Like "Music" for the header but "foolchan - music" for the title in the browser window.

304 Name: Anonymous : 2005-10-24 11:09 ID:Heaven [Del]

Hmm, the new error page looks much better except the overlapping of the navigation bar with the error message box.

201 Name: Anonymous 2005-10-20 18:28 ID:Heaven [Del]

> people like admins might prefer to use them

but they have capcodes now...

337 Name: !WAHa.06x36 : 2005-10-27 04:53 ID:Heaven [Del]

I don't see what's so bad about >>330. The alternative is to force the table to be full width, which will make it uglier (because in HTML all columns will become wider, including the skinniest ones), and harder to read.

> No need for a database, just a text file. You're right about storing IPs, though, but then how can you implement a banning system? Do you use an encrypted IP like the algorithm to generate ID codes?

Banning is done through Apache, which really makes more sense than doing it in the script. I don't want to re-invent the wheel for that.

> I mean that (for example) if I wanted to replace the permasaging function under the MAX_POSTS condition (permasage after X posts) with the thread-closing function (close after X posts), all it would require is a simple replacement of the proper function references in post_stuff(), correct?

No, they're done at different different places, because they are essentially different functions. The permasage behaviour doesn't actually permasage a thread, it only refrains from bumping it. There's no permsage flag added to the thread. The closing, on the other hand, does add a flag to the thread.

> Making "More options..." an option in the configs.
> Seems sensible, when you already have the ability to turn off WakabaMark as a board admin.

No. And I actually removed the DISABLE_WAKABAMARK option since it's no longer really needed. The replacement will be an option to select the default markup for a board, which makes much more sense overall.

185 Name: Anonymous 2005-10-20 09:52 ID:Heaven [Del]

>>184
If people are going to decide to use custom names for paramaters, then there isn't much you can do about it anyway, or is there?

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

>>20
"|" is not "¦"

146 Name: Anonymous 2005-10-19 07:04 ID:Heaven [Del]

>>145

>does that mean you approve of removing the style selector on subpages?

I was referring to the entire board, but as you later explained, it seems it can never be removed completely. Though removing it from subpages wouldn't be a bad idea I guess.

>Kareha has no "No File" check in the first place

That's what I thought, but then why is it in the Reply pages?

Other: Have you considered multi-page links with intervals of 100 posts at the top of subpages (ie, 1-, 101-, 201-)? Red, bold thread filesizes displayed near the bottom of subpages?

Something else to consider: separating the board description/rules template from the board- or site-wide announcements. Check out http://0ch.mine.nu/test/read.cgi/jikken/1120050851 to see what I mean.

104 Name: 103 2005-10-17 15:05 ID:Heaven [Del]

I meant Remote host adress instead of IP.

durr hurr

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... ?

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.

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).

272 Name: Anonymous : 2005-10-23 16:33 ID:Heaven [Del]

PS. What's "Raw HTML"?

354 Name: !WAHa.06x36 : 2005-10-28 18:01 ID:Heaven [Del]

Gah, I am totally confused about what to do about the admin interface. Separate script? Built-in? Javascript? How do I display the data? I have no idea!

183 Name: Anonymous 2005-10-20 09:32 ID:Heaven [Del]

>>182
That's not what I meant. What I meant was: If people want to change keywords to something, let them figure out at appropriate places what this something should be. Whether it should be "down", "stay_down" or "stay_put" is not really a discussion belongs here, not at this point anyway.

279 Name: !WAHa.06x36 : 2005-10-23 18:05 ID:gBva8ggI [Del]

>>278

How do you figure it's redundant?

142 Name: Anonymous 2005-10-18 22:44 ID:Heaven [Del]

The Futaba template is missing the "No File" checkbox next to the File field in the Post New Thread area.

260 Name: Anonymous 2005-10-22 16:20 ID:Heaven [Del]

This is the obligatory encoding test ... in <code>

 ㋋㏡
ゔ〲〰 ゔ〲〲〰〰 ゔ〲〰 ゔ〲〰 ゔ〲〰ゔ 〲〰ゔ 〲〰ゔ〲〲〰ゔゔ
〳〵ヷヷヷヷ〰〰〰〳〵ヷヷヷヷ〰〰〰〳〵ヷヷヷヷ〰〰〰
(♛ฺД)(*゜∀゜)~♡ℳฺℴฺℯฺ❤ℒฺℴฺνℯฺ..._〆(゜▽゜*)㌰㌰ ㍉㍍㌧㌔㌶㍊㌣㌦
㌀㌁㌂㌃㌄㌅㌆㌇㌈㌉㌊㌋㌌☠ฺ ☠ฺ ☠ฺ ☠ฺ ☠ฺ ☠ฺ ☠ฺ ☠ฺ ☠ฺ
☼♭♬♫♨♩♧♦♥♤♣♢♠♡♐ฺ♑ฺ♒ฺ♓ฺ ♔ฺ♕ฺ ♖

ฺ ♗ฺ♘ฺ♙ฺ♚ฺ♛ฺ♜ฺ♝(・∀・)/ヾ~~╋┓!㋦㋸㋭°

|壁|」゜ρ゜)」 ノ ヽ``~ 力㋦㋸㋭°
     / ⌒ヽ  
   / ´_ゝ`) I am sorry、 the β α κ α kopipe couldn't be carried out・・・
  |     /
   | /|  |
  // |  |
 U   .U  

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;
}

317 Name: !WAHa.06x36 : 2005-10-25 15:45 ID:Heaven [Del]

So, I made the All threads page a lot fancier. Might need some shift-reloading to get the proper CSS.

Is this about done, besides the admin bit? I'm getting a bit tired and distractions are looming to the left and right.

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