Introducing Thorn (or: Jesus, Not Another Image Board Script) (137)

1 Name: Albright!LC/IWhc3yc 2005-07-10 08:31 ID:LUOY+KDN [Del]

Yup, I rolled my own. I actually started work on this quite a while ago, but I put it aside for weeks at a time more than once, and it has also gone through one and a half complete rewrites. It makes a number of changes (improvements, in my opinion) from standard Futaba-inspired "rules," such as the email field, image files renamed by timecode, using Shift JIS (instead of Unicode), and the one-image-per-post rule, so that probably means that a lot of people won't like it. But oh well.

Please play with it, break it (but not so much my host gets pissed at me), whatever... Let me know what you think. I think at this moment it's "feature locked," as in I don't want to add any new features between now and the first public code release ('cept maybe sage-ing, which is already halfway implemented), merely squash bugs and oddities.

What you see here is its default skin. I actually posted some screenshots of it in http://nub.iichan.net/b/res/10314.html a couple of days ago, just to see folks' reaction... there wasn't one. (I was expecting a "WHAT IN HADES' NAME ARE YOU DOING, HEATHEN" flaming... mebbe I've overestimated the conservative temperaments of image board freaks.) I have also hobbled together a Futaba-ish skin basically by converting Wakaba's own futaba_style.pl; I'll take some screenshots and put 'em up in that thread.

http://pichan.org/thorn/index.php

2 Name: !WAHa.06x36 2005-07-10 09:23 ID:uVLngVAk [Del]

Hmm, some first impressions on the interface:

  • Far too hard to reply. I had to fumble around for quite a bit before I figured out what to do. Since you're not doing things Futaba-style anyway, and use a lot of Javascript, you really should switch to the 0ch-style of letting you reply directly from the front page without having to navigate to subpages.
  • And also since you're using Javascript, there's no need for that unsightly huge list of file inputs. You can just add one more every time the user picks something in the last one.
  • The reply count string is fairly unhelpful. I don't care how many replies there are in a thread, or how many are displayed - I only care how many are hidden, and I don't want to do maths to figure it out.
  • The destination selector adds confusion and clutter - I can see why you'd want it, but there should be a more graceful way to add it. Most people don't care about it, and will only be confused by it.
  • Sticky threads suck. But as long as you can only sticky them when creating them yourself they're probably a bit less annoying than 4chan's, though.
  • If somebody actually wanted to put some effort into breaking that captcha, they'd probably succeed quite easily. A few image processing operations, and you'd have a very clear image to OCR, and since you only use numbers, the OCRing would be very easy. Colours do nothing in a captcha, for instance, since you can always filter them out trivially. They might even make the attacker's job easier.
  • Dynamically built pages will eat your CPU pretty bad, should you ever end up running a popular site. A lot of sites out there suffer high loads only because they spend all their time building the same page over and over again.

Also, the timestamp filenames serve some quite important purposes for some people. If you download lots of image from an image board, the timestamps make a archiving and searching a lot easier. Also also, hardly any boards use Shift_JIS, except for this one and Japanese ones.

3 Name: !WAHa.06x36 2005-07-10 09:24 ID:uVLngVAk [Del]

Also you'll want to consider supporting traditional 0ch tripcodes. They're not secure, but they are universal, and that counts for a lot.

4 Name: Albright!LC/IWhc3yc 2005-07-10 09:57 ID:LUOY+KDN [Del]

I don't want to reply to all of your stuff right now (some stuff I see your point, some I disagree with), mainly because I want to see what others have to say as well, but I will touch on these two things:

One: The pages aren't always dynamically built. The site uses the Smarty templating engine http://smarty.php.net , which has a pretty serious caching system built in. So while it does run a PHP script for every page hit, most of the time all the script will be doing is saying "Hmm, has this page been cached already? Yes? Then here's the page. Ta!" Even when it does have to build a page, Smarty pre-parses and "compiles" all the templates into a PHP script, so it only ever has to parse the template once (unless you flush the cache, which should in theory delete the compiled templates too but that seems to be buggy at the moment, or you have what I call "Template Testing Mode" on).

Two: You think my captcha's easy to OCR? Potkettleblack, brotha. :P http://sam.zoy.org/pwntcha/ (scroll down to "Pichan." I tried emailing the guy correcting him about that, but he seems to have ignored me.) Anyway, I will admit to sacrificing hackability for code efficiency (it just uses PHP's built-in fonts, for example); even as it is, I think the captcha code could stand to be simplified a bit.

5 Name: !WAHa.06x36 2005-07-10 10:25 ID:uVLngVAk [Del]

The overhead doesn't come from building the template (unless you use a REALLY bad templating engine) - the real overhead is hitting the database over and over again. The templating code only gets to work after you've hit the database, so no amount of caching in there will save you. It's up to you to be smart and avoid database hits.

Also, I notice he lists the captcha under those not broken. He may think it is "apparently weak", but it is also running on with some fairly easy settings. It can easily have the distortion turned up as needed.

6 Name: Albright!LC/IWhc3yc 2005-07-10 11:07 ID:LUOY+KDN [Del]

But the script doesn't touch the database unless the page isn't cached... Why would it?

Let me try explaining it this way:

  1. User requests a page.
  2. Script checks to see if that page is cached.

IF YES:
3. The cached copy is fed to the user, and the script quits. Period. The database may as well be in the eighth dimension of the Crab Nebula, for all the script cares.
IF NO:
3. The script loads the required compiled template. (The template is able to define, to a certain extent, what data it receives from the database and how that data is formed, so we load it first.)
4. The script connects to the database and queries it for the requested information.
5. The illegitimate child of the passionate lovemaking between the data and the template is passed on to the user.
6. The page is also written to disk so that the next time the page is requested, the database hit and the template magic won't be necessary next time. The script quits.

Come on, dude. I can't pretend to be any Enlightened Ascendant of code-slinging, but at least give me the benefit of the doubt...

7 Name: !WAHa.06x36 2005-07-10 12:01 ID:uVLngVAk [Del]

All right, if the caching is non-transparent, then you can arrange things that way, that is true. I was thinking the templating library would do its own cache handling internally, which wouldn't be as useful.

You'll need to manually invalidate caches when somebody posts, right?

8 Name: lolocaust 2005-07-10 12:14 ID:Heaven [Del]

>. It makes a number of changes (improvements, in my opinion) from standard Futaba-inspired "rules," so that probably means that a lot of people won't like it. But oh well.

You're such a rebel

9 Name: Mr VacBob!JqK7T7zan. 2005-07-11 15:49 ID:YPPb+Pr3 [Del]

