Blogs

The search for code #announcement fstdt.com blog

Search is progressing, the query powering the new search page is remarkably fast, I now know we have over 11,000 comments using the word 'Moron' and I can return the lot in under a second. Except the syntax involved doesn't let me do one of my standard shortcuts to use fewer lines of SQL to do more work. I need to invest some time in ensuring I can dynamically create the query without leaving it open to security holes, which I plan to do over the course of this week.

For those who didn't notice in the comments of the last post I have the sample site up. Check it out, give me some thoughts, once I have search working as intended I'll be moving on to getting archive selections working somehow, which will be interesting.

In utterly unrelated news, the new Mad Max movie is a good movie. People calling it feminist are making a bit of a leap as it's not exactly new territory, but people jump the gun on this kind of thing all the time. It is however an excellent follow up to the road warrior and does a few things that actually make the third movie suck less. Max is Max, cars are cool, explosions are awesome, world is fucked.

It's another #announcement fstdt.com blog

If it isn't one thing...

Ok, so I've cleared up the paging issue and have a viable sample to post and show off the fact you can page through over 1500 pages of FSTDT content without any trouble. So I want to FTP it up to the new host... it doesn't fucking work.

I'm hitting them with a support ticket and see how it goes.

That all said, I managed to get it working by effectively pre-populating any possible combination of filters rather than ignoring turned off filters. I thought this would be a huge amount of data, and for this place it is. But it's size totals out to all of 8 megs of a table including an index that restates the content of the table in the order I want it to... so yeah, that's a wonderful damn thing right there. Almost no size for a damn nice improvement in speed. For reference the similar index on the current site is around 250 megs, but it has to include a great deal more data to offer anywhere near the same amount of speed.

Next stop after cursing support out is playing with the search functionality, even if I'm not going to renew with these guys at the end of the month I can get some testing done.

If it's not a cracked engine block I'm good, I think #announcement fstdt.com blog

This is not my week.

Car may be on its final bork so I may be blowing significant amounts of time looking for a new car, preferably something I actually fit into the passenger side of. Time may be limited for a bit, I'll know Wednesday.

Edit:
In the mean time I'm mucking about with what looks like a solution to the paging issue I had. It's called actually doing the optimization. Found a better set of tools than I had to figure a few things, went from a ten minute and stop it query to under a second WITH full diagnostics running. So. Those things are looking up, hopefully I can get this working like this for a test site this week.

It's no longer Monday #announcement fstdt.com blog

Alright, sorry about the delay on the quotes had a real Monday. This last one was impressive so I figure it's a good place to hold till tomorrow morning.

Dev work has moved right along, I have a few finer points to decide to run with or scrap before launching anything but both quote and comment pages work. Which is a good place to start when the site consists of only those things.

What I need to do other than the fine points, get hosting setup, get the database setup, get the data transfer to the database and make sure nothing explodes when I try to combine everything on the server. Odds are this is going to lag a bit beyond this weekend, as unless the paging on tags issue clears up I have some shit to deal with before I want to launch it as I don't want to annoy my host within the first day with a few dozen hung page requests.

Now if only the neighbor's dog would shutup #announcement fstdt.com blog

Right, this is a thing, sorry it's been a really nice day and I've been enjoying the hell out of it.

Did a good bit of work yesterday, fixed one of the issues I'd been having and should be able to get to work on the comments page next time I have time free. After that I'm going to get the base of the search page together, if you've been following I mentioned I wasn't able to test the improved search functionality because of my local SQL server version, well, once I have it to a testable point I'm going to be setting up a FSTDT test site where people can take a look at what I'm doing while I actually test the improved search on a system that can do it.

If nothing goes wrong I want to have that up by the end of the month, it'll just be display and it won't be the live data, but it's better than the nothing I have out there now.

Not April Fools #announcement fstdt.com blog

Running a tad late, but I got the pager together and I'm now focused entirely on unfucking my choice of controllers. Or at least one part of it, I may do more changes later but these are actual functional problems I need to finish clearing up.

I can glare at problems with the best of them #announcement fstdt.com blog

Got the pager logic done and I have a notepad file full of arguing with myself over how to fix an unrelated problem. Also annoying myself with the filters selection mechanism and it's propagation. But again, actual progress. Assuming nothing goes horribly wrong I should have something worth showing folks in the next few weeks.

As opposed to the things my wife sends me that I'm going to show off now, this just seemed a bit fitting for this place:
image

From an Art blog found here

Stuff getting done #announcement fstdt.com blog

Sorry for going quiet, been sick and not getting much done anywhere.

That said, making up for quite a bit today. Links now actually go to things, found an unexpected pain in my ass to clean up there. Have Standard, Random, Latest Comment and Top displays functioning no problems. Still need to do the pager, but I want to clean up my stupidity based issue before I bother with them.

Going to come back to what I have again tomorrow to make up for lost time after spending a while thinking on the problem and how to best integrate the pager data into the rest of my back end data.

In utterly unproductive news, I've found War Thunder. TANKS! Absurdly realistic damage model tanks. It's free and I've been having a good bit of fun when I was able to stop hacking. If anyone else is into it let me know, could use some folks to pal around with while I go tank hunting.

Interesting wake up call #announcement fstdt.com blog

Ok, that was unexpected.

Apparently white supremacy asian porno tumblr accounts are a thing and we've had a few submissions. Someone was trawling through them and had some bad links, which lead me to trying to hunt down the actual posts, only to get a slight surprise after reading about Asian women who refuse to date Asian men.

Which leaves me with two questions, what level of pornographic content should I start finding ways to flag(and trust me some of this ranks up there) and exactly what does it take to start filing someone under racist when they're rattling off experiences with their own race? I'm leaning toward having warnings in context links for now and adding tags for it in the new version of the site, the rest I'm not sure I want to touch.

The joy of parsing #announcement fstdt.com blog

And now I understand why I've never replaced the old BBCode engine that Yahweh wrote ages ago. Finicky does not begin to describe some of the engines out there, but I have one up to the same level of functionality the old engine had, and there's no longer the random # breaks links error.

The good:
Tags are up to snuff
Tags can now use # to link to anchors on a page(like specific comments on quote comment pages which has apparently never worked)
There is a quote tag, and I can add them on a whim.

The bad:
That took me about twice as long as I normally devote to development in a week due to switching out a couple candidates and the darnedest error in parsing I've seen due to ordering and an errant Boolean.

Still less time than writing it up from scratch though. So next week's work is going to revolve around pagers and all around getting links to plug into pages correctly.

And for everyone's reference a list of the BBCodes to be available, this will be in the new site's FAQ:
b Bold
s Strikethrough
sub Subscript
sup superscript
i Italics
u Underline
img Image
quote Quote
list Define a list
* Define a list item
url Links, without the damn # problem.

