COMC.com Launch Postponed

While developing the many major updates that we have discussed in recent posts, we have decided to make some additional much needed user experience improvements.   Because of the scope of the changes, we felt that it would be best to take another couple weeks to test the site and polish off the changes before launching it to the public.  This will be by far the largest single update we have ever made to the website, so we don’t want rush it or potentially sacrifice any quality.

We will continue to make performance improvements and bug fixes to CheckOutMyCards.com in the meantime.

Sneak Peek @ the National

Those of you attending the National will have an opportunity to get a sneak peek of the new COMC.com.  You can watch demos and test drive the new features.  Please swing by and give us your feedback.

Three Strikes Rule, Site Etiquette, and You

Based on the comments from the previous post, there is a lot of confusion about how our new “Three Strikes” feature works – partially due to what may have been an unclear explanation, as well as a bug that didn’t correctly ignore counteroffers.  Everything is now working correctly, and we’d like to take another stab at explaining how it works.

The 3 strike system is simply a temporary black list of items on which a specific buyer must wait before sending another offer.

Think of it as a friendly reminder for buyers that send a very high amount of offers.  Instead of repeatedly making an offer a seller has already rejected multiple times, we simply limit the number of times a buyer can get an offer rejected.  You get 3 “strikes” for every 90 days for each item.  If the item is sold to another seller, your strike count resets to 0.

Buyers and sellers don’t get strikes.  Only items get strikes, and those strikes are specific to buyer/seller combinations.  Sellers can get offers from hundreds of different buyers on the same item and reject all of them.  When a specific buyer gets 3 offers rejected on the same item in the past 90 days, the buyer must wait before making another offer on that same item.  We have removed all strikes on items predating May 23rd, so everyone will have a “clean slate” going in.

While this feature is more of a tool to help make offers more effective, we still encourage our users to utilize some etiquette when communicating offers.  Some things we would ask user to consider regarding offers include:

  • Think of making an offer as walking into someone’s store or up to their table and asking them to sell you a card at a discount.  How receptive would you be to your own offer?
  • Keep in mind we allow offers up to 50% off asking price.  A “low-ball” offer should be seen as a starting point of negotiation, not as an insult.
  • If you and another user do not reach an agreed upon price for an item, please do not be offended.  Just as in face-to-face negotiations, it happens.

We would also like to thank everyone for so actively contributing to our Blog discussions and Facebook pages.  We’re proud to have one of the friendliest user bases around, who aren’t afraid to speak their minds and tell us how we’re doing.  As the site grows and more users are frequenting these areas, we feel it is our responsibility to set up a few guidelines.

Things we cannot allow:

  • Any kind of personal attacks or “callouts” on other users (regardless of prior posts, personal grievances, etc.)
  • Linking to or promoting unaffiliated websites
  • Profanity, slurs, and inflammatory posts
  • Posting personal information (someone else’s or your own)

Posts not abiding by the guidelines we’ve set will be deleted, and anyone who repeatedly ignores them may find they are unfortunately no longer able to contribute to these pages.

Again, we would like to thank each and every one of you for making this community the amazing place it is.  We at COMC want to be proactive in our responsibilities to help keep it that way

New site improvements

I finally set aside some time to make improvements to the site. Here are some of the things I was able to get done this weekend.

Performance Improvements
Now that we have been getting a lot more data, there have been some noticeable slowdowns on certain parts of the site. Here are some areas where we improved performance this weekend.

  • Home page average render time was about 3 seconds, now the average is 0.03 seconds
    • This 100x performance improvement was achieved by using a technique called Partial-Page Output Caching. We couldn’t use the simple output caching because we display the number of items in your shopping cart, and this always needs to be calculated.
  • Search page render time was commonly 3-10 seconds, now it is almost always less than 1 second

Quantity Manufactured now displayed in the search results
You no longer need to dig into the card details page to see if a card is serial numbered. The quantity manufactured is now tacked on to the end of the description. Also, you can choose to sort the search results by the quantity manufactured.