I posted an image with the filename "../<b>imagename'.jpg" and it removed the entire name instead of just sanitizing it :(

Also, your tripcode system is kind of weak. I shouldn't be able to pick one off the top of my head ("dongs") that looks so much like yours.

10 Name: Albright!LC/IWhc3yc 2005-07-11 21:08 ID:LUOY+KDN [Del]

D'oh. It looks like every trip pass results in a code that starts with "kK1". Looks like that needs tweaking.

11 Name: Albright!LC/IWhc3yc 2005-07-11 21:54 ID:Heaven [Del]

Oops, had to take the database down for a bit. I'll try to get things back up and running within twelve hours.

12 Name: !WAHa.06x36 2005-07-12 06:08 ID:uVLngVAk [Del]

What kind of algorithm are you using for the tripcodes?

13 Name: Albright!LC/IWhc3yc 2005-07-12 08:06 ID:Heaven [Del]

One with glaring problems, now that I take another look at it. I'm don't wanna post it because it's embarrassing. Probably something I wrote at 5:00 AM some night when I couldn't sleep or something.

(Site's back up now, BTW. Actually, I didn't need to take it down as I thought I would.)

14 Name: Orochi Herman!hN02YkuTxM!!RK20Clsf 2005-07-15 01:38 ID:XeFJgeZ4 [Del]

I actually liked the look of thorn. Just needs polishing.

Category nesting in one installation = win

15 Name: Albright!LC/IWhc3yc 2005-07-17 07:06 ID:LUOY+KDN [Del]

ZOMG UPD8

  • I implemented WAHa's suggestions about the file input elements. Now, you only see one to start, but as you tack a file on with that, another slot will open up.
  • In regards to VacBob's shenanegans, files that have a "/" in the name, or a "." as the first character, are now ignored.
  • A (hopefully) better tripcode function.
  • Sage implemented (uncheck "Bump thread").
  • Partially implemented Futaba-style tripcodes. These will supplement the native tripcode scheme, not replace it. I won't completely implement it in version 1.0 or earlier. This required tweaking the database structure, so I wiped the database of the test installation.
  • "board.tpl" and "thread.tpl" pass W3C's validator. I'll check the other templates in due time.
  • The new features haven't yet been implemented for the Futabally-ish template set.

I want to at least finish those last two bullets before I release. Until then, please continue to play with the board:

http://pichan.org/thorn/index.php

16 Name: !WAHa.06x36 2005-07-17 11:16 ID:Mrh03lMD [Del]

> In regards to VacBob's shenanegans, files that have a "/" in the name, or a "." as the first character, are now ignored.

This sounds shaky. You will need to do AT LEAST the following:

  • Strip all characters up to and including the last slash or backslash (some IE versions will include the full path to the file by default, and the script will not work if you do not do this).
  • Figure out the file extension, and preferrably check it against a list of allowed filetypes. If you want to allow arbitary file uploads, you should either tack on an extra extension to the files not on an approved list, or (and this is still very risky) have a list of forbidden filetypes. The problem is that the list of file types you don't want uploaded is HUGE, and you probably don't know all of them anyway. You don't want anyone to upload .php files, or .php3 files, or .phtml files, or .shtml files, or .pl files, or .cgi files, or .asp files, or .cfm files, or...

17 Name: Albright!LC/IWhc3yc 2005-07-17 20:26 ID:LUOY+KDN [Del]

(sigh)

  • I don't know how Perl works, but in PHP it's quite easy to get the file's original filename without the path. In fact, getting the file's original pathname isn't possible, as far as I know.
  • Done and done. Try uploading a file that has an extension other than .gif, .jpeg, .jpg or .png. It will also be ignored.

Please, man, could you give me the benefit of the doubt on the easy stuff?

18 Name: Anonymous 2005-07-18 02:15 ID:HoL/NbWS [Del]

Instead of inferring file type from arbitrary filename extensions, why not use getimagesize() to query for that directly?

19 Name: Albright!LC/IWhc3yc 2005-07-18 02:31 ID:LUOY+KDN [Del]

Because I think it's logical to expect people to upload image files that only have extensions of image files. Thus, we only have to incur the overhead of opening the file with GD and trying to do image stuff with it if it's already expected that the file is most likely an image. If, on the other hand, it's some other file that has a .jpeg extension or something, and the script opens it and doesn't get an image out of it, it ignores the file from thereon.

By the way, I forgot to mention that the script also chmods uploaded files so they're not executable.

20 Name: !WAHa.06x36 2005-07-19 08:40 ID:cjGm08pU [Del]

> I don't know how Perl works, but in PHP it's quite easy to get the file's original filename without the path. In fact, getting the file's original pathname isn't possible, as far as I know.

Are you sure that this is the case? The thing is this: The browser is only supposed to send the name without path. However, some version of IE send the full path instead of the file name. So while you most of the time will only get the file name, sometimes you'll suddenly get the path too. Unless PHP specifically contains code to work around this, it will be the case for your script too.

And since this is not obvious, and most people assume you will only ever get the file name, an attacker might send a POST request containing a full path instead of the file name, hoping this will cause your script to accidentially overwrite some other file.

> By the way, I forgot to mention that the script also chmods uploaded files so they're not executable.

A good idea, but if somebody runs it on a Windows server, it won't help.

21 Name: Anonymous 2005-07-19 21:47 ID:HoL/NbWS [Del]

>Because I think it's logical to expect people to upload image files that only have extensions of image files.
>the script also chmods uploaded files so they're not executable

You make the first assumption, but then are cautious about executable bit on an uploaded file?

I would be much more concerned about malicious disguised payload in an upload or a mislabelled/misspelled file extension than an executable bit. Why would the executable bit even be set? That info is not transmitted with a file upload- it should be mode 600 when it arrives on the server.

And even if it were, that info is not transferred back down to the client. At least in no sane browser :p.

22 Name: Furi!EuK0M02kkg 2005-07-20 00:38 ID:Heaven [Del]

I think most of the important stuff here has been covered, but it all boils down to some stuff:
You have to be absolutely paranoid about any factors that are out of your control. You can't trust people to upload sane things, so you have to be defensive.

In our case, yeah, we need to sanitise images, and it can be done. I haven't bothered figuring out a bulletproof way of checking that an "image" is an image (via binary-inspection), but I'm sure it'd be fairly easy. ImageMagick has "identify", which can probably be shoehorned into the role.

As for filenaming, for meidokon I've stolen source for the PEAR package HTTP_Upload and changed it a little to suit my needs. As you said, PHP has the function to strip a path down to a filename, so it's just a matter of doing that, then sanitising the name. Drop any char that's not supported on windows & unix filesystems, or convert them to underscores.

23 Name: Albright!LC/IWhc3yc 2005-07-20 05:20 ID:LUOY+KDN [Del]

>However, some version of IE send the full path instead of the file name.

Fuck IE.

PHP may or may not contain a workaround for this. Personally, I have never heard of this phenomenon... Link? Sauce?

>A good idea, but if somebody runs it on a Windows server, it won't help.

Fuck Windows.

(Good point, though. Maybe I should add a feature to turn that off, or maybe remove it altogether as it is redundant.)

>>Because I think it's logical to expect people to upload image files that only have extensions of image files.
>>the script also chmods uploaded files so they're not executable
>You make the first assumption, but then are cautious about executable bit on an uploaded file?

Okay, I think we're on different wavelengths or something here. What I meant by that first comment is that if a file does not have the extension of the image, Thorn doesn't bother to do any further checking to see if it's an image or not. It just ignores it. PHP deletes any uploaded files that the script doesn't move elsewhere when the script is terminated, so the file will be uploaded, spend a few microseconds in /tmp, then vanish from the face of the earth.

And, again, I do indeed check to see if an image is indeed an image before anything further is done with it.

24 Name: !WAHa.06x36 2005-07-20 08:28 ID:dMQbKy+/ [Del]

> Fuck IE.

The important part wasn't the IE bit. The important part is that an attacker won't use any browser, but will hand-craft a POST request that says the filename is "/etc/httpd/httpd.conf" or whatever.

Some quick googling finds this:
http://216.239.59.104/search?q=cache:-vcJIcXFr5oJ:www.php-collab.org/blog/index.php/2005/02/17/php-4311-ie-and-file-upload/&hl=en&client=firefox-a

> Maybe I should add a feature to turn that off, or maybe remove it altogether as it is redundant.

Maybe. But then again, being paranoid is never a bad thing in these situations. Just remember that even though you chmod the file, it might still be executable on some platforms.

25 Name: Albright!LC/IWhc3yc 2005-07-22 06:27 ID:LUOY+KDN [Del]

Update!

  • Workaround for IE being a piece of shit as WAHa pointed out. However, as I don't have IE/Windows, I can't test it.
  • New features added to Futabally-like template set, and both template sets clear with the W3C's validator. I've currently set the test board's template set to this template. (It's a bit funky in Safari; it seems to be a glitch in Safari/WebCore. As Safari is my primary browser, I'll probably make a workaround soon.)
  • If the web browser and all other involved parties behave themselves, the verification image shouldn't be cached now.
  • Probably some other things I can't remember.

please to post and test please kthx

26 Name: Albright!LC/IWhc3yc 2005-07-24 04:39 ID:LUOY+KDN [Del]

Hmm. Looks like that last update broke actual image posting. Perhaps I should have tested that...

No matter. That bug has been squashed, as well as some other tweaks, and I now RELEASE!

http://pichan.org/thorn/index.php

The Read Me:
http://pichan.org/thorn/READ-ME.text

27 Name: Mr VacBob!JqK7T7zan. 2005-07-25 14:36 ID:OxRWjfN2 [Del]

The requested URL /thorn-0.9.tgz was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

28 Name: Albright!LC/IWhc3yc 2005-07-25 20:49 ID:LUOY+KDN [Del]

(sigh) It's always the simple stuff. I forgot to rename the archives after uploading them.

Fixed. I hope.

29 Name: thatdog!uOLTi2v.uk 2005-07-25 21:22 ID:gjbazTQc [Del]

>>25
FUTALLABY

30 Name: Anonymous 2005-07-26 02:18 ID:Heaven [Del]

>>29

Haha, I see people getting that one wrong all the time :D

31 Name: !WAHa.06x36 2005-07-26 06:18 ID:Heaven [Del]

Wasn't it moot who got it wrong initially and everybody's just been copying him ever since?

32 Name: Albright!LC/IWhc3yc 2005-07-29 09:38 ID:LUOY+KDN [Del]

Okay, this crappy release will soon be replaced by one that does a few more things right, including better documentation in shiny new wiki format: http://pichan.org/wiki

I hope to release an update Sunday.

33 Name: Albright!LC/IWhc3yc 2005-07-31 10:22 ID:LUOY+KDN [Del]

Version 0.9.1 released. I think this version is actually somewhat usable!

Version history:
http://pichan.org/wiki/doku.php?id=version_history

Download:
http://pichan.org/wiki/doku.php?id=download_thorn

34 Name: Anonymous 2005-08-05 08:38 ID:rC2LJLZR [Del]

Now that I am forced to use it, I dislike it even more than I already did...

Please enable posting on the old board again.

35 Name: Albright!LC/IWhc3yc 2005-08-08 11:20 ID:LUOY+KDN [Del]

Version 0.9.2 now released. Many bugs squashed. Version history and download pages as above.

I think I've pretty much got the base code as good as it'll get for now, so the next release will probably be 1.0, and will probably be just template tweaks, such as name/trip pass cookie-ing, and perhaps a Kareha-style template.

36 Name: Albright!LC/IWhc3yc 2005-08-20 23:13 ID:LUOY+KDN [Del]

v0.9.3 now available. More bugs squashed. I really was hoping to get to 1.0 with this release, so I can finally start adding some new features again, but it's not quite ready, I think.

37 Name: test 2005-08-21 02:43 ID:q6nBCAdm [Del]

GJ for hunting down bugs!

38 Name: Albright!LC/IWhc3yc 2005-09-23 03:53 ID:Heaven [Del]

v1.0 now released. Yet I will sage this post because I don't think it's that remarkable. Hopefully some more actual features will be seen soon in v1.1.

39 Name: Anonymous 2005-09-28 07:46 ID:Heaven [Del]

http://pichan.org/wiki/doku.php?id=download_thorn still lists 0.9.3 as the latest and the download links do not work

http://thorn.pichan.org/thorn-1.0.tar.gz finally worked for me, damn you for changing your filename scheme

40 Name: Anonymous 2005-10-08 15:11 ID:3HoJz1u9 [Del]

This board sucks ass, I don't care if you use it for your own purposes but switch back to Wakaba for the iichan boards.

41 Name: Anonymous 2005-10-08 15:27 ID:Heaven [Del]

>>40
I wouldn't have worded it as rude, but I agree.
Clearly, the board software is not as convenient and easy to use as Wakaba.

Requesting to return to Wakaba until this aim is achieved.

Btw, it would be nice to have an option to delete your own threads/replies/pictures.

42 Name: Kami 2005-10-08 22:36 ID:Heaven [Del]

>>41

>Clearly, the board software is not as convenient and easy to use as Wakaba.
>Requesting to return to Wakaba until this aim is achieved.

Suggest ways to achieve this aim.

And there's no way for people to actually complain about problems if no one/no site is actually running it.

And personally, I like the idea of multiple images per post.

43 Name: dmpk2k!hinhT6kz2E 2005-10-09 00:15 ID:Heaven [Del]

  • Change the captcha method.
  • Unify the name and tripcode fields.
  • Remove the "Mod" (what does that do?).
  • Make multi-image posts wrap.

Otherwise I quite like it, to be honest.

44 Name: Anonymous 2005-10-09 00:24 ID:Heaven [Del]

>>42
The multiple image upload feature is the only thing about the software that is better than in Wakaba. Everything else was "fixed / improved for the worse".

Also, there could always be a test board to run this on and tell people to test it could, yknow, get people to actually test it.

45 Name: !WAHa.06x36 2005-10-09 05:57 ID:Heaven [Del]

Also, in the Futaba style, put in some spacing! Letting text touch the borders of its containing box is bad. It looks horrible.

46 Name: test 2005-10-09 10:19 ID:Heaven [Del]

> there could always be a test board to run this on and tell people

I've actually found that to be fairly useless. The best way to test board software is to put it into production, unfortunately.

47 Name: Anonymous 2005-10-09 11:55 ID:Heaven [Del]

> I've actually found that to be fairly useless. The best way to test board software is to put it into production, unfortunately.

Well, we'll have to agree on disagreeing on this one, then.
I have posted a lot on the Cityscapes board before it was turned to Thorn and just stopped posting because I find the new software horrible and cannot be arsed to write a dozen bug reports so that it becomes as convenient as it already had been before.

48 Name: test 2005-10-09 20:05 ID:Heaven [Del]

Ah, but while you may no longer be posting there, some people still are. A whole lot more than would be posting on an obscure /test/ somewhere.

It's a rather brusque way of doing things, but I can't blame Albright for resorting to it.

49 Name: Kami!yGAhoNiShI 2005-10-10 00:40 ID:Heaven [Del]

Personally, ever since he switched to the futaba skin, I haven't seen much wrong with it, other than little things.

Though, as >>43 said, unified name/tripcode field and having the tripcodes be the same as futaba/wakaba would be great.

(Not sure if bright could do the second though, as it's written in a different scripting language. And again, those are only small things that don't really matter. We'd probably wouldn't even complain about them if thorn had come first!)

50 Name: 47 2005-10-10 01:01 ID:Heaven [Del]

>>48
Sure they do post but how many are actually giving feedback?

I would feel much more compelled to actually help out with testing and giving useful feedback if it hadn't been forced down my throat, so to speak.

Also, I was just giving my behaviour as an example in >>47. In no way did I mean to imply it was somehow statistically relevant.

51 Name: Albright!LC/IWhc3yc 2005-10-10 01:28 ID:LUOY+KDN [Del]

>http://pichan.org/wiki/doku.php?id=download_thorn still lists 0.9.3 as the latest and the download links do not work

D'oh. Fixed. Thanks.

>Change the captcha method.

What's wrong with the current captcha system?

>Unify the name and tripcode fields.

At present, the script looks for the name and tripcode in different fields, and I don't want to change that in the script. But the one field thing might be doable via JavaScript (split the one field into two before passing it on to the script).

>Remove the "Mod" (what does that do?).

Click it and find out. (Due to a CSS bug in the version of the Wakaba skin currently on πchan, you actually have to click twice, but this should be fixed on the next release.)

>Make multi-image posts wrap.

They wrap in thread heads, but not in replies. This will be fixed. To tell the truth, I put less emphasis on getting the Wakaba-ish skin looking right than the default Andy skin, but I switched πchan to the Wakaba one because I figured fewer people would whine about it. Clearly I was wrong. :P

>Also, in the Futaba style, put in some spacing! Letting text touch the borders of its containing box is bad. It looks horrible.

Screenshot plz. On my end there's no text touching borders in Safari or Camino (Mozilla). http://thorn.pichan.org/index.php?t=57

>The best way to test board software is to put it into production, unfortunately.

That's true. With people actually using the board, hopefully some of them can find things that are wrong that I overlooked. And even if only 5% of people report glitches, 5% of a few dozen people is more than 5% of nobody.

One thing I hope you all remember is that I didn't write Thorn to be a 100% Wakaba/Futabally clone. What would be the point of that, anyway? It can do pretty much the same things, yes, but it'll do other things too.

Anyway, here's what's going on for the next release:

  • The big new feature will be date functions that'll allow Thorn to be used as a blog. That'll include features to get threads from certain years, months, or days; functions to build accurate "calendars" (that is, they'll know how many days are in February on a leap year and such), and a feature that'll take you straight to a certain board (or post?) when just plain index.php is accessed instead of the board index. I'd say this is 33% implemented at this point.
  • Tripcodes fixed. Again. But for real this time. I hope.
  • Fixed some cosmetic tics with the templates (and have more fixing to do, clearly).

By the way, WAHa, do you block Japanese IPs to your web site? Whenever I try to go there, I get just a blank page. I have to SSH into my web account and use lynx or use a proxy.

52 Name: test 2005-10-10 05:58 ID:Heaven [Del]

> At present, the script looks for the name and tripcode in different fields, and I don't want to change that in the script.

For what reason?

> What's wrong with the current captcha system?

It's big, hard to read, and looks quite out of place.

> Clearly I was wrong.

Not really. I much prefer the current version.

Another suggestion: get rid of the "File 1:", "File 2:", etc. The "File" part is redundant.

By the way, the text touching a border issue that WAHa mentioned also appears in Opera. Take a look at the left edge: http://wakachan.org/junk/thorn-css.png. I'd also like to draw your attention to the location of the title at the bottom of the page.

53 Name: test 2005-10-10 06:06 ID:Heaven [Del]

For more title strangeness, see this: http://wakachan.org/junk/thorn-css2.png

54 Name: Anonymous 2005-10-10 06:41 ID:Heaven [Del]

> That's true. With people actually using the board, hopefully some of them can find things that are wrong that I overlooked. And even if only 5% of people report glitches, 5% of a few dozen people is more than 5% of nobody.

I think it tells quite a lot that people are more likely to give feedback here than on your own Thorn-powered Thorn discussion board. But hey, I just pulled that statistical approximation out of my ass, as is any other on itt.

55 Name: !WAHa.06x36 2005-10-10 07:12 ID:uVLngVAk [Del]

> Screenshot plz. On my end there's no text touching borders in Safari or Camino (Mozilla). http://thorn.pichan.org/index.php?t=57

It's right there in your screenshot. All the poster names are far too close to the edge of their container. Wakaba avoids it because the delete checkmark spaces the text away from the border.

> Tripcodes fixed. Again. But for real this time. I hope.

You're still not using real tripcodes, though. 2ch-style tripcodes are weak, but they have the one huge advantage, which is that they stay the same across sites. You really ought to use those. Very few people care about secure tripcodes that change from site to site - Wakaba has them, and hardly anybody ever uses them.

Unifying the fields into one would also be nice, since it'd reduce clutter and make for less clicking or tabbing when filling things in. Generally you should look over the posting form fields - as it is right now, it's a mess. The captcha is too big, as was mentioned elsewhere, and text input and other fields are mixed in ways that just look untidy.

> By the way, WAHa, do you block Japanese IPs to your web site? Whenever I try to go there, I get just a blank page. I have to SSH into my web account and use lynx or use a proxy.

I'm trying to serve up a Japanese version of the front page to Japanese IPs. Isn't it working? Does http://wakaba.c3.cx/index.pl?lang=en work?

56 Name: Albright!LC/IWhc3yc 2005-10-10 08:35 ID:Heaven [Del]

>> What's wrong with the current captcha system?
>It's big, hard to read, and looks quite out of place.

It's supposed to be hard to read. As for its size, it's even harder to read if it's smaller... I've tried. It is ugly, but I haven't found any better alternatives.

Okay, the glitch with the screenshot in >>53 I'm aware of and it'll be fixed in the next release. (That's one of those things that resulted from paying more attention to Andy than WakaWakaWaka.) I think the "glitch" in >>52 is bizarre pickiness, but that'll be simple enough to fix I suppose, so I'll do that too.

Re: Tripcodes: I have 2ch-style tripcodes implemented to the extent that the database schema has a field for it and there's commented-out code to create such tripcodes in the distribution (at the bottom of post-common.php), so actually implementing them would be easy. It's a low priority, though.

As for unifying the name and tripcode fields... I think you all are forgetting how illogical it is to enter two different bits of information in one single field. Look at it from the perspective of a new user, please.

I'm considering making another release with the newer, smaller improvements before the next big one with the blogging features and such.

57 Name: Albright!LC/IWhc3yc 2005-10-10 08:36 ID:Heaven [Del]

Oh yeah: http://wakaba.c3.cx/index.pl?lang=en works. Thanks, now I can get to the Wakabamark reference in the wiki again.

58 Name: Anonymous 2005-10-10 08:42 ID:Heaven [Del]

> I think you all are forgetting how illogical it is to enter two different bits of information in one single field.

It may be illogical but it sure is convenient.
This is about pleasing the users, not about looking really smart about something of little theoretical significance.

> Look at it from the perspective of a new user, please.

I think new users should not be confused with a system of tripcodes that is entirely different from all other places on the internet that incorporate tripcodes. Which is why I also vote for 2ch-style tripcodes.

59 Name: Anonymous 2005-10-10 08:42 ID:Heaven [Del]

> with the blogging features and such.

argh

60 Name: test 2005-10-10 09:11 ID:Heaven [Del]

I tend to prefer the mixing of name and tripcode in one textfield for the simple reason that it's easier for newcomers.

What's a name? Easy, right? What's that #? Uh... what is that, and do I have to fill it in?

If you won't mix them, then perhaps put a tiny "(optional)" in there somewhere.

61 Name: !WAHa.06x36 2005-10-10 09:31 ID:uVLngVAk [Del]

> As for unifying the name and tripcode fields... I think you all are forgetting how illogical it is to enter two different bits of information in one single field. Look at it from the perspective of a new user, please.

Tripcodes are a gimmick. They really shouldn't be promoted to the same status as the name field. New users don't need tripcodes. They're horribly overused as it is.

62 Name: Anonymous 2005-10-10 09:46 ID:Heaven [Del]

> They're horribly overused as it is.

signed

63 Name: Anonymous 2005-10-10 10:25 ID:Heaven [Del]

>New users don't need tripcodes.

Damn straight.

>blogging features

May I ask the reasoning behind this?

>I think it tells quite a lot that people are more likely to give feedback here than on your own Thorn-powered Thorn discussion board.

It's funny 'cause it's true.

64 Post deleted by user.

65 Name: Shii 2005-10-10 10:58 ID:3HoJz1u9 [Del]

> blogging features

Haha, reminds me of when I tried to add a "blog mode" to Shiichan. Good times, good times

By the way, I heard Markdown is the official markup language of the Web 2.0 Podcasting Blogosphere, confirm/deny?

66 Name: Kami!yGAhoNiShI 2005-10-10 14:49 ID:Heaven [Del]

>Letting text touch the borders of its containing box is bad.

It's gay becuase the text is touching, lol.

Sorry, couldn't resist.

67 Name: Anonymous 2005-10-10 19:25 ID:Heaven [Del]

>>66
lol

68 Name: Albright!LC/IWhc3yc 2005-10-10 22:28 ID:LUOY+KDN [Del]

>May I ask the reasoning behind this?

Back a long long time ago, when the idea of first writing a forum-ish script came to mind (which was even before 4chan was around) but I didn't yet have the skills to write one, I realized that various forms of communication software (if you will) on the web all kind of used the same model; whether they be text-based forums, image gallery scripts, or blog scripts, they all worked by someone posting a "head" (a new thread, an image, a blog post) and then others making replies to it. So if a textual BBS like phpBB, an image gallery like Gallery, an image board like Wakaba, a blog like Wordpress, and so on all use the same head-reply model, why can't one script be generalized enough that it can serve all of those purposes? Thorn can already do those first three just by tweaking with the templates and setting the options, no touching of the PHP code necessary; however, date functions to make it practical for using for blogging have yet to be implemented.

So, again, this is another reason why I say that Thorn is not meant to be a 100% clone of image board scripts. With so many decent image board scripts already out there, what would be the point? It's meant to work as an image board script and do other things as well.

>>I think it tells quite a lot that people are more likely to give feedback here than on your own Thorn-powered Thorn discussion board.
>It's funny 'cause it's true.

Well, I prefer using a Kareha-like layout over a Wakaba-like layout for just discussion as well.

69 Name: Albright!LC/IWhc3yc 2005-10-10 22:31 ID:Heaven [Del]

>Tripcodes are a gimmick. They really shouldn't be promoted to the same status as the name field. New users don't need tripcodes. They're horribly overused as it is.

Yeah, I'll agree with you there. What's especially kitschy is when people make cutesy words and stuff with their tripcode, don't you think? :P

70 Name: Anonymous 2005-10-11 01:13 ID:yF4Kr1gD [Del]

>>70
It's true. I think Waha indirectly promotes tripcodes, personally. Maybe if he restricted it to just /sup/ and whatever admin duties he had.

71 Name: !WAHa.06x36 2005-10-11 05:44 ID:Heaven [Del]

It's a remnant of the long-gone days when posting with only a tripcode was actually something cute. Now I'm stuck with it. If I had both a nickname and tripcode, I'd just drop the trip. But as it is, I can't do that without going anonymous (which I do, quite a bit). If I want to put in a name, though, this is all I have.

72 Name: Musu 2005-10-11 06:33 ID:Heaven [Del]

>>71
Lies!

73 Name: !TYA7I27too 2005-10-11 06:41 ID:Heaven [Del]

Disregard that... err yeah.

74 Name: Anonymous 2005-10-11 14:41 ID:GASpRvvP [Del]

>>71
Can't you just go Waha? It's recognizable and no one uses it. Granted, it doesn't look as cool, but what can you do?

75 Name: Shii 2005-10-11 20:15 ID:3HoJz1u9 [Del]

> Thorn is not meant to be a 100% clone of image board scripts.

Then why do you force it on iichan users?

76 Name: Anonymous 2005-10-11 20:16 ID:Heaven [Del]

>>75
I want to make a Halflife joke here, but I cannot for the life of my formulate one....

77 Name: !WAHa.06x36 2005-10-12 06:27 ID:cfKNM64i [Del]

http://wakaba.c3.cx/thorn/thorn.html

There you go. Please implement this layout.

Also, "document.write()" is pretty dead and deprecated. You'd be much better off learning a bit about the DOM and using that. That way, you wouldn't be limited to a set number of file inputs, either.

78 Name: Anonymous 2005-10-12 14:24 ID:0of+DtLX [Del]

>>77
Mein Gott! The post form suddenly became comprehensible!!

79 Name: KJI!XDpPLAUYlQ 2005-10-12 15:08 ID:Heaven [Del]

Wow! :O

80 Name: Anonymous 2005-10-12 22:09 ID:Heaven [Del]

>>77
ooo, nice layout. Thorn coder, you should make that the default layout.

>As for unifying the name and tripcode fields... I think you all are forgetting how illogical it is to enter two different bits of information in one single field. Look at it from the perspective of a new user, please.

I'll do my best.

(ahem)

Dum de dum, what have we here? Some sort of message board where people post art! There's a nice image, I'll just click reply here to say I liked it. I suppose I'll put in a name here...typetypetype ...what the heck is this "#" field for? Am I supposed to enter a number? Some sort of key? (branch point: user may begin searching for a registration link or some way to know the magic data necessary for the mysterious "#" field.) I'll try a random number. Now for my comment...typetypetype Verification? Oh, I remember this from signing up at yahoo. But they're kinda overlapped. Should it be 8627186271 or 8866227711?(Insert a couple of failed verifications before user figures it out.) Man, that was annoying. Now to click Submit. Hey, what is that gibberish next to my name?

(bow, curtain closes with a piano flourish)

And poof, you've got a newbie hooked on tripcodes who'll probably jump on the "Anonymous are cowards" bandwagon.

81 Name: test 2005-10-13 00:30 ID:Heaven [Del]

> you should make that the default layout.

Only for the form though. The other bugs are still there.

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

>>81

Yes, that was all I looked at for that one.

83 Post deleted by moderator.

84 Name: Albright!LC/IWhc3yc 2005-10-14 04:20 ID:LUOY+KDN [Del]

All right, a "beta" of 1.1 has been released, with many whin-- er, traditionalist-appeasing features. It's been implemented at Cityscapes and such.

85 Name: !WAHa.06x36 2005-10-14 04:57 ID:uVLngVAk [Del]

You really should implement >>77, though. It fixes a number of problems that are still there in 1.1.

86 Name: test 2005-10-14 22:09 ID:Heaven [Del]

I highly approve this new 1.1!

The only glitch I could find has to do with title and image layout (http://wakachan.org/junk/thorn-css3.png). Unlike Opera, Firefox handles the title properly, although it too does odd things with wrapping.

I think putting the new vericode above the entry is actually a pretty good idea. Should wakaba follow suit?

87 Name: Anonymous 2005-10-26 00:08 ID:3HoJz1u9 [Del]

All of the threads on the Artwork board are mainly devoted to complaining about Thorn... this was a good choice of software for WAKAchan, huh?

88 Name: Anonymous 2005-10-26 04:44 ID:Heaven [Del]

>>87
Yknow, I am not a big fan of Thorn either, but blanket criticism is getting tiring now. It seems obvious that Albright is going to stay with Thorn, so you might as well point out the concrete points you'd like to see changed if you want the situation to improve.

89 Name: Anonymous 2005-10-30 12:49 ID:zpOcrskT [Del]

the download link for the damn thing is broken.

90 Name: Albright!LC/IWhc3yc 2005-10-30 20:55 ID:LUOY+KDN [Del]

Rrgrr, again? Fixed. Thanks.

91 Name: Albright!LC/IWhc3yc : 2005-11-13 07:14 ID:s3LmckP9 [Del]

1.1b3 now available. And I checked the download links this time, so they should work at the moment. I've decided to put the STUPID RRGRR FRUSTRATING date-oriented stuff on the back burner and work on getting some basics down, such as remembering usernames and such.

92 Name: !WAHa.06x36 : 2005-11-13 08:15 ID:KAbAGTL0 [Del]

Would you please clean up the posting form already? The # appears to be back, the "remember me" checkbox is pretty much superfluous, and if you want it it'd look less annoying if it followed the name field. Also, the inputs are still scattered around the form according to no obvious system, along with bits of text that belong in the label column.

Here's a diagram of the problem: http://wakaba.c3.cx/thorn/layout.png

93 Name: Anonymous : 2005-11-14 09:11 ID:XI7bpxoq [Del]

Here's what I've been using, just as an extra point of comparison ^^:
http://renfu.metachan.org/wp-content/new_post_form.png

Been trying to simplify. Thankfully haven't needed to add verification yet.

94 Name: dmpk2k!hinhT6kz2E : 2005-11-14 20:38 ID:Heaven [Del]

Hey, that looks pretty good!

95 Name: anon!21anon4H3U : 2005-11-14 21:44 ID:Heaven [Del]

>>93, that's really cool!

96 Name: !WAHa.06x36 : 2005-11-15 05:15 ID:KAbAGTL0 [Del]

>>93

Is that your own script, or a modified template for Wakaba? If the latter, maybe you should make it available, it is pretty neat-looking.

Although two things spring to mind: Maybe the Name and Email should be on the left, and maybe the frames are a bit superfluous. Then again, maybe not.

If you ever need to add verification, how about stuffing it in together with the post button somehow? They seem sort of logically connected. And it looks a bit lonely all by itself.

97 Name: Albright!LC/IWhc3yc : 2005-11-15 10:54 ID:s3LmckP9 [Del]

>>96: It looks like it's his own script based off of Futabally. See http://renfu.metachan.org

Anyway, I agree that the post form is definitely in need of an overhaul. It's just tough to do whilst still making people like WAHa happy. :/ I think the Required/Optional sections make it all a bit too noisy, but otherwise it looks pretty slick. Good work.

98 Name: !WAHa.06x36 : 2005-11-15 12:15 ID:KAbAGTL0 [Del]

>>97

I've never had a problem with changing the board look. But when you do, you need to make something that works as well as what you're trying to replace.

Now, with Thorn, your problem is just that the current Futaba-style layout is bad not as a copy, but on its own. It's too messy and inconsistent. It's easy to fix, and I made a suggestion for how to do it in >>77.

99 Name: Anonymous : 2005-11-24 12:20 ID:Heaven [Del]

         n    人     人     n
       (ヨ )  (_ )   (_ )   ( E)
       / |  (__)   (__)   | ヽ  THORN IS SHIT ! !
       \人/( ・∀・)∩(・∀・ )ヽ/  人
   n    (_ )u    ( ⌒)   uu)∩  (_ )
  ( l   (__)    ./,. 人     i ,,E)__)
   \ \ (・∀・ )   / /_)   ./ .ノ( ・∀・ )    n
    ヽ___ ̄ ̄  )   / /____) ,/ ./ ̄    \    ( E)
    / ̄| .  人 / / ・∀・)  / フ 人  ./ヽ ヽ_//
    |  |. (__)       /   (__)   \_///  
    |  |. (__)\  人 ヽ    (__)    / /人 
  ,―    \( ・∀・)  (__)    ∩ ・∀・)∩  ./   .(__)  
 | ___)   |  ノ   (__)    〉    _ノ  / ∩(__)  
 | ___)   |)_)  (,,・∀・)   ノ ノ  ノ   / .| ( ・∀・)_ 
 | ___)   |      ( O┬O   .し´(_)  .// |    ヽ/ 
 ヽ__)_/  ≡ ◎-ヽJ┴◎