Logins #announcement fstdt.com blog

Looking into login mechanics found an interesting set of options for me, I can either go whole hog with .net Identity or implement the entire thing in 4 lines of code. But if I use .net Identity I would have most of the user admin functionally together and could allow people to use facebook or twitter log ins, which may be the stupidest thing I've ever considered around here, or it might be mildly interesting to people. Effectively any Open ID login could be used if I set it up properly, if anyone is interested let me know, otherwise I'm going to take the short way around and implement the user admin stuff based on code I already have.

Right now I'm working on BBCode handling and getting a pager together. With those I'll be at the point I could put a sample site out there for people to try and break. Even if it doesn't have user functionality.

1 Point #announcement fstdt.com blog

Right, so I'm alive and I've actually accomplished a few of my goals in the code, and then promptly didn't give enough of a shit to write up a proper rant. Basic routing works, I have tags displaying without duplicating quotes, and I need to start seriously looking at user based functionality(Quote submission is tied up in that since I do verification on member comments and quotes).

I'm saving a rant point for now, may wind up unloading it into the general direction of hashtag activism before too long. But, actual progress occurred, and I'm going to keep at it.

Format Change #announcement fstdt.com blog

Going to pull a change of format in here. I'm going to start allowing myself to rant on here each time I finish some meaningful part of the code. I'll do a quick run down of what's been done, and then let myself take aim at something that annoys me. I'm somewhat open to requests but I think I have three to hit before I'll consider much else.

Used this idea to drive myself to do some of the basic overhaul I needed to do any more progress and I got it done in no time. Also have floundered my way through most of the godforsaken problems (I think) MVC can throw at me, which means I'm not going to be delivering on the public admin queue exactly as advertised, but will at least eventually work. I'd describe the problem but it boils down to me trying to do something MVC simply isn't intended for. Or at least doesn't cope with very well. I also tend to get side tracked with streams of obscenity when I think about it.

