Yesterday’s Downtime

I apologize to all those who came to visit my site for the last 12-14 hours due to some problems with my website. I had received a email this afternoon and I quote:

Hello,

I am writing you to let you know that i have had to disable your sites on the (krunk4ever) FTP account because you have gone over your cpu usage limit of 60cp… you are currently at

105.76cp

I have turned your sites off using a htaccess file, so you can go to your account and look over your sites to see what plug-ins or code may be casuing this load. Here is some insructions that will help you find out what is casuing this load and how to strop it, let us know when you are ready to take care of this and we will remove the .htaccess file

Thanks!
______

So having no clue what the cause is, I went to check my logs. Do notice they said they’ll provide me with instructions to help me find what is causing the high cpu usage, but it’s not anywhere in that email. Some other information that would’ve been helpful would also be time of high cpu usage, which ip(s), which process, and which page(s). I was pretty much left in the dark at this point. I could still SSH into my account and I found the .htacess file they mentioned, but disabling that didn’t seem to get my site back up.

I sent a total of 5 support requests, with my last 2 being somewhat angry and annoyed at their support and as my last email states:

You’d think that when you take someone’s site down, it’s pretty urgent to help them resolve their issues. This being my 5th support request to you and almost 12 hours since my first support request.

I get a email this afternoon detailing that my site has been shut down because of some high cpu usage (some #s were thrown at me). I was told to contact you to help resolve the issue immediately. Well, it would’ve been nice if you could’ve given me some more details, i.e.

which process?
which page?
ip of user?
time of incident?

The email mentioned that instructions on how to find the issue would be included, but that was no where to be found in the email.

I mean, I’ve been a customer for almost 1.5 years and the rest of this years service has already been paid for. I’ve recommended people on forums such as Anandtech, SlickDeals, and FatWallet to try Dreamhost, despite people saying how you’re overselling bandwidth and space because to be honest, up until today I was an extrememly satisfied customer.

I’ve sent 3 high priority emails today. Submitted a OMG! EXTREME CRITICAL EMERGENCY! request, but still no response 12 hours later. Sigh…

I mean I just can’t believe how long this is taking. I truly hope the issues you took care of before mine were just as or more urgent than mine.

Sincerely,
A pretty disatisfied customer,
______

So I finally get a email back 13 hours later stating:

First off, I have removed the .htaccess file that ______ created, and your sites are back online. The file was /home/krunk4ever/.htaccess

Now, the initial reason for disablement was not because of a single incident, but rather an accumulation of cpu usage over the last couple weeks. We have monitoring that records how much cpu time was used by all processes and keeps a running total for each user, measured in cpu minutes.

The number that ______ quoted was the total number of cpu minutes used by your user over the last day, which was just over 100. We generally like to see shared customers staying at or below 60 per day.

As for ways to lower your cpu usage.. The best way to lower it by many times is to not dynamically generate every page, as wordpress certainly, and gallery likely, do by default. WordPress has a cache plugin which will generate static pages that are served most of the time, and those pages are invalidated and regenerated when they need to be. You should look to install this plugin. I am uncertain if Gallery has a similar plugin, but it might, and that would also be worth looking into.

Let me know if you have further questions.

Thanks!
______

A much more informational email and if I had received this 11 hours earlier, I might’ve been happy, but their response time was just too long for such a matter. I sent a email back asking why I wasn’t notified of this earlier, because you’d think shutting down a customer’s website was the last thing you’d do. They’ve known this for several weeks and without a word of warning to me, my site got shut down. I sent this as my final follow up email:

Thanks ______. If I knew it was something I could’ve done, I wouldn’t have been so annoyed. Turns out they also chmodded my directory to prevent read from all. I had to chmod it back to 755 from 751 before my site stopped throwing the 403 Access Denied error.

I’ve downloaded and enabled wordpress caching as you suggested. I also turned on full acceleration on Gallery which is defined as:
Full acceleration gives roughly a 90% performance increase, but no dynamic data (random image block, other sidebar blocks, number of items in your shopping cart, view counts, etc) will get updated until the saved page expires.

and the time to expire is currently set to 1 day as recommended by that page.

Is there any way I can see what cpu usage I’m using over the next few days? Is there any way I can enable to receive alerts for these type of situations which I’d like to avoid in the future.

If there’s no automatic way, I’d appreciate if you could keep an eye out for my account of the next week and let me know what’s up and if I need to increase my cache time or something. I would want to avoid the mess that we got into today at all costs.

Thank you.

Sincerely,
______

I went ahead and installed WP-Cache 2.0 and enabled it (do remember to disable gzip under Options -> Reading). However, I was getting a weird problem where every uncached page would turn up blank, but the 2nd load onwards would work fine. The blank pages were starting to annoy me and I disabled it almost immediately and said screw it, if DH cuts me off, I’ll go find another host. Dereks’ been trying to get me to switch over to his hosting anyway. However, I decided to search around and see if there was a fix. On the same page in the comment section, there were a bunch of people with similar problems. Turns out this was an issue only apparent in PHP5; WP-Cache 2.0 works fine in PHP4. Reading further I saw this comment:

To fix the blank page issue modify wp_cache_ob_end() in wp-cache-phase2.php to use ob_end_flush() instead of ob_end_clean().
Works for a setup using PHP 5.1.2, MySQL 5.0.18, WP 2.01 and WP-Cache 2.0.17.

– Jussi Vaihia

Apparently that fixed it. In wp-content/plugins/wp-cache on line 219, comment out //ob_end_clean() and replace it with ob_end_flush().

In Gallery, I also enabled Full/High Acceleration: Full acceleration gives roughly a 90% performance increase, but no dynamic data (random image block, other sidebar blocks, number of items in your shopping cart, view counts, etc) will get updated until the saved page expires.

Hopefully this’ll fix the cpu over usage problem.

Pandora

Pandora created by the Music Genome Project.

Let’s see. What can I say about this. It’s a pretty neat project that lets you stream music throw a web browser (Flash) and doesn’t require any additional downloads. How does Pandora differ from the other programs like online radio or shoutcasts or even Rhapsody radio? Well, first of all, the customization is pretty neat. You input your favorite artist / songs and can customize as many stations as you want. Feel lke POP, select your POP station. Feel like Green Day, select your Green Day station. Feel like Emo, select your Emo station.

As the songs get played, you have the option to skip, but I think they limit you to skip 15 songs per hour (the only downside I see). This doesn’t mean the audio stops playing, just you can’t skip songs. You can still change stations. Also, when a song plays, you can rate it as something you like or something you don’t like and this directly affects what type of music gets played for you. It’s pretty smart. I haven’t finish customizing my station yet. I just started playing with it last night at work.

Apparently it works on the Squeezebox too!

Here’s some screenshots:
pandorapandorapandorapandorapandora

GigeShare

Some anime episodes are currently being shared through a new bandwidth provider: GigeShare. It actually looks interesting. Similar to MegaUpload and RapidShare, but without as many constraints. GigeShare allows up to 1000MB (~1GB) per file upload, so no more splitting up the files. Files are deleted after 30 continuous days of inactivity and there’s no limit to how many downloads like YouSendIt. They still have that wait time like MegaUpload and RapidShare, but unlike those, they allow simultaneous downloads. I’ve only tested (not downloaded) 5 files at a time, though maybe they should limit 1 simultaneous download per person. Which leads to the only caveat the have, speed. Each download only gets ~20-30KB/s. Even if you have one, you’ll get that speed. If you have 5, you’ll get a combined speed of ~100-150KB/s.

Hopefully this service will stick around for awhile. The interface is decent and definitely doesn’t suck *** like MegaUpload and definitely provides more space than RapidShare. Oh yah, if you block Google Ads, the site is pretty blank. I was wondering what was wrong with the site, until I opened it with IE.


Random Crap:

TINY MUSIC MAKERS: Pt 3: The THX Sound (from /.) – “I like to say that the THX sound is the most widely-recognized piece of computer-generated music in the world,” says Andy Moorer. “This may or may not be true, but it sounds cool!” – an interesting history of Deep Note, the THX sound.

Pimp My Snack (from MS newsgroup) – PimpMySnack is a custom, banging, A1 Tip Top, jamming club fare. It’s a sandwich of fun on ecstacy bread wrapped up in a big bag like disco fudge. It doesn’t get any better than this. We take Snacks to their limit, and show what they’re capable of with a little ingenuity, a little cash, and a lot of imagination. Basically they take little candies and make giant candies! I wonder if they need a taster.

parking solution
Parking Solution (from MS Newsgroup)

From Snopes.com: The photographs displayed above are real, and compact, multi-story parking structures can indeed be found in some Germany cities (such as Dresden), but in this case the two don’t go together. The structure pictured here is not a public parking garage, but rather a storage facility for newly-manufactured automobiles. It’s an inside view of one of the 20-story Car Towers at Volkswagen’s Autostadt facility in Wolfsburg, Germany, which is sort of a cross between a Volkswagen showcase and theme park. Visitors can take in the shops, restaurants, and cinemas, as well as enjoying automobile-themed attractions such as the virtual CarDesign Studio and the All-Terrain Course. You can see the actual car tower at the Virtual Tour of VW’s Transparent Factory

Funny MS KB (Microsoft Knowledge Base) articles:

A Tour of Microsoft’s Mac Lab (from /.) – Many people have asked if Microsoft uses Macs at work. This blog entry should be an interesting read for thos.

Firefox Flicks (from MS newsgroup) – looks like the videos are finally starting to come in!

Google: Da Vinci Code (from MS newsgroup) – The Da Vinci Code involves a thrilling murder investigation that unearths a secret that could change the course of history. The film opens May 19th worldwide. The quest, which began April 17th requires skill, intellect, and perseverance. Over a span of 24 days ending May 11th, you will encounter unique challenges. These daily puzzles will pull you deeper into the world of The Da Vinci Code. Answer all 24 puzzles correctly for a chance to win untold riches. Only the worthy will prevail. Looks like an interesting game. Haven’t really given it a shot yet.

Worker Locks Would-Be Robber Inside BankA gunman who tried to rob a San Gabriel Valley bank Wednesday morning found himself locked alone inside the building by a quick-thinking employee, police said. … The robber asked if she could open the vault but she said it required a second worker who would be arriving in five or 10 minutes, Taylor said. … While waiting for the second employee to show up, the robber told her “to go outside and to look around and to act as though everything was normal,” Taylor said. Sigh… another idiot robber.

Teen Inmate Gets More Time for Pot RequestA judge changed a sentence from six months in prison to eight years after a teenager convicted in a drive-by shooting wrote a letter asking a friend to take over his marijuana dealings.

Drivers run dry to beat gas pricesSome California drivers are resorting to desperate measures to beat the surge in gas prices at the pump — deliberately running dry on the state’s freeways and simply waiting for rescue. … Lujan’s 20 trucks roam the busy freeways of Orange and Los Angeles counties as part of a publicly funded patrol that gives a free gallon of gas to drivers who have run out of fuel. It also offers other basic assistance to drivers whose vehicles have broken down. It seems like they only give them 1 gallon of fuel. Personally I see that as being stupid to both the city and the driver. How much time do you idle around just to get $3 worth of gasoline? The city then also has to pay for this service through tax payers money and the next time around, tax hike, so you lose out that way. If you’re trying to make a statement, instead of running dry, buy cars that get higher mileage, or even hybrids or electric cars. And of course, there’s always public transportation. This sounds much like the people telling others to boycott specific gas stations. The gas stations won’t lose out.

Gun X Sword – Turtle Race – hilarious clip I ripped from Gun X Sword Episode 15 to show to Decathanerd. Then I thought I might as well share it with you guys. Maybe now you’ll see where my AIM buddy icon comes from.

Online Etymology Dictionary – before I’ve always used Oxford English Dictionary to get my etymologies. Apparently this site is pretty good too! and of course FREE!

azumanga fantasy x-2
Azumanga Daioh – Final Fantasy X-2 parody (from 4chan)

Size matters in macho Mexico’s electionAmong the crowing, slurs and insults being flung around in Mexico’s election race, campaign ads in this country are even competing over which candidate has the greatest manhood.

Fake paper detector (from /.) – You may remember the story of some cheeky MIT students who wrote a computer programme to generate scientific papers. Well, now some researchers at the Indiana University School of Informatics have come up with an Inauthentic Paper Detector to foil it. I’ve been meaning to give the IPD – Inauthentic Paper Detector a try, but it seems to be down at the moment. It’ll be interesting to see what happens I submit my blog entries to it or my college papers. I wonder if it can detect bullshit… *whistles*

Man kills mother, grills part of bodyA Japanese man has confessed to killing his mother, dismembering her body, and grilling part of it on an electric hot plate after she nagged him about getting a job, media reports said.

China bans tomb-sweepers’ “vulgar” burned offeringsChina has banned its citizens from burning paper models of condoms, luxury villas and karaoke hostesses when paying respect at the graves of their ancestors. Many Chinese burn paper money as a sacrificial rite to honor deceased relatives, but economic development has brought more unusual tokens of gifts for the after-life. … Over the last two years officials have discovered people burning paper offerings of the potency drug Viagra, extra-marital mistresses and even “Supergirls” — dolls modeled on winning contestants of Chinese television’s hugely popular American Idol spin-off, Mongolian Cow Sour Milk Supergirl.

Police See Paranormal Activity in PubOfficers arrived at the Low Valley Arms pub near Barnsley in South Yorkshire, 250 miles north of London, after being told the alarm had been set off, but instead of finding any signs of a robbery, they were faced with a shaken landlord convinced he had encountered a ghost with half a face missing in the ladies washroom. Though they saw no ghoul_ described as a woman in flowing white gown_ officers were shocked to find toilets flushing themselves, said Inspector John Bowler of South Yorkshire Police.

Gallery and ERROR_MISSING_OBJECT

So I was moving my images around in my Gallery when I noticed that it didn’t throw 404 File Not Found pages whenever I tried an invalid path under /v/, but threw this were ERROR_MISSING_OBJECT message instead:

Error
Error (ERROR_MISSING_OBJECT) :

in modules/core/classes/helpers/GalleryFileSystemEntityHelper_simple.class at line 121 (GalleryCoreApi::error)

in modules/core/classes/GalleryCoreApi.class at line 1940 (GalleryFileSystemEntityHelper_simple::fetchChildIdByPathComponent)

in modules/core/classes/helpers/GalleryFileSystemEntityHelper_simple.class at line 64 (GalleryCoreApi::fetchChildIdByPathComponent)

in modules/core/classes/GalleryCoreApi.class at line 1883 (GalleryFileSystemEntityHelper_simple::fetchItemIdByPath)

in modules/rewrite/classes/RewriteSimpleHelper.class at line 50 (GalleryCoreApi::fetchItemIdByPath)

in ??? at line 0 (RewriteSimpleHelper::loadItemIdFromPath)

in modules/rewrite/classes/RewriteUrlGenerator.class at line 98

in modules/rewrite/classes/parsers/modrewrite/ModRewriteUrlGenerator.class at line 50 (RewriteUrlGenerator::_onLoad)

in init.inc at line 113 (ModRewriteUrlGenerator::init)

in main.php at line 73

Gallery forums weren’t much help as they just told you to go modify the code yourself.

Using the PHP: header – Manual, I modified that code path to actually return to my homepage:
header("Location: /gallery/main.php");

You can make it return a 404 error if you prefer with:
header("HTTP/1.0 404 Not Found");

The place to modify this is in modules/core/classes/helpers/ GalleryFileSystemEntityHelper_simple.class on line 119. Comment out the following 2 lines:
//return array(GalleryCoreApi::error(ERROR_MISSING_OBJECT, __FILE__, __LINE__,
//"Parent $parentId path $pathComponent"), null);

and insert the header of your choice followed by:
exit();

since you don’t want it to continue.

I also noticed if you do the following, it’ll return you to the homepage, though I can’t garuantee that since I’m not exactly sure what it’s really doing:
return array(null, 0);

Private Posts

For some really odd reasons, WordPress likes to mark some of my posts as Private by random. So when I mentioned my post about Derek suggesting me to put inline ads, he couldn’t find out. A search on my computer showed that it was marked as a private post. The private attributes have been removed. Nothing too interesting, but you might want to read the Google post and the Advanta post:

Inline Ads
Nested Lists and Nested Blockquotes
Google (穀歌)
Advanta Platinum BusinessCard
Archive links in Drop-Down Menu (Combo Box)

I noticed most of those wree marked in the Website category. I wonder if that has to do with anything…

RoundCube

So I finally got around to setting up RoundCube Webmail Client. I first heard about it either on /. or Ars Technica. Where I heard about it doesn’t really matter, but I’ve got to say it’s loads better than SquirrelMail and The Horde Project. Do check out the RoundCube screenshots. For some reasons, their images load really slow. You can even try out their demo site.

So instead of killing the original https://webmail.krunk4ever.com, I just created another subdomain at http://mbox.krunk4ever.com. I’ll probably be slowly moving away from my Yahoo account onto this. I know I tried that awhile back, but I liked Yahoo because of the Webmail and interface provided. One thing I disliked was the fact it wouldn’t let me send emails from my domain without paying that premium. I know GMail allows something similar, but I don’t particularily like their folderless interface and there was also the barrier that I had to send a verification email for every new *@krunk4ever.com email I wanted to use. I also didn’t like the idea of Google holding all that information about me.

I know I had tried awhile back to use a *@krunk4ever.com email as my main email address, but as you know, I gave up fairly quickly and then sent a email to everyone (or hopefully everyone) telling them I switched back to my Yahoo! email address. But now, I’m willing to give it another shot. Expect a email shortly from me telling you my address has changed.

Setting it up was rather simple. DreamHost didn’t have the one click install available, but the instructions were rather easy. Of course, after I finish setting up, I find this tutorial: Installing RoundCube on DreamHost. I also found this: HOW TO: Setup RoundCube Webmail on Your Server and Setting up Roundcube on Dreamhost which provided some extra insight.

One thing about DreamHost is that you don’t really get your own mail server. You share it with a bunch of people and your real email box is at m-1234567 on that mail server. *@krunk4ever.com just forwards to it. So to log into your account, the user name is m-1234567 with your email password. The username was obviously hard to remember, so I went searching around, and it turns out you can set aliases. You can either do this during the account setup (if you’re manually creating accounts through mysql), or you can edit your database and add an alias afterwards. If you set a default host, the user can log on and have his account setup first, and then you can add in the alias later, which becomes mighty useful. Too bad they don’t provide an admin interface to do this type of work.

Nested Lists and Nested Blockquotes

I hit some issues with my previous entry where I wanted to have nested lists and nested blockquotes. However, WordPress’ automatic XHTML correction broke it every time.

So I went searching for ways to get around this. Apparently you can disable the automatic XHTML correct by going to Options > Writing > and uncheck the WordPress should correct invalidly nested XHTML automatically option.

After disabling that I was able to manually insert tags where before it wouldn’t let me. So first…

Nested Lists:

Turns out that what I was doing was incorrect and W3 Validator threw an error, even though my lists showed up correctly. I then found this site: XHTML vs HTML: A common mistake in nested lists, is to forget that the inside list must be within a li element.

Incorrect:
<ul>
  <li>level 1</li>
  <ul>
    <li>level 2</li>
    <li>level 2</li>
  </ul>
</ul>

Correct:
<ul>
  <li>level 1
  <ul>
    <li>level 2</li>
    <li>level 2</li>
  </ul></li>
</ul>

The above code would generate this:

  • level 1
    • level 2
    • level 2

Turns out the XHTML auto correction will accept the above correct model.

Nested Blockquotes:

The next thing was the nested blockquotes that kept getting “fixed”. W3 Validator wasn’t throwing any fit with the nested blockquotes. I searched to see if there’s a problem with WordPress and it turns out there is a bug. Not sure if it’ll be fix, but for now, the only way to have nested blockquotes is to disable the auto correction (instructions above).

Code:
<blockquote>level 1
<blockquote>level 2</blockquote>
level 1</blockquote>

Generated Output:

level 1

level 2

level 1