100 Name: Anonymous : 2005-11-24 12:21 ID:Heaven [Del]

thorn sux

                   ノ⌒ 丿
                _/   ::(
               /     :::::::\
               (     :::::::;;;;;;;)
               \_―― ̄ ̄::::::::::\
               ノ ̄     ::::::::::::::::::::::)
              (     ::::::::::::::;;;;;;;;;;;;人
             / ̄――――― ̄ ̄::::::::\
            (        :::::::::::::::::::::::::::::::::)
            \__::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;ノ

101 Name: Albright!LC/IWhc3yc : 2005-11-25 09:10 ID:s3LmckP9 [Del]

Hey, nice 100 get!

New beta released today. Name cookieification has been implemented, as well as a bitchin' preview feature for testing your mark-up before posting. (I'd love to see something like that in Kareha, WAHa…)

102 Post deleted by user.

103 Name: Albright!LC/IWhc3yc : 2005-11-25 10:01 ID:Heaven [Del]

Bah. I just realized that I kinda got excited rushed things and left some important things undone, so I pulled the download of the new version. But it's still up and running at πchan. Please check it out.

Also, the Preview function probably won't work on IE.

104 Name: !WAHa.06x36 : 2005-11-25 10:24 ID:Heaven [Del]

>>101

I was avoiding doing that because building a whole new page with the preview was too much of a bother, but after I suggested you do it with XMLHttpRequest, I realized I could do the same, so I might just add it.

