Monday, March 26, 2007
How did woot get to be so popular while upsetting so many people when they can't buy something? Ok, so I'm mostly speaking out of frustration, but there are some real issues going on.
For example, during the Woot-off last week there were plenty of times I couldn't get it to load. At one point, I saw a BOC (woot fans know what that is), clicked "I want one", then it went back to the previous item saying "Sold out". 30 seconds later the BOC was again on the site, I clicked "I want one", got it added, but the payment timed out. By the time it would actually accept my payment, they were gone.
I'm starting to get frustrated with woot. If they can't handle the load, they shouldn't have become so popular. Their website seems to fit in the bag... random (will it load or not) and...
Thursday, March 22, 2007
It all went along fine, until it got to about 10M records. At that point, our site started slowing and slowing, and what I found was the keys weren't able to be used for our standard query. It wasn't that big of a deal with 100k or even 200k records, but when I got up to 10M (it's over 30M now), that caused problems.
I did an alter table and made our index include one more field, and it now sorts everything the way I wanted by default. It wasn't actually the select statement causing the problem, it was the ORDER BY portion. It was having to use a filesort, which for a huge table doesn't work real quickly.
What other symptoms was this causing? For one, I was seeing the time spent waiting for IO growing. When looking at the output from top in Linux, that's the %wa column. All 4 were showing 80%+ for long periods on our boxes, so I knew something was hammering the drives.
I've also tweaked a few other configuration variables, such as sort_buffer, key_buffer, myisam_sort_buffer_size and record_buffer. The end result is that I can query that table at least as quick as when it was a fraction of the records. Yet again, the mysql book I bought a while ago comes in handy.
Wednesday, March 21, 2007
On the other hand, MSNbot (some may say it's a-LiveBot) has the same core concept, but it seems to have missed one important piece. While it still runs around and finds pages, it's got a much tougher time holding on to them. This has led to numerous indexing problems. Hopefully they can get their bot's issues repaired soon, but I'm not holding my breath on that one. They're just too corporate for pincers (defined as "Noun : roach clip, roach holder - metal tweezers used by marijuana smokers to hold a roach").
If you ever find yourself face to face with a bot, remember to let it take whatever content it likes. You can always sue it later to force your intellectual property from its greedy indexers.
Monday, March 19, 2007
What is that you ask? Well, each piece of spam is given a score by the SpamAssassin judging bots. We just watch those scores, looking for the top marks from the algo. Initially, we were looking at 30 somethings as being good, but it quickly moved into the 40 range, and we had a few break 60 over the weekend.
Not exactly the most productive game, but at least it makes the SPAM worth double checking for false positives. I wonder how many other offices partake in the "Spam Olympics"...
Friday, March 16, 2007
Secondly, I had forgotten all of my books at work. That left me feeling a little "disoriented". It's amazing what not having your usual reference materials does.
Third, the PC I was using was having some issues. The mouse batteries died halfway though, so I was using a lot of alt+tab, ctrl+tab, and for a new search, I found it simplest just to open a new tab in FireFox.
Add in telephone calls, a couple of IM interruptions, and children - well, it just wasn't a good night for a test.
Oh, and I didn't get much sleep last night after playing tennis late and then having to get up early for meetings most of the day.
I must be ready for a vacation... now that I feel like my brain cells have blown away like seeds of a dandelion.
Thursday, March 15, 2007
Tuesday, March 13, 2007
Ok... Google is having a sales team for analytics? They're going to sell something that's free... how clever. I guess they really do want to index the world's information... one site's stats at a time.
Positions are available in Mountain View, CA and New York, NY for the following:
(I know... I took the easy way out and just did a copy-paste of the text - and thanks to Andrea for making me read it in the first place.).
Monday, March 12, 2007
How I wish I had hosted this thing on my own... but I'd rather not put out the cash when David had plenty of bandwidth available. It just seems silly to spend money when he already had something available.
Sunday, March 11, 2007
We also have our Ask an SEO question page up and running. Any questions - leave them there.
Friday, March 09, 2007
These tool companies, I tell ya.
Thursday, March 08, 2007
Well, some time ago we bought a tone generator and probe. We bought it elsewhere at the time because we didn't carry them at all. But we now have several models to choose from.
The one we bought was the Greenlee Classic Tone and Probe Kit. On the one end, it allows you to plug in to either a jack or use a coupler to attach to a cable. The other device goes to the other end so you can figure out which wire you've plugged in to.
I luckily don't have to do all that much with wiring, but there have been enough times, even at home, where I can't figure out what the wire is that I'm trying to use that I consider this an essential tool. Without it, one could easily spend hours trying to find that one elusive cable - and I've done that. How many hours wasted does it take to cover the cost of this simple device? For someone in the IT industry, not many.
If you don't have one of these in your tool kit already, I strongly suggest adding one. Spending a few hours tracing cables isn't all that productive and is time that could be spent doing something much better, like watching TV or forwarding email jokes.
Wednesday, March 07, 2007
- Advanced SEO Podcasts. There are good, available on webmasterradio.fm, but very intimidating for newbies.
- Beginner Bad Advice Podcasts. Yeah, we found some beginner podcasts, but the advice was awful - ranging from "Create doorways" to "stuff your meta tags with keywords".
Yes, Dad - this would even apply to you.
Tuesday, March 06, 2007
I'm speaking here about the 204 status code.
Quoting the W3
204 No Content
The server has fulfilled the request but does not need to return an entity-body, and might want to return updated metainformation. The response MAY include new or updated metainformation in the form of entity-headers, which if present SHOULD be associated with the requested variant.
If the client is a user agent, it SHOULD NOT change its document view from that which caused the request to be sent. This response is primarily intended to allow input for actions to take place without causing a change to the user agent's active document view, although any new or updated metainformation SHOULD be applied to the document currently in the user agent's active view.
The 204 response MUST NOT include a message-body, and thus is always terminated by the first empty line after the header fields.
For doing simple updates, a 204 works beautifully. Pass some parameters, save some values, but leave the user right where they are. This is great for online forms where you want to save values as they get typed / changed but don't need to return anything back to the user.
One quick warning, though. PHP is notorious for not presenting proper 204's, so if you code in PHP, you'll want to hand code the entire response.
Now that you understand what it is, why would it get used?
Let's say for a minute, that you have a form that has 30 - 40 checkboxes (like for a permissions based admin section of a site) and want to turn them on and off. You don't really need to give any feedback that the permission has been added / removed, you just need to save the value.
Or let's say you've got a whole list of options set up via radio buttons and want to enable people to answer a survey and come back later to finish. As each option gets changed, a quick request with a 204 return code could save the answer, then the response is saved for when they come back.
I haven't seen too many places utilize this type of a system, but we use it quite a bit. The real benefits are less overload on the client side, but also once the request is made, you don't have to wait for a response before the next request is made. Ajax can be slow processing a bunch of requests at times (they normally run sequentially, not in parallel), but by not using Ajax and calling a script that returns a 204, they can all be running at once if needed.
There are other status codes that don't get used too often. The full list can be found here.
Monday, March 05, 2007
After a couple of "What happened" type moments in the past, we've finally decided to set up a versioning system. At this point, we're trying to set up subversion because Nick has seen good things about it. CVS seems a little out of date, and SVN seems to find strengths in CVS's weaknesses.
Yet another adventure in a growing company begins today...
Friday, March 02, 2007
For years now, we've done real-time lookups whenever someone adds a product to their cart and enters a zip code. This allows us to not worry about rate changes and focus on the products.
But what it's also meant is we're leaving money on the table. A quick test over the past few days has shown that nearly 10% of the time, UPS's servers aren't returning data. That doesn't seem good to me.
There are days where our customer service reps complain about shipping rates taking a long time to load. Those are the times I knew about. But the 10% figure is even without taking the "Nothing returned" into account - this is just "Something useless returned".
So, as a fix, I've queried enough to get all the rates now, and I'm rewriting our shipping calculations to run entirely without querying their servers. We'll just keep it all local.
Thursday, March 01, 2007
I guess that means I'll be working from home for a while today. Not a big deal... I just need to set up a few tunnels and I can access our dev box pretty easily. Then, it'll be almost like I'm at work - without all the phonecalls and other distractions.
So now I've got to say some thanks to Robert Garcia (Rumblepup). He's not really doing design work any more, but rather high end e-commerce consulting. I think he really just got tired of looking at the drab gray blog that I had and made a decent creative... all 2.0ish... just for me.