Sort by Quantity Manufactured

Sort by Quantity Manufactured

More Meaningful Sorting by High Book Value
Cards that are listed in Beckett but do not have a book price are now mixed in with the rest of the cards when sorting by highest book value.

We have been getting more and more cards that have very low serial numbers and do not have a price listed in Beckett. The previous default sort order would put all of these at the top, and this kept burying the legitimately high priced cards further and further down. Now we try to weave in the un-priced cards approximately where they might be if they had a book value.

Great post on the Microsoft Access team blog

Here is a great post on a handy trick I told some buddies at Microsoft.
http://blogs.msdn.com/access/archive/2008/01/14/easy-drill-through-with-macros.aspx

Here is a screen shot of one of the many places we use this technique in the inventory tracking system we use for managing the data behind CheckOutMyCards.com.
Hyperlink Example

As a front-end development tool, Microsoft Access provides an incredible balance of power and rapid development that allows us to move quickly with changing demands. Microsoft SQL Server 2005 is currently our back-end database for both our in house inventory management system and our ASP.net web site.

Preparing for Growth

At CheckOutMyCards.com we have been working hard to strategically prepare for growth.

Better Storage System
We recently invented a new storage system to complement our inventory management system. This new system will allow us to easily grow from 80,000 to 1 Million+ cards in our current facilities. The storage system is fire retardant, theft deterring, earth quake resilient, and massively scalable. All this and we can still access any card in seconds.

Better Servers
We recently installed new servers that have more than 10 times the horse power of our previous server, and we are ready to scale with more servers as traffic increases.

Better Database Performance
We recently improved indexes used to perform searches so that all searches are fast, no matter how you choose to sort them. Nearly every search is now being completed in less than 0.20 seconds.

Better HTML Markup
We recently reduced the markup used on our search pages so that the views that have hover pop-ups (all views other than the details view) render in 1/10th the time they used to.

Better Page Response Time
We recently enabled gzip compression on our server so that the total bits transferred to the browser were reduced by 1/2. This makes the site feel a lot more responsive.

How I recovered Exchange Server 2003

This is probably not very interesting to sports card collectors, but if you recently had a power failure or just got impatient with your Exchange server and did a hard reboot, you might find this useful.

Now that we have our new servers up and running, I needed to move our old server to be next to the new ones. The old server is just used as our mail server running Exchange Server 2003. Well, after giving it a good 10 minutes to shut down, it still hadn’t completely shut down, and I was getting impatient (it was 2:30 AM). So, I just pulled the power cable, and moved the server.

When the server finally came back up Exchange complained with this error in the event log.

Information Store (3812) First Storage Group: Database G:\Program Files\Exchsrver\MDBDATA\priv1.edb: Page 3031 (0x00000bd7) failed verification due to a flush-order dependency mismatch. This page should have flushed before page 7216 (0x00001c30), but the latter page has instead flushed first. Recovery/restore will fail with error -255. If this condition persists then please restore the database from a previous backup. This problem is likely due to faulty hardware “losing” one or more flushes on one or both of these pages sometime in the past. Please contact your hardware vendor for further assistance diagnosing the problem.

I have a default Microsoft Windows Small Business Server 2003 install with the Exchange data files in “G:\Program Files\Exchsrver\MDBDATA\”.