105 Name: Albright!LC/IWhc3yc : 2005-11-25 11:26 ID:Heaven [Del]

Yeah... This could also be used pretty easily to test verification codes before submitting the form, so that one doesn't have to wait for their file to upload just to find out they entered the code wrong and their file and time waiting just disappeared into the ether... Kinda exciting, the possibilities of this... Wish I'd sat down with it sooner.

106 Name: Albright!LC/IWhc3yc : 2005-12-04 03:05 ID:Heaven [Del]

1.1b5 now available. A nasty paging glitch in the Wakaba-like template was fixed, and all the features that should have been in b4 are now better implemented.

107 Name: Anonymous : 2005-12-06 10:45 ID:Heaven [Del]

Good job.

108 Name: Albright!LC/IWhc3yc : 2006-01-09 00:53 ID:s3LmckP9 [Del]

Thorn 1.1b6 is now released, and is currently running on πchan. The most noticeable features are:

*Post previewing should work in IE now.
Stupid JS trick: Vericodes are now checked before the form is posted. (I *think I implemented this securely.)
*Animated GIF detection.

If you can't post, please try reloading your cache. Your browser is probably trying to use the old JavaScript file.

Try: http://pichan.org/pc/
Download: http://thorn.pichan.org/doku.php?id=download_thorn
Version history: http://thorn.pichan.org/doku.php?id=version_history

