I had to re-enable it because this forum software is so shit I can't load old threads on the admin interface anymore and so someone could DoS the site by spamming old threads.
>>7 I hope you're prepared for some serious condemnation and economic sanctions. I hope you enjoy not having any more...hey...what do we make here again?
No, it's fine the way it is for now. It was allowed for a long time and no one noticed or used it anyway.
Name:
Anonymous2014-09-20 5:59
you will be committing a criminal offence if you:
1. Deliberately capture, injure or kill a bat 2. Intentionally or recklessly disturb a bat in its roost or deliberately disturb a group of bats 3. Damage or destroy a bat roosting place (even if bats are not occupying the roost at the time) 4. Possess or advertise/sell/exchange a bat (dead or alive) or any part of a bat 5. Intentionally or recklessly obstruct access to a bat roost
Name:
Anonymous2014-09-20 6:02
If you are purchasing bats from non USDA licensed dealers, think twice. These are heavily regulated exotic animals. It is illegal to buy or sell these with out being USDA licensed, and any bat species that is wild caught will also be regulated by the CDC (not a can of worms you want to open). Please note, without the paper work provided by a licensed dealer, you will not have proof that your bats are captive born… do you really want your animals seized or risk buying unregulated animals?
Name:
Anonymous2014-09-20 6:05
The only bats that can be kept by private individuals in the United States are non-native species acquired through legitimate licensed animal traders. Each animal that is acquired must have a transfer of ownership that would show where they originated from.
>>7 admin-kike-sama, where is the code? Is it unmodified Tablecat's?
Name:
Anonymous2014-09-20 15:21
>>16 The code for this board is in the FAQ, man. I've only made 2 or 3 shitty changes for things like showing sage and actually timestamping posts for IP rate limiting, and some style changes.
Name:
Anonymous2014-09-20 15:46
Posts with zero replies shouldn't be subject to this age limit.
>>7 Benchmark kareha-psgi (a kareha fork with plack/psgi support, obviously) and see if it performs any better.
Name:
Anonymous2014-09-21 15:15
>>21 I'm sure psgi does wonders for page loads under high traffic, but the whole flat files thing is probably making a big mess of everything.
Name:
Anonymous2014-09-21 17:12
>>22 I wrote a tiny script to spam it with tons of 1000 post threads to see what it does to performance. Once I get it to the size of this board I'll post my findings.
Say I have a persistent version of Kareha. Would caching the log in an array and creating a hash of references to each row in the log with MD5 hashes or IP addresses as keys be an easy to squeeze more performance out of Kareha? If I understand correctly, the hash values shouldn't take up too much extra memory since they're refs, and the array itself shouldn't be any bigger than it would be in plain CGI Kareha. Is there anything I'm missing or misunderstanding?
Name:
Anonymous2014-09-22 17:55
tablecat-bbs-20111214$ wc -l *pm *pl|grep total 1493 total
This doesn't seem too bad, but tablecat (and virtually every Perl textboard) mixes HTML with the code, uses flat files and iterates through their contents in various places instead of using dedicated functions.
For fun I started writing bbs software to see how short it would be with better practices in use and SQLite3 backend. 100 lines into this nearly everything user-facing is done except bbcode rendering.
Does anyone have ideas for improving bbcode? I like nesting, what about:
This doesn't seem too bad, but tablecat (and virtually every Perl textboard) mixes HTML with the code, uses flat files and iterates through their contents in various places instead of using dedicated functions.
Kareha avoids doing those sorts of things for the most part. Its main problem is the log and the fact that its a CGI application. The latter has already been solved, and I'm currently looking into the former problem. I still haven't encountered the issues >>7 is having in Kareha though despite a ton of 1000 post threads. Seems like an issue with tablecat specifically.
Name:
Anonymous2014-09-22 21:49
>>27 No, read section 2 again. He made bbcode nice in section 1 by aping TeX like a sensible person might do. Then he made it worse in section 2. I think I better just do markdown in case anyone gets the notion I think sexpcode is good idea.
>>28 CGI can't be causing the problem in >>7 since it's a static per-request overhead (unless there's process accounting in the web server), every request is slower but only by a fixed amount, traffic notwithstanding. It's not like we're under c10m loads here.
>>29 CGI might not be causing the problem but it certainly prevents a lot of easy solutions. I'm in the middle of implementing >>25, and its not something that could be done without moving away from it. Speaking of >>25, just how stupid of an idea is it? Obviously it will get remedy the speed issue, but I can't help but worry about memory usage. Just how big can these log files get? I've managed to push mine to 16MB so far...
Name:
Anonymous2014-09-23 20:56
Don't worry Admin-chan, my node.js textboard is half way done!
Update to >>26 I wasted a bunch of code on writing a query builder. It's time to confess I'm not doing this in Perl. In fact there are few DBI type things available, so I got sidetracked fixing the ergonomics of writing/using queries. On the other hand, after wasting about 100 lines, queries look like this:
You rarely need to type quotes, all interpolations (i.e. VALUES and WHERE clauses) are escaped with the SQLite-specific function.
Still procrastinating on bbcode.
>>31 The solution in >>25can be done with CGI. The best way to cache the log is to put it in a database and do all that work out-of-process, regardless of whether or not you're doing CGI. RDBMSs are good at: caching, searching, indexing and isolation. It's why we use them.
Caveat: there are cases for in-memory dbs. I wouldn't bother for something like this, because persistence. What are you doing about persistence anyway?
Speaking of >>25, just how stupid of an idea is it?
I wouldn't do it, but at least it's better than having some number of processes banging against a locked file. If you're worried about memory usage, put it in a RDBMS. Again, this will do caching intelligently.
>>34 Yeah using a database is normally the obvious choice, but I was under the impression that there was a good reason to avoid it, since shiichan, kareha, and now tablecat have all taken measures to use flatfiles as efficiently as they can.
>>36 It's probably to avoid dependencies or needing credentials. But you shouldn't take their lead, CGI.pm has been deprecated for ages now and I don't know if it's even still in CPAN. SQLite 3 is everywhere and doesn't need credentials. You can even use it in-memory if you really want to.
I'm still writing to the log, just not reading from it after every post/deletion/md5 lookup, etc.
Name:
Anonymous2014-09-24 16:40
>>38 SQLite is just as bad as flat files in terms of performance, at least in my experience. I built an application at work that has around 200,000 records (albiet each row probably has a lot more data than your typical Kareha log) and it can take up to a minute to grab the first 50 rows.
>>36 Shitchan (the python clone) uses sqlite and stores threads as compressed flat files inside the db. The compression savings is huge but it's intensive to access and edit threads.
Name:
Anonymous2014-09-24 20:35
>>40 That sounds very wrong. SELECT * FROM whatever LIMIT 50 shouldn't take that long unless it physically takes a minute to get that amount of data from the disk. If that's the case, you have misunderstood the benefit, try getting the *last* 50 rows instead.
But your query was probably more complex than that, and maybe you had no indices or referenced a large field in a WHERE or ORDER BY clause.
SQLite isn't the fastest but it will handily show a great improvement over flat files for non-sequential access.
tl;dr gnu bash environment export of functions allows command execution. Any service that lauches a gnu bash shell with tainted environment variables (including some CGI implementations) allows remote code execution.
>>43 That's surprising, unless the de/compression is done in pure Python, or it's something slow like bzip. (It took me a minute to realize you weren't talking about shiichan.)
Name:
Anonymous2014-09-24 23:56
>>45 It's something slow. DEFLATE with maximum compression, provided through python's standard library.
>>44 Its literally a "SELECT * FROM table LIMIT 50" and the disk has no problem keeping up when it comes to anything else. >>42 No, but there aren't any WHEREs.
Name:
Anonymous2014-09-25 8:11
>>47 That's weird. It's never been like that for me.