To fix the issue I did the following:

  • Made a backup of the entire “G:\Program Files\Exchsrver\MDBDATA\” directory
  • Found this article about eseutil
  • From “G:\Program Files\Exchsrver\bin” I ran the following command.

    eseutil.exe /r E00 /l”G:\Program Files\Exchsrver\MDBDATA”

  • This complained about priv1.edb being corrupt, so I ran the following commands to repair and defragment the edb files.

    eseutil.exe /p “G:\Program Files\Exchsrver\MDBDATA\priv1.edb”
    eseutil.exe /d “G:\Program Files\Exchsrver\MDBDATA\priv1.edb”
    eseutil.exe /p “G:\Program Files\Exchsrver\MDBDATA\pub1.edb”
    eseutil.exe /d “G:\Program Files\Exchsrver\MDBDATA\pub1.edb”

  • This fixed the corruption, but when tried to restart the “Microsoft Exchange Information Store” service, I got this error in the event log.

    Information Store (3600) First Storage Group: Database recovery failed with error -1216 because it encountered references to a database, ‘G:\Program Files\Exchsrver\MDBDATA\priv1.edb’, which is no longer present. The database was not brought to a Clean Shutdown state before it was removed (or possibly moved or renamed). The database engine will not permit recovery to complete for this instance until the missing database is re-instated. If the database is truly no longer available and no longer required, please contact PSS for further instructions regarding the steps required in order to allow recovery to proceed without this database.

  • This was very confusing because the file actually was present, but it turns out that you need to run a recovery to bring the database back to a clean state. So, I ran the recover command again.

    eseutil.exe /r E00 /l”G:\Program Files\Exchsrver\MDBDATA”

  • This time it complained with the following error.

    Operation terminated with error -1216 (JET_errAttachedDatabaseMismatch, An outstanding database attachment has been detected at the start or end of recovery, but database is missing or does not match attachment info) after 130.0 seconds.

  • This was the result of having to run the repair command without doing a clean shutdown. To resolve that issue I had to run the same recover command with the /i switch to ignore the inconsistencies.
    eseutil.exe /r E00 /l”G:\Program Files\Exchsrver\MDBDATA” /i

  • Finally I had to mount the mailbox and public folder stores by doing the following.
    • Open Server Management (Start -> Server Management)
    • Expand the Advanced Management node
    • Expand the <DomainName> (Exchange) node
    • Expand the Servers node
    • Expand the <ServerName> node
    • Expand the First Storeage Group node
    • Right-click Mailbox Store (<ServerName>) node
    • Click the Mount Store node
    • Right-click Public Folder Store (<ServerName>) node
    • Click the Mount Store node

At this point I was able to connect to Exchange with Outlook and everything appears to be back to normal.

New blog design!

Hi there folks! Andy here.

A few days ago I changed the theme of the main website to match our branding, and now I have altered the blog to follow suit. I used the infamous WordPress theme ‘Contempt’ (thanks Vault9!) as a bedrock and modified the style to my liking.

The new blog layout has yet to run the gamut of different browser versions, so if you see any oddities, I would really appreciate it if you would let me know.

Thanks!

Andy

New color theme has been launched!

Hi Folks!

As you can probably tell, last night I launched a semi-redesign to match our branding.  Only minimal structural/layout changes were made to some of the pages, so you should still have the same experience you are accustomed to – only now with awesome colors!

If you see some oddities that you would like me to have a look at, shoot an email to andybird@checkoutmycards.com. Please mention your browser name and version.

Thanks!

Andy Bird

$20K worth of servers on their way!

With 4% growth per day, it is hard to stay ahead of demand, but hopefully the new servers I just ordered today will keep us going for a while.

What we currently have:

  • An entry level server that is running our mail server, web server, and sql server.

What we are adding:

  • A dedicated web server with a quad core processor and the fastest SAS hard drives.
  • A dedicated SQL Server with two of the fastest quad core processors and 16 GB of RAM.
  • A 15 disk array to allow for maximum hard drive performance and redundancy in case of drive failure.

The servers are scheduled to arrive around August 16th. Hopefully we will have them up and running the week of August 20th.

Picked up by SportsCollectorsDaily.com

Wow, the folks over at SportsCollectorsDaily.com really stay on top of the industry. Within 48 hours of our article in the seattlest.com, they had pinged us and posted a nice summary of the article.

Start-Up Sports Card Site Op Knows Tech Side