109 Name: Albright!LC/IWhc3yc : 2006-01-09 00:54 ID:Heaven [Del]

Bah. The WakabaMark wiki page needs more info on how to correctly make a bulleted list... I always screw it up.

110 Name: SomeWhiteGuy !obkj4fb50I : 2006-01-21 20:11 ID:I7Ncl6xu [Del]

Hm.. I'm kinda new to thorn, I'm actually working on a separate project to add seed support to image boards, and that got me into trying Thorn out. I finally got it to work now, but I had to go through some trouble. I don't know, it may be issues taken care of already though as I just noticed now that you released a new beta (I was trying 1.0). I noticed when I fucked up on installs I cant click the back button and retry, I have to wipe out the directory and refresh from the archive. On windows when I try to install it to a directory like "E:\Program Files\Apache Group\Apache2\htdocs\thorn\" it doesn’t seem to like it, it will work at first, but when trying to apply admin settings it gives a PHP error about trying to access a file, and the file path that it errors on I notice seems to be the correct path but the "\th" in “\thorn\” is messed up. So basically, I couldn’t get it to work in a directory called "thorn". Also, when I got past that, it some how messed up on the MySQL database setup (I think I forgot to tell it to create the tables), but when I tried to go back to fix my mistake, I couldn’t. From that point on no matter what thorn page I tried to access it gave some MySQL code and something about how it couldn’t access the tables (I had to start all over again from scratch).