Anyway, first goal is getting the basic routing straight. Now that I have backend SQL that works correctly with the filters(don't ask) and the display already works reasonably well, it's a rather major component to get right. After that will be displaying the tags, then submission. If I get myself to buckle down I should be able to blow through the lot of them in relatively short order, but after those I have the joy of authentication and authorization to deal with before I move on to anything that cares about which user is involved. So find something else that annoys me so I have motive to make a fourth post, it can't be that hard my wife says I'm typically annoyed with something.

Also considering an alternate reward to myself of buying Darkest Dungeon, then possibly doing a stream of it as I fail to manage anything in it.

FOTY Results #announcement fstdt.com blog

Votes are tallied and the winners are in.

With 85% of the vote we have Wulf Ingessunu with Best Cult from an 80s TV show and has had this fact immortalized as an award on the quote itself.

W. F. Price is the Pseudo-Intellectual of the Year

Patrick Scrivener is the Conspiracy Theorist of the Year.

Anna Diehl is the Fundie Of the Year.

Our Quote of the Year is... almost certainly satire. Quote #102138 is easily the most amusing thing submitted last year even being satire. So I should mention that AV1611VET's Quote #100557 is likely out legitimate quote of the year. That said, if the person who made the post quoted in #102138 wishes to claim the title of funniest satire submitted this year drop me a line and we can honor you appropriately. If you said it and you where serious, go see a fucking doctor.

The Fundie of the Year Awards

Fundie of the Year Awards Voting #announcement fstdt.com blog

Fundie Of the Year

The big one, selected from the top ranked fundies of the year we have three options that I figure almost everyone has to know.

Options:

1: Anna Diehl
The sinner in the hand of a vengeful god, and apparently quite content with that. Easily our most honest and disturbingly coherent fundie in years. A sample of her work:

Of course all of these theories are based on a refusal to accept that God could find true delight in torturing people. Well, tough. HE DOES. Are we really so arrogant that we think we can define who God must be, or that we can change truths about Him simply because we don’t like them? If our Creator gets high off of torturing His enemies for eternity—which He clearly does—then we need to face this fact square on and ask the Holy Spirit to help us deal with it. ...

Full Text Found Here

2: CAAMIB
And more other accounts than I even care to name, this guy... I actually feel kinda sorry for if his world really looks like that to him. But I sure as hell wouldn't let him inflict that on others.
I have and I still believe I'd have sex with a woman against her consent. The difference now is that when I wrote that I thought that rape is forceful sex against a woman's consent. I was wrong, since I didn't know enough history and was brainwashed my feminist propaganda.
Full Text Found Here

3: David J. Stewart
One of our more prolific fundies, both in what gets posted here and what he writes in general. Quoted in all three categories this year and frankly could have been nominated in either of the ones I'm doing awards for, but thankfully not quite all three categories on the site. I checked.
Religion is the WORST thing that has ever happened to this world; Countless Billions of souls have been doomed to Hellfire by false religion. Learn what the Bible has to say on the matter. I expose many false religions... not to be unkind... but because the truth has been hidden from the world's masses. Just remember, religion didn't die on the cross for you—Jesus Christ did!
Full Text Found Here


Conspiracy Theorist of the Year

It was a good year for insanity, and certain efforts should be recognized.

Options:

1: Anonymous Cowards, of GodLike Productions
I'm cheating here, but they're also the group with the highest fundie index on CSTDT for last year. The anon comments over on GLP are amazing, not always in a good way, but amazing.
I have recently had an epiphany about dinosaurs that makes perfect sense! You would have to be spiritual minded to see it so I suspect many scientific minded people will tell me I've lost it...that's okay.

Here was my idea, just as the fallen angels have manipulated with genetics to claim their own creations (and to piss God off), I suspect they took God's creation of birds and genetically altered them to make their own creation. That is why scientists claim dinosaurs evolved into birds because so much of the genetic code of birds is in them.
...

Full Text Found Here

2: Patrick Scrivener
Someone who tends to run the lines between fundie and conspiracy theory, but I think conspiracy wins out on his top quotes. Special thanks to Yossarian Lives for bringing us so many of these.
Before the advent of MI6 sponsored communism in Russia, the Orthodox Church completely rejected the heliocentricity of Galileo and the evolutionary myth of Druid Charles Darwin. They also rejected the Syllabus of Pope Pius IX which completely condemned all scientific progress—except advances in spying and cryptology.
...

Full Text Found Here

3: Wiley Brooks
Odd one out, as he's only had one approved quote, but it was pretty amazing. Still not sure what if anything it means, so let's all stare in mild confusion.

In order to understand why I have chosen these foods you must first know how the human bodies descended into the 3rd dimensional world in first place. This is not our natural home. Being here as long as we have been was not intentional. We didn’t plan to stay here permanently. You could say it was purely by accident that we ended up getting stuck in this 3d world. The Earth, without a doubt, is the most beautiful planet in the Milky Way galaxy and that is why it was "the" vacation spot of the galaxy for millions of years. There was always a constant stream of visitors coming here from Worlds and Galaxies far and wide.
...

Full Text Found Here


Quote of the Year

A new hit from an old favorite, a disturbing conspiracy and the funniest damn thing I saw this year. These are the top quotes from each category, which is the best?

Options:

1: AV1611VET, from Christian Forums
I hadn't seen much from him in quite some time, but he came back strong with this one.

First of all, up until the Tower of Babel, they had to speak some language.

What language was that?

What's the best candidate?
...
Thus we have all peoples, nations, languages and tongues, standing before the Judgement Seat, being read to from the KJB.

Thus if they speak Jacobean English in Heaven, I assume they spoke it on earth at first.
Full Text Found Here

2: Diana Napolis
I honestly have no idea what to say here, but entirely believe every WTF?! was warranted.
The Enemy has been busy forcing others to have sex with them. They have a method of copying sex responses and placing these responses within penises and artificial vaginal canals. They copied my vaginal canal and orgasmic response, and placed that response into other artificial canals so that the enemy could insert it into themselves.
...

Full Text Found Here

3: white male, from Beyond Highbrow
It won an award within 30 seconds of me starting to read it and has given an entire demographic a bad name. I don't really even need ot quote that much of it to show why it's here. Poe or not, funny shit.
um nope. I am a proud white male with an 18 inch cock, thicker than a gallon milk can. I have a pedigree going back 10 thousand years to the Aryan-Teutonics of Asgard and Atlantis, and the government is so frightened of my innate caucasoid potential that they made me file a non disclosure agreement of my superior white male dna supreme genetics.

You see white men are actually from the distant island of atlantis which was floating in the tuberclizician Stratosphere of Earth, which Gulliver christened as Laputa.
...

Full Text Found Here


Best Cult from an 80s TV show

This is a special request I could not help but follow up on. And as a single nomination vote you can enter 1 to vote for it, or 0 to vote against it and tell us if the following is the Best Cult from an 80s TV Show.

Option:

1: Wulf Ingessunu
Woden's Folk is invariably criticised and attacked by those whose aim is to discredit anyone who opposes the Global Order.
...
One of the main targets has been The Hooded Man Prophecy since this is an easy one to get at since it has no 'historical' authenticity - so we are led to believe.
...
Firstly, yes this does come from the TV series Robin of Sherwood and was no doubt made up for the series. But that does not invalidate this as a prophecy, but we can only recognise it as such through the knowledge of what its hidden meaning is.
...
In order to understand that The Hooded Man Prophecy is valid you need to understand the above ideas clearly, because without a knowledge of what an avatar is this will never be understood. Only through recognising that a god can actually incarnate in the flesh will we be able to understand what I am trying to say
....

Full Text Found Here


Pseudo-Intellectual of the Year

We had a few nominations for this request, but remember if they are not worth the honor you can always vote 0 to deny it to anyone.

Options:

1: John C. Wright
Despair is the key. It explains nearly everything that is so puzzling about the madness of modern life, the pack of self-contradictory dogmas that make up the default assumptions of the Dark Ages in which we live.

They have nothing else. No wonder they are bitter. No wonder they are irrational. No wonder they lie like dogs. No wonder they boast. No wonder they are full of envy and malice. No wonder they kill babies in the womb and fete socialist dictators and mass murderers. No wonder they love death. No wonder they admire, protect and love Islamic terrorists. No wonder they admire, protect, and love sexual perversion.

It is because they have nothing else. They live in a world of darkness, without hope, with nothing but their seven great friends to sustain them: pride, which they call self esteem; envy, which they call social justice; wrath, which they call activism and protest; sloth, which they call enlightenment; gluttony, which they call health food and legalization of recreational drugs; greed, which they call fairness in taxation; lust, which they call sexual liberation.
Full Text Found Here

2: W. F. Price
As for young women, higher education is an enormous waste in most cases. They spend their time learning from lesbian pornographers, drinking, whoring and learning to look down on their male peers even as they debase themselves. The old idea that it will help them find a suitable mate is so outdated as to be laughable, but it’s what keeps parents paying for college tuition for their daughters: they hope that daddy’s little girl will get hitched to some conscientious beta male instead of knocked up by a hoodlum. This is the single biggest reason parents send their daughters to college, and it’s a gamble that will only pay off about half the time these days as the female to male ratio approaches three to two at universities (not all college-educated men marry college-educated women, or marry at all). Not a good bet for roughly $100k, but it supports legions of hard-left ideologues, which explains the enthusiasm for the failing system in mainstream media outlets.
Full Text Found Here

I feel compelled to note, lesbian pornography was involved in my college experience, but not in the way Mr. Price is concerned about it. Funny story actually. Anyway, This year's voting form:

FOTY [X]
COTY [X]
QOTY [X]
BCF80TV [X]
POTY [X]

Submit the above as your comment, replacing the X with the number you vote for in that category. If you want to vote against the existing options enter the number 0, if you don't want to vote at all either leave the X or erase the line. Counts will be done at the end of the month.

Routing around #announcement fstdt.com blog

Phew this is long, don't forget to check below for FOTY nominations, they're still open for the next week.

Routing, mentioned it before and most people probably have no clue what it means, so while I'm sorting it out I'll explain what I'm up to.

The last preview I posted requires a URL like this: http://localhost:60349/Quotes/Index?TagID=2&Year=2008&Month=12&Page=3 Very nice and clean looking right? Well, that's because I haven't handled a damn thing beyond the basics in the routing configuration.

I'll break this down real quick.

http://localhost:60349
This is just my local webserver, funny looking but keeps me from having to publish things to someone else's server

/Quotes/Index
These are the basics of the MVC routing system, /{Controller}/{Action}. I have a controller named Quotes to display the various quote listings and since I'm a lazy ass my default action within the Quotes controller is Index while I get things working. Later I'll be swapping out Index for the type of quote listing you're receiving since I need to make entirely different calls for the same controller depending on the request made. So eventually that portion will look like /Quotes/LatestComment, /Quotes/Newest or /Quotes/Random and each of these would take you to the first page for that particular listing. Notably, this arguably isn't exactly what actions are for as they are supposed to be distinct actions, but given the rather significant differences in calls and otherwise uselessness of doing otherwise I'm using the action to do this split.

?TagID=2&Year=2008&Month=12&Page=3
This mess, actually not too different from what we have now, but it's what I can do to the routing engine that is worth talking about. I cant take the above and turn it into this:
/2/2008/12/p3
Easily, with a bit more work I can do this:
Conspiracy/2008/December/p3
Which finally gives you a real idea of what page is coming up, it's the third page of CSTDT for December 2008. Only backwards because I have not yet been assed to consider routing validation that would let me swap the place of month and year. What sense does that make? Well, if I setup the routing well enough I can make sure it knows what to assume when part is missing so that this:
Conspiracy/2008/December/
Takes you to the first page for December or this:
Conspiracy/2008/
Takes you to the first page for all of 2008 or finally this:
Conspiracy/
Just takes you to the latest quotes in that tag.

So, routing lets me go from what we have today:
http://www.fstdt.net/QuoteArchives.aspx?Archive=2&Date=2008/12&Page=3
to
http://www.fstdt.net/Quotes/Newest/Conspiracy/2008/12/p3

Cleaner looking huh. Especially without the month getting converted to text, odds are I'll wind up supporting both number and text representations both at the same time with a bit of work on the routing system. Complex crap to make simple URLs without any of the things you don't have a clue what they are in the URL. It's all stuff that looks like it belongs there.

How this helps me handle the filters, well, what I'm looking at doing right now is having a little pop down menu where you go in and hit the tags and dates you want to read through and immediately take you through to the right page. If anyone cares about the loss of easily visible month numbers let me know, I'm still poking at this.

And a last thing, this also means with some more routing work I can support all of the old URLs you already have favorited. Relatively easily in comparison to what I'm pulling now.

Fundie of the Year nominations!

Nominations 2015 #announcement fstdt.com blog

I'm pulling my standard individual quotes now, but any specific nominations folks wish to make, exemplary quote in a category, exemplary Fundie in a category or a custom award for a quote or user that you've been sitting on all year.

I'll select nominations and put quotes up to a vote on the 18th, so let's have em.

DOOMED! #announcement fstdt.com blog

As a belated Christmas gift to the community I give you the very first quote properly rendered through the new site:
image

DOOMED He tells us! DOOMED!

And here I nearly updated the database before keeping development rolling. Nope, that's the perfect quote to keep me amused while I get things done.

Of course, I still need to get Routing, BBCode, Tags and a whole bunch of other things working, but once I get a few more bits of middle ware sorted out those will be my biggest problems.

FOTY! #announcement fstdt.com blog

Head's up while the quote flow is a tad low, start thinking about Fundie of the Year nominations. I'm going to run nominations through the first half of January after pulling the best rated for the year as my default nominees. Voting will be the second half of January and I'll make this all quite clear with titles when the official posts roll around.

Dependency Injection will always sound painful to me #announcement fstdt.com blog

The things I've been studying are finally sticking since I have something to apply them to. I have a significant amount of reading to keep pounding through, but I believe I have a solid basis to do some real work on tomorrow. I'll see what I actually get done. For now I have a pair of questions for the readers:

Anyone have any personal preferences between Ninject and Unity for DI containers, or am I listening to these people entirely to much in using dependency injection in a project that will never actually need it so long as I'm in control of it?

Also, the header with all the filters in it. Did anyone actually like that? It's wearing on me and the details of it's implementation aren't working out. Not fond of the space it takes up and all of the information would be immediately visible and clear in the URL. Working on figuring a replacement, but for right now I'm just focusing on generating the quote listings and shooting them out to the page.

Moving along #announcement fstdt.com blog

Alright, now that the server is unfucked I can post something.

I've gotten some work in on the site, exploring the mechanics of an entirely new architecture is interesting, but not particularly quick. At the moment it's clear to me without a serious goal I'm just not getting much done, so I'm aiming for a first pass of absolutely basic quote retrieval, hopefully by the end of the month. In good news, I have a work project that's using the same tech so I'm learning it faster than I otherwise would. From what I'm seeing once I have things together(properly) taking those things and reorganizing them as needed should be pretty simple. Assuming I get the basic quote retrieval done, I should be able to take all the same elements, feed them into a few different templates and the biggest development effort will be in properly organizing the data for the elements. Should. I've been wrong before.

Also, thanks to the server dropping out on me a fair chunk of today's queue was skipped over, so I'll be approving all of those tomorrow.

Still dinking around #announcement fstdt.com blog

Rather busy at the moment, but I've been taking the chance with the new version of .NET to familiarize myself with MVC more. I'm still not horribly fond of some of it, but.. it's so stupidly easy I may well work with it. Assuming you haven't done anything wrong, which is where planning comes in to make sure you're not doing things wrong.

What I intend on doing is taking what I've generated for the mockups and my test database, getting a working MVC version of at least a few of the pages and then see about doing some serious testing on them. No time line yet, but I don't think it would take particularly long. I already have the layouts, I just need to get to work on the display logic. From there I can actually screw with it and see how it scales.

.NET Community #announcement fstdt.com blog

Well, good news for myself and any other hobby programmers, Visual Studio has released a community edition of it's current tools! What does that mean? I means no more fucking express versions which involve four installs to have full functionality. It goes along with their opening of .NET's source and their preview of the next version of Visual studio they're working on.

What that means, I don't have to pay $50 a month to do competent dev work on the site. I'm still hung up for the rest of this month and it takes about four hours to install, but it means I will be reasonably happy with the tools I'm using. If anyone else out there want to tool around with it now's a great time to start. Let's hear it for dragging your feet folks, wait long enough and what you want may just happen.

Or you spend your live yearning for something that never happens. But this time it worked.

Comments Mock Up #announcement fstdt.com blog

And I forgot to post this yesterday, the comment page mock up!

image

Or for fucks sakes my FTP isn't cooperating, wait there it goes.

There are a few important things to note here beyond round corners. The title is the same as the top page, which is intentional, this is intended to be another level of consistency within the page. The title and all of the selected filters would appear on this page, and they modify any of the relevant fields in links going outward from this page.

Further the 'write comment' link rather than the post box that has been here forever. Simply put, it's a anti-double post measure. When you hit the write comment link it will either create a javascript pop box to enter your comment in, or if javascript is disabled it'll route you to a page to submit your comment which will process on that page and then separately re-route you to the quote comments page. A bit complex for what it does, but I think we're all sick of double posts by now. It'll also mean that all my comment logic is in one place so I can very easily make modifications.

I'm happy with the comment header bar being a one stop shop for important links and think the hide link is more intuitive than just clicking on the header like it works now. There are a few other things that have come up over time that I'm still looking at, but right now I'm focused on the core functionality.

I'm also running low on excuses not to start coding, but I have one that carries me through the end of the month.

Jack could be our chaplain #announcement fstdt.com blog

Mid week thought, I'm rather fond of the image I've used for DSTDT on the main page and part of me thinks it embodies a fair bit of the site. Which makes me want to ask what others think of the idea of using it was the FSTDT logo.

image
Humor, religion, bit of madness to it. I just like it.

Perhaps more importantly, I believe I can actually secure the rights to the original and might get myself a shirt made even if no one else wants one.

As to the classic shotgun Jesus, I love it, I've found higher quality versions of it that attribute it to a Mustafa(or something along those lines, found it ages ago), but I've never been able to track it to an origin point. Without the artists permission I'm unwilling to merch it in anyway, so if anyone knows who it was let me know. Would love to get a hold of them.

Still, Nigerian Illuminati? #announcement fstdt.com blog

Messing about with comment layout and such, just not a whole lot worth looking at yet. Back at it next weekend.

Since it is bugging me, general thought on patterns of clicking through a page. Centralized location for likely places to click, or spread out across the page?

Futzing about with the controls layout for clarifying the fact you can hide entire comments, and considering putting that near the permalink and edit link. All on left of the same line in the title bar. That or I'm going to put the hide/show button on the other side of the header and see where the edit link falls.

Paranoid all over again #announcement kickstarter.com blog

Hey folks, another bad weekend for work on the site. Big pile of hobby material and a new CIV game have arrived, my wife will be lucky to see me. That said, I have something that just started folks might be interested in. Should be getting back on track next weekend, particularly as a great deal of vacation time to blow before the end of the year.

Paranoia Kickstarter! I posted the bundle of old material a while back and just caught wind of this kickstarter. I'm seriously considering backing it, but remembering the conversion from pounds to dollars is a tad painful. Still, 30 pounds for a box set of one of the more interesting games I've ever come across may well be worth it. If not 10 for a PDF copy of the rules will be. Given it's already funded I'm far from alone in that thought.

AJAX #announcement fstdt.com blog

Tad short on time this weekend, also into the middle layer/presentation tier stuff which is boring as sin to talk about. The big thing is the voting mechanism and making it work without all the ugly it has now, making an actual AJAX call out of it. Which is to say, you hit the button and it sends a call back to the server to figure out what to do without involving the rest of the page. The upshot to doing it this way is that I don't need to worry about security holes from four different implementations of the code, down side is I need to make sure the html around the button is consistent or otherwise easily dealt with.

Having most of the basic pages sketched out is a good starting point, I figure I need to get my tools collected and start choking on the 50 bucks a month for a newer version of visual studio. Which I am somewhat hesitant to do, but if I don't there's not a huge point to the re-write.

Anyway, the last post had some people mentioning issues with the mobile site. I can take into account mobile devices in the new layout, but I'd need to know the exact problems and I don't actually have a smart phone. So consider this the mobile complaints department and I should be able to setup the mobile layout to accommodate them all.

Much better #announcement fstdt.com blog

I've been pounding away at formatting and I think I have something reasonable, and something else that might be better if I can get the fine tuning done. As such I have two mock ups for you guys:

The first is very much like what we have now, with a bit nicer styling
image

The second has some re-arranging done in an attempt to waste less vertical screen space per quote
image

I'm still not happy with where I have the Quote ID on this second one one, but both could use some nicer looking filters(long term goal) and would have tags inserted directly under the 'submitted by' portion of the quote. The one thing I want to work on is the fundie index, it's nice but wastes a fair bit of space for such a short line. So I've been looking at replacing the WTF and meh with some other smaller indicators and merging it into the comment count line. Not sure about the results. As always thoughts are welcome.

On a complete side note, if there are any Freddy fans out there looking for a blue ray release, best buy has the full collection at 20 bucks off, down to 30 bucks for seven movies(it doesn't have Freddy vs Jason). Freddy, the discount horror villain. Been enjoying that.

This happens a lot #announcement fstdt.com blog

So, fucked around with the described layout for a fair part of the weekend and discovered something. I hate it. It sounds decent in theory, but it's not half as readable or focused as what we have now.

Brought my wife in to take a look at it and got the 'are you serious' look along with a few thoughts on some alternative layouts. So, wadding that one up and tossing it, planning on something a bit closer to what we have now, just written better.

The layout may look like something out of the early 00s but it works reasonably well. But with the better implementation of a similar layout I have a lot more of it I can futz with to improve the things I know I want to focus on. Which has become next weekend's project.

Layouts, a lot of fiddly details #announcement fstdt.com blog

So, starting is apparently the right word here. I'm driving myself up the wall with the lay out choices, but I have a few solid things together.

First off, that box that cuts off a small portion of every direction of the screen? That's gone.

The header up top with the links to more or less everything, that'll be expanded to include filters and any functionality from the current index that isn't in it now, and be given its own background. Expanding from one side of the screen to another. It'll be a band of functionality and information related to the current page across the top of the page.

That's actually a majority of the layout, but being me I can get caught up in details till the cows come home and complain at me for not picking them up from soccer practice. Which I have done with the quote layout. The way I see it I have these chunks to work with:

Quote Content

Author, Location[link to URL] Posted Date

Comments (Count)

Index + Voting Mechanism

Tags

Submission Details

And that's roughly the order they're in now, but I have two big questions I've been considering. Do I promote Author/location/date line to a header like thing, or keep it after the quote as it is now. Also, where should I present tags. As they sit above they're good for looking at something similar after reading the quote, but they don't serve as possible warning for terrifying content all the way at the end of the quote. There's also the matter of possibly presenting tags as small images, but I think I'm on the outs with that idea after trying to figure out how to present a few of the tag ideas as images.

But, what I do know is that I'll be breaking up with the break line when get the new lay out together. Each 'Content Entry' (Be it quote, comment or search result) will be its own div, maybe even with rounded corners or at least a little gradient separator, and details within that will be given their own panels to make it more readily clear that there are different parts to a single entry while still keeping it all as a single entry.

Anyway, all this said, there's also the matter of keeping my favorite CSS joke I've ever managed, that grey that borders the entire site, its color code is #666. That amuses me far more than it should this many years after first doing it. I'm thinking I may use it as a basis for my color selections, but it does seriously limit the range of colors I have to pick from. So, continuing to muck about with this. May be posting praises of Solomon Kane mid week as he seems to be pretty awesome for a puritan, otherwise I'll be back next weekend.

Quote Comment View #announcement fstdt.com blog

Quote Comments View:

This view will contain the Quote Details of a single specified Quote, a Comment link for that quote and a paged listing of the Comment Details for this quote. Comment Details will include, Comment Text, Comment Author, Comment ID, along with a Reply link for each comment.

Entering a new comment will be done through a separate interface the user is taken to once they click a 'Comment' or 'Reply' link. If you use the Quote comment link you will be presented with a summation of the quote and entry fields for Author and Comment Text, if you are signed in Author will be filled in for you and disabled, if you have entered an Author previously on an unauthenticated session then the previously used Author name will be pre-populated and available for editing.

Once submitted the Comment interface will either close or redirect you to either the last page of comments available for the quote or if you replied to a comment it will take you back to that comment.


Now, with all of this I have to admit one thing. I'm still quite torn on how to submit comments. I know damn well I don't want it to be the part of the page it currently is due to the multi-post problem, but I don't know if I want to do it as an AJAX panel that pops up and submits itself or if I want to take folks to a new page, or just pop a new page that has the comment interface. Right now I'm leaning towards a separate page just because it's easiest to handle, my wife's telling me I should at least have that separate page even if the AJAX bit comes into play later.

I also want to know what you guys think about getting bounced around after submitting a quote. I'm pretty sure our lurker types would want to be taken to the newest quote, but I know some folks reply to something midstream and probably wouldn't want to be taken to the last page. So what I've posted above is intended to attempt to satisfy both groups. If you think your group isn't addressed or think the other groups suck and should be ignored give me some comments on what you think the page should look like.

Next post will be this weekend and another one where I'm looking for serious feedback, I'm going to take a few stabs at mocking up a new layout. How does everyone feel about rounded corners?

Search #announcement fstdt.com blog

Search View:

The re-worked search will include a number of new features on top of what should promise to be a considerably faster searching algorithm. Any new filters are followed with an asterisk

Filters include:
Quote Author
Quote Location
Quote URL*
Quote Content
Quote Year*
Quote Month*
Quote Tag*

Comment Author
Comment Content
Comment Year*
Comment Month*

Any quotes matching all of the entered filters will be displayed as a Quote Details listing. If any comment filters are used then the earliest matching comment will be displayed directly under it's related quote, with a link to a view featuring a listing of all comments matching the search filters which displays the count of matching comments. Each listed comment will include a link to it's location within the Quote Comment Listing.

Yay, something different finally! Sort of, I'm still lifting most of the display from other parts of the site. Let nothing bad be said about code reuse or display templates. That said, I'm debating a few parts of this still, the date filters on comments are a big one. Not sure if I should let them be used without Author or Content specified, but odds are someone could find a use for that anyway. Further, listing more than one matching comment so it's less likely that people have to dig into the Search Comment Listing, it's possible, but I'm torn on where the cut off should be. So for right now I'm putting it at one as that is by far the easiest number to deal with and still keep the comments in the page.

The last outstanding bit of site theory is the Quote Comments pages. I should hit that mid week.

Top Voted View #announcement fstdt.com blog

Top Voted View:

Single page listing of Quote Details ordered by the vote value and limited by the Tag, Year and Month filters. Year and Month filters function off the Quote Date Posted.


Pretty simple here, which is probably why I'm compelled to check on a similar idea brought up in the comments. A view that filters dates not by the Date Posted, but by votes entered within the selected range. What I could do here would be Popular [tag here if there is one] quotes of [specified time range] pages. I'd need to do some building out again in terms of precalculated tables, but honestly I don't think it'd be all that bad to do. I'd just need to include updating the pre-calc table values in the voting updates and it'd be more or less ready to go if I plugged it into the procedures I already have and the interfaces the other pages will need.

But, there's one rather stupid problem with it that I see, if you don't select a date range it'll look exactly like the Top voted page. In fact I'm not particularly sure there'd be a notable difference. I'm going to look at it next time I'm in the system.

Latest Comments #announcement fstdt.com blog

Latest Comment View:

Displays a listing of the Quote Details(again without the Read On Link) which have most recently had new comments made on them as limited by the filters. The Quotes will be ordered by the date of the most recent comment made to them. Further, each quote will have it's most recent Comment displayed beneath the Quote Details along with a link directly to that comment.

Notable that Filters will still work off of the Quote's Date Posted and not the date that the Comment was made for sake of consistency with other Views. Otherwise they work the same as previously mentioned with Tag, Year, Month and page filters. Pages progressing you through the ranks of most recently made comments.


So, one big notable change here that would let our dedicated lurkers keep on top of most recent comments with ease. It's also one of the reasons I'm currently giving MVC the stink eye. Though it should be giving it right back to me as I'm the one trying to shoehorn it into this project. Without the consistent model to display things(since I'm varying the read from here links, or in this case displaying comments as well) I'm looking at custom models for every page eliminating one of the handful of useful aspects of MVC. Pretty much just leaving me with testability(useful but I have like 4 functions on the entire site to test) and the ability for large teams to work in relative harmony, also something that's not a concern for me.

But, putting the descriptions on hold till the weekend, have important things to attend to the next few days. I'll do a double decker when I get back, Top Listing and Search.

Random Quotes #announcement fstdt.com blog

Random Quotes View:

Consists of a Listing of Quote Details as described previously without the 'Read On From This Point Link'. This listing is ordered randomly from all quotes allowed by the filters.

Filters work almost the same as the default listing, but in this case there are no pages. There is a single page of Quotes pulled at random from all quotes matching the defined filters. If a tag is selected only quotes from that tag will be displayed, for year only quotes from that year, for month only quotes matching both that year and that month. These can all be used in conjunction with each other to make as broad or as limited a random pool as possible.

So, all over everything random pages will be back, all new ability to get random quotes from given years, and with further ability to pick from any of the defined tags which I'll be revisting once I have the basics together. Unless I get creative though I can't support the "Read On From this Point link" on the random page, otherwise it's not exactly random since I'd need to be able to pull the same random page twice. It's possible, but unless demand is there I'm not going for it.

Quote Archive #announcement fstdt.com blog

This is the simple one, the basic Quote Archive page. Not massively different than what we have, but a few added features.

The display will list Quote Details for a defined page length of Quotes available per the filters set ordered by the descending Date Posted.

Quote Details include:
Quote ID
Quote Text
Quote Author
Quote Board
Quote URL
Quote Comments Count
Quote Comments Link
Latest Comment Link
Quote Date Posted
Quote Rating Display
Quote Rating Inputs
Quote Tags Display
Read On From This Point Link

The Filters include:
Tag
Year
Month
Page

As filters are set they refine the set of records displayed to only those that match the given filters. The Tag filter requires that the selected Tag is assigned to the displayed Quotes. The Year and Month filters require the Quote have been posted within the defined range of dates, either within the year selected, or within the month of the Year selected. The Page defines which set of the filtered quotes you are currently viewing.

When used as the main page and given no filters this page will display ALL quotes in descending order based on Date Posted.


Pretty simple stuff, but it does raise one question to me, do I keep the ages old index that sits at FSTDT.com, or do I drop it and have that point directly at the unfiltered quote listing? It should be easy enough to stick login/user management details into the site header and the rest is quite honestly a set of relics from ages ago that I never really thought too hard about keeping. It also has the slight problem of using a number of images I have absolutely no right to, which is one of the reasons I haven't taken the site a tad more commercial. Further, do I drop the Archives listing and just display the number of quotes available under potential filter selections? Tomorrow we get more interesting, Random Quotes.

Back on the horse #announcement fstdt.com blog

Quite a bit cooler these days, getting back on the code horse.

Beating around the code I had sitting about showed me something pretty interesting. I have a choice right now between 5 specialized procedures for different filter selections, or one generalized one that has cut outs for any filters that aren't defined. This is what I was bitching about last time, well, turns out that 3 of the specialized procedures are considerably faster than the general one, but the other two are absolute pigs despite generating the exact same results as the general procedure. The biggest of the pigs being the procedure that would be used when the main page is just opened and given no tags. So, yay tight and shiny code, boo five versions of the same damn thing.

What that means is I have the backest of ends together in formalized procedures, now I need to start working on taking what I've generated at the database and actually working with the objects/pages that will make use of this data. Which comes at a good time, I have a significant project at work which may be better served working off a more modern architecture and I think I have the kinks out of making FSTDT MVC. So I'm going to use what I'm working on now as a test project and I have heavy incentive to get serious work done on it in the next few weeks before work's project proposal makes it's way out of management limbo.

While I'm poking at all of this I want to go back and review exactly what the site is going to be doing different in a more organized manner, so for some part of next week I'll be posting "View X" definitions, what they're supposed to do, what's different than right now and if anyone wants to toss in a request there's still time.

Though I may be reworking some things as the indexes on the comments table are more than twice as large as the table itself. Or I'll just go with the hosts that are generous with storage space.

Atheir than thou #announcement fstdt.com blog

Alright, so it's entirely too hot in my sweatbox apartment to deal with coding. But it's the perfect time to park my ass in front of my Air Conditioner and do some reading. For a while now I've been doing some rounds reading various atheist view points and philosophy, I've found I like Sagan and find Harris mildly infuriating. But I've blown through most of the high profile stuff and wonder if you guys have any suggestions on good atheist reading. The only big book I know of that I haven't read is the God Delusion, and that's mostly because I swear my wife bought a copy and I can't find it. Is it worth re buying to read it? Any suggestions for other reading?

I definitely suggest "The Demon-Haunted World: Science as a Candle in the Dark" by Carl Sagan to anyone interested in such reading. It hits most of the high points without being a prick or back peddling.

Be a bit #announcement fstdt.com blog

Going to be rather quiet for a bit as the work I have to do is largely grunt work on things I've already mentioned. Might do some bitching about things that annoy me or sing the praises of D&D's 5th edition to fill space, but site wise not a lot for a while. Beyond just having grunt work to do, I also have a major project at work that uses a lot of the same technology, so I'm more focused on what gets me paid than what makes managing this place easier. However, knowing what the hell I'm doing ought to make sure what comes out of the site re-working is considerably better than it otherwise would have been.

Community Expectations #announcement fstdt.com blog

I've been watching some internet stupidity again and it reminds me I wanted to use this place as a bit of a reminder that I do try to hold the locals to some kind of standard.

I don't have a lot of rules. Two really. Don't spam the comments, don't harass those who are quoted. That's not terribly difficult in my estimation, even if it may be somewhat difficult not to charge off and bitch at Ray Comfort or someone from time to time. Lately I've watched the kind of crap that unsourced accusations can generate and it's kept me more diligent than usual in checking quote sources. If someone really said something that dumb, terrifying or amusing we can take some time to point and laugh here, but I ask that is where we leave it when dealing with individuals. We've had some problems with that in the past, and I still work to deal with a few of those problems on a regular basis.

Now, actual activism where people do real work to change the things that lead to the comments we get here, that's a different bird. I would be happy to help advertise or coordinate such things with whatever bit of focus I may have here. That's a legitimate goal with productive means. If you're into that let me know and I'll do what I can to help.

As for my progress on the site, going better than I expected. Writing up the analysis of the indexes gave me a few useful ideas for how to handle the quotes and filters, as it sits we're looking at something about three times faster than the current site for quote access and I should be able to allow for the filters to be used on the specialized pages. Meaning you could pull the fundie top 100 of 2014 if you wanted, or the top 100 of everything regardless of tags all time. Ought to be nice.

Filters and Archive Binge Enabling #announcement fstdt.com blog

My focus the last few weeks has been cleaning up exactly how the quotes will be handled in the archives and how to best relay that information to the user. Typically my work is designed for people who I don't have the slightest clue what they'll want day to day, but here it's a tad different. Far as I see it we have three user groups, those who are just keeping up with quotes, those in wholesale archive binges working through the archives and those that use the specialized pages to check quotes at more or less random. Which leaves me with very different requirements than the free form style I'm used to.

What I'm thinking is rather simple, a filter set with three selections Tag, Year and Month. Technically Year and month would function as a single selection, defining months like the current archive structure does to limit server overhead. However, knowing the current filter selections would make it very simple for me to allow for jumping from one month to the next while making it perfectly clear what has been done. I've already discussed the tag selection, but if you only wanted to see one particular variety of quote as defined by the tags you could select it along with the month and year and cruise right along.

My other options for the filter selections are either far more complicated or less user friendly. I will be looking into multiple tag selection in terms of performance(I have something that works in theory, practice is a different beast) in the future. The less friendly part would be allowing for user defined date ranges, if for some reason you had a desire to select random days, weeks, months or hours out of the archives of FSTDT, I could totally make that happen. But I wouldn't be able to do any of the nicer "Here's your next set of archives" functionality as the selections allowed would be arbitrary. Call me on it if you think I'm wrong.

But, all said, when you first reach a page from the site index it will have no date selected, so it will show a page with the most recent records for the given tags(or no tags at all) and the dates will only be assigned on the second page you navigate to. So, no more blank of the month. I just need to figure out how to keep from repeating quotes on the second page during the month cross over.

So I'm rather happy with that and will be pounding on the functionality this weekend. But I've had one other thought, would people be interested in a "You where here" link that takes them back to the same place they were viewing in the archives, setting either something at the account level that lets you jump back to place, or generate a copyable link to do the same?

Comments! #announcement fstdt.com blog

Alright, looking at comment restructuring, bbcodes, ancient comment cleaning and new commenting interface/features this week.

In terms of data structure, I'm not changing a whole lot beyond what I discussed with indexes. I'm setting up a defined row number that will tell me which page the comments belong on regardless of page length, which I eventually make a user setting.

BBCodes, those things that let you muck about with the text, the current implementation is actually the only thing I kept from the original FSTDT code I was handed. It has a few... issues. So I've tracked down a configurable BBCode implementation that I can setup as needed. Which should let me keep all the current codes without any issue. I'll also be putting up an actual listing of how it works on the new site so people can have a real clue what's going on. With some luck it'll even let us link to anchors in URL brackets, but I haven't tested that yet.

Ancient comments, one of ye old issues. Well before I even came to this site a number of comments were ported either from static files or a completely different database structure. They use HTML Markup and otherwise ineffective encoding standards that I need to get cleaned up. Well, I have a test database I can fuck up at will right now so I'm taking a few shots at cleaning them. If anyone is interested in helping a few examples of things that annoy you should let me make sure I put something comprehensive together. If I screw up it's just two hours of downloading the comments again rather than screams and damnation as I cause comments to implode.

Lastly, and the part people are likely to actually care about, the new commenting features I want some feedback on what people would want. The absolute basic right now is changing out the comment creation procedure so that the panel used is created on command and does not cause a page submit(thus causing comment duplication when someone refreshes the page).

Since everything is being built from scratch I can add in some of the features that have been discussed in the past. Either adding in Quote tags with the BBCode setup, or giving the @CommentNumber notation actual link functionality. Quote tags are pretty standard on forums, but they don't have that traditional feeling @CommentNumber has picked up over the years. So, toss a vote in the comments for

or @CommentNumber and I'll see which I should focus on getting implemented.

Balls balls balls #announcement fstdt.com blog

And damnit, got to remember the joys of SQL Server versions. Started poking at full text indexes, what should be the solution to the issues with search taking ages, only to get the reminder from the system that the version I have for testing doesn't support them. Which also means I have to make sure the new host I'm looking at does support them.

So suck is abundant today. Poking at the core Tag based archive queries instead, but while I do that have some references on just what full text indexing can do.

My favorite part:
Comparing LIKE to Full-Text Search

In contrast to full-text search, the LIKE Transact-SQL predicate works on character patterns only. Also, you cannot use the LIKE predicate to query formatted binary data. Furthermore, a LIKE query against a large amount of unstructured text data is much slower than an equivalent full-text query against the same data. A LIKE query against millions of rows of text data can take minutes to return; whereas a full-text query can take only seconds or less against the same data, depending on the number of rows that are returned.

As you might guess I'm using LIKE now, and it's entirely why things take so long to search. But it's also the way to do text matches that's always available and doesn't take up any space. With me not even having enough space on this server to do regular maintenance without SQL acrobatics being involved.

Anyway, working on Tagging instead. Going with the simple 'One Tag Archive' approach instead of something I can fuck with for months. Once I'm done with that it'll be time to start working on some of the outward facing pages, so we'll see how that goes and revisit full text indexing later.

Indexes #announcement fstdt.com blog

Covered most of what I was doing last time, and 100% of the vote wanted to know more so here goes:

SQL Indexes, they're specifically ordered subsets of the data otherwise contained within the tables. You have a Numeric ID on a table 1-100, you most likely have an index that has nothing but that ID in it to reference that ID as fast as possible. In fact most IDs will have something like that because it makes the random crap developers need to do pretty quick, along with any simple functionality. These indexed columns are the columns your index runs on, when you're looking to make a decision based on certain fields having them indexed means you consult the index and check it in a pre-determined manner rather than checking every piece of data to see if it fits the criteria. The index does a fair bit of the work for you that way, it tells you which record you're looking for as fast as possible if setup correctly.

But that's not all you can do with them, like the old library catalogs you may be too young to remember, there can also be other information stored as an index entry. Summary, publisher, and a whole bunch of other information would be available when you found the index card in the catalog. SQL Indexes can do the same thing. See, in all but the most basic queries just finding the item you're looking for isn't enough, you also need to find information related to that item. Which means you can include columns which are not themselves indexed, but are immediately available from the index when an item is located.

That is what explains the difference in both sizes and effectiveness of the two indexes I was bandying about last post. The small index only contains the columns which are indexed, once the record is found the database engine then has to go consult the table and pull the remaining details. The large index contains ALL of the relevant columns, which happens to be all of the large columns in the comments table, and returns them immediately. As mentioned before, the immediate trade offs are size of the index and speed at which the intended query runs. The large index doubles the size of the table as it contains all the same information, but it runs twice as fast as the smaller index that is a very small fraction of the table size.

However there is one other concern that'll crop up real quick, maintaining the index on a live server. Like a library catalog, when entries are added or modified the index needs to be updated within the space allowed or you need to rebuild everything, including all columns stored within the index if they're part of the specifically indexed columns or not. Using the large index as an example this would mean that every time a comment is added space for the comment, author and various IDs would have to be allocated, plus any time a comment is modified an existing entry would have to be modified, possibly forcing it out of the current order and causing extra over head in pulling the index together. At that point you could rebuild or reorganize the index to effectiveness by rebuilding the index, but the data would be either unavailable or available at a severely reduced rate for the duration.

As it sits, I'm going with the smaller index because it'll hold together for far longer and can be rebuilt in seconds rather than around five minutes and it's still considerably faster than the existing query. Providing a consistent speed is often as important as anything else with databases, and it would do far better in that regard.

In theory I have time to poke at some of the other core code for the site this weekend, we'll see how that works out. If it works out I may be digging up a temp domain to try out a new host and beat the new code around before all that much longer.

The joy of RowNumber #announcement fstdt.com blog

Poking at the database and having a bit of fun if I'm honest. Over the years I've refined the paging code pretty well, but it still involved more work than it absolutely needed too. To make a page it had to go in, figure out how many Comments there were, what order they belonged in, which page of them we wanted and then pull the data out for the page. Still, plenty fast enough and anything more in depth would require a considerable bit of house cleaning to keep it up, because I'd have to make a note of which page the quote belonged on and keep that notation updated or we'd wind up with odd numbers of comments on pages and bad quote counts.

I figured I'd test and make sure it's worth doing, turns out having the page numbers pre-generated is about five times faster. Even when I'm actually saying I want Quote X's Comments 1-20 rather than specifying a page. So by taking the time to rebuild the site so that it generates and updates these numbers not only should it run faster, I should be able to let people select how many comments they pull per page with relatively little system impact. Within reason.

Now I just need to decide if it's worth blowing an extra half a gig of space to have the absurdly fast index on the table that contains all the relevant data for quote comment pages, or if I do the one that is just really fast and is about 3 megs. But the little one would stand up to user comment modifications better and the index generates in about 5 seconds rather than the two minutes it takes to generate the larger one. Either way, they're both faster and easier to understand than what's running now. They just take more work ahead of time.

Specific details for this, on the current site I'm using RowNumber to generate the row numbers that are used to create pages now. What I intened on doing instead is actually tracking the row number as part of the comment, and for history's sake I'll be using RowNumber(Partion By QuoteID OrderBy ID) which generates exactly what I need, a number of 1-total comment count on a per quote basis and storing those details while all new ones would be generated along with the comment after release. Then when it comes to actually pulling the page all I need to do is say which Quote and what range of Row Numbers I want for a page, which with the right index means it works fast as hell. If anyone's interested I'll go into more detail on the indexes later.

Next page