Well, I got it to work now though, I went around the admin section a few times pressing apply buttons and changing some settings and it seems to work well. I guess it's just the install functions that need to be debugged a little.

Nice work though btw.

111 Name: Anonymous : 2006-01-21 21:32 ID:Heaven [Del]

>>110
Use wakaba

112 Name: Albright!LC/IWhc3yc : 2006-01-22 01:09 ID:s3LmckP9 [Del]

>>110: First off, please do use the most recent beta instead of 1.0. Thorn has been greatly debugged and improved since its one and only "stable" release.

To tell the truth, I haven't really been following your project, and a lot of your site is tl;dr, but from what I can tell, it looks for seeds through the link URL to the image, so it doesn't involve the regular image board script too much. If that's so, it should be possible to add support for it in Thorn just by modifying the templates to link to the seed-finding script when an image is clicked. One possible issue that I can see is that the seed finder seems to be IDing images by their filename. As Thorn doesn't rename uploaded files, it's possible for multiple files to have the same filename. (Each post has its own subdirectory full of images; see http://pichan.org/pc/images/ ) Perhaps IDing files by hash would be better? Or allowing directories in the filename, so that something like "192/image.jpeg" would work?

113 Name: SomeWhiteGuy !obkj4fb50I : 2006-01-23 12:15 ID:I7Ncl6xu [Del]

>>112

RRG~ SWG spontaneously combusts
Yeah, I know what your talking about, I noticed it doing that every so often last night, and it semis to b happening more and more often now. I think I know why... When a user tries access an image, java-script runs in the background (you can see the script by going View/Source on a re-direct page). The script makes sure that the user got to the redirect target, and if not, then it redirects the user again and has a hidden frame report back to the tracker saying the URL is 404 and needs to be erased. I dunno, I heard of browsers crapping out every once in a while but i guess I didn't expect this; the tracker is getting messages that even the files on the primary image board server are 404 (which ofcourse is totall bullshit), and even they get erased. I'm guessing these are just dumb bougous errors? Or maybe just timeouts? I dunno, but the only thing that could erase an item from the source lists are 404 errors (this is a protection system to notice if a seeder just cuts the computer off)

Anyway, I edited the tracker script to never delete the image-board-server's files (even in the event of 404), and the thing should check the URLs for itself b4 erasing a source... So like, I think it should work now, but l0l, I know I had said that manny time before.

114 Name: SomeWhiteGuy !obkj4fb50I : 2006-01-23 12:17 ID:I7Ncl6xu [Del]

Crap, just posted this in the wrong thread, and I can't delete >_< Where do i even put a password in?

115 Name: Anonymous : 2006-01-23 13:21 ID:Heaven [Del]

>>114 I think delete's cookie-based.

116 Post deleted by moderator.

117 Post deleted by moderator.

118 Name: t : 2008-04-06 10:54 ID:ks1PGnQm [Del]

è

119 Post deleted by moderator.

120 Post deleted by moderator.

121 Post deleted by moderator.

122 Name: Anonymous : 2010-12-26 06:20 ID:97cIMR6r [Del]

I know this thread is old, but did anyone still have the thorn software and can upload it please?

thanks.

123 Name: Anonymous : 2010-12-26 20:05 ID:Heaven [Del]

>>122
No. It has disappeared from the face of the internet forever.

124 Name: Anonymous : 2010-12-27 06:27 ID:Heaven [Del]

>>123
Alas, poor Thorn! I knew it, Anonymous, a script of infinite THREADs, of most excellent GETs.

125 Name: Anonymous : 2011-01-24 11:19 ID:Heaven [Del]

>>122
http://www.mediafire.com/?a5g9eouc0qldhcf

Enjoy your PHP imageboard software from 2006.

126 Post deleted by moderator.

127 Post deleted by moderator.

128 Post deleted by moderator.

129 Name: Anonymous : 2011-07-23 13:53 ID:Heaven [Del]

>>122 why use thorn when you can use drydock? It (kinda) works, at least, and isn't from 2006

130 Name: Albright!LC/IWhc3yc : 2011-08-17 00:23 ID:Kxv1PQkw [Del]

Hay guise. I just want to say that I'm really sorry about Thorn.

It was my first PHP project of any decent size, and it certainly smelled like it. When I remember the code and compare it with what I am capable of writing today, I am ashamed. It breaks my heart that people are asking where to find the script (sometimes tracking me down and asking me directly), and that Drydock (http://code.google.com/p/drydock/) still uses so much of the original script as its base. If I could, I'd erase it from the internet entirely, or at least any association of my name with it.

I mean, my God, look at >>68 - I was starting to roll my own CMS before I even knew what a CMS was! What the hell was wrong with me?

Please, don't use it. And don't use Drydock, at least until it undergoes a complete rewrite that purges all Thorn guts from its core. Move along; nothing to see there.

(Though I won't apologize for the idea of being able to add multiple images per post; that was brilliant, and I'm glad to see others copied the idea. Though I'm sure they would have stumbled on it eventually.)

131 Name: Anonymous : 2011-08-17 16:00 ID:tvpUuWez [Del]

>>130
You did the best you could given what you knew at the time. Much respect.

132 Name: grey!C.MxxuCiTo : 2011-08-27 15:14 ID:xqKlZmaP [Del]

>>130

>(Though I won't apologize for the idea of being able to add multiple images per post; that was brilliant, and I'm glad to see others copied the idea. Though I'm sure they would have stumbled on it eventually.)

Yes, this is brilliant, keep at it. You can do it.

133 Name: Coach Outlet : 2012-08-06 08:27 ID:GpvEcrw/ [Del]

134 Name: Coach Handbags : 2012-08-13 21:39 ID:Zq3rRCkO [Del]

135 Name: Louis Vuitton Outlet : 2012-08-13 23:03 ID:Gdxb/r+2 [Del]

136 Name: Vivienne Westwood clutch : 2012-08-15 23:36 ID:hlq0cFsa [Del]

The actual godmother of punk rock Vivienne Westwood usual overhead from the planet as well as skeletal system head, brooches, anklet bracelets, and necklace design to the higher vividness of color.
read more:
http://truereligionbrand.webnode.cn/%E5%8D%9A%E5%AE%A2/
http://truereligioncanada.eklablog.com/
http://www.miespaciodenegocios.com/members/profile/5439/blog
celineluggagebagssale.com
juicycoutureoutlett.com
viviennewestwoodmalluk.com
canadaoutletbags.org

137 Name: Nurse June Loves Anal Sex : 2013-09-20 10:49 ID:W7V41Od1 [Del]

Name: Link:
Leave these fields empty (spam trap):
More options...
Verification: