Dreamhost’s MySQL servers are slow and oversold

I love Dreamhost. I use Dreamhost for just about anything I put on the mighty internet. Dreamhost has the best control panel of any hosting company, allows me to become a little hosting company of my own by giving my clients discrete shell accounts with access to all of their sites, and gives me unlimited storage (which I’ve tested with a facebook app which I hosted on Dreamhost that created tens of gigabytes of images). I can even build my own php, ruby, python, etc. I have one, and just one beef with Dreamhost, and it’s a pretty big one.

Dreamhost’s shared MySQL servers are SLOOWWWWW!!!1^H

This problem is most apparent with Drupal sites. If Drupal is anything, it’s hard on the database. Drupal makes more queries than a baby-boomer changing email clients. I consider it a flaw of Drupal’s, but sest lah vye. If you install Drupal 7 Core on the Dreamhost Happy Hosting service, the first page load takes 5-10 seconds, and navigating the dashboard is unbearable. The point is, other hosting companies don’t have this problem. Other hosting companies, for whatever reason (mysql servers running on the same machine as the web-server, butt-loads of hardware, better caching configuration), can run Drupal quickly on a basic plan.

I am writing this blog post with a tear trickling down my nose because I really do love Dreamhost. But I need to be honest with myself and admit Dreamhost’s failing. I hope Mr Dreamhost notices this post when he vainly searches the Google for himself and changes his ways. I hope Dreamhost upgrades their MySQL servers!

Update: 2012-01-26

It looks like Mr. Dreamhost was cruising the googles for himself after all. After mentioning this post on the Twitter, Mr. Dreamhost contacted me via the Dreamhost support system and offered me a free (up to 300M) MySQL VPS. I’ve taken him up on the offer, even though it does not solve the underlying problem of poor MySQL performance on the shared servers.

In the process, the Dreamhost tech handling the case discovered that my Happy Hosting mysql server lived in a separate data-centre from my Happy Hosting webserver. Can we say flawed infrastructure?

Either way, I’ve gotten some satisfaction, but it’s in no way a solve.

Update: 2012-01-27

I’ve run some AP benchmarks comparing the Dreamhost Happy Hosting performance (about a $10/mo account) with a basic JustHost account (about $4/mo). The site in question runs Pligg, a fairly database-heavy Digg clone. It’s in no way scientific, but does tell a story. Here are the dumps:

Dreamhost

Percentage of the requests served within a certain time (ms)
  50%   2749
  66%   2972
  75%   3246
  80%   3412
  90%   4650
  95%   5051
  98%   9514
  99%   9514
 100%   9514 (longest request)

Justhost

Percentage of the requests served within a certain time (ms)
  50%   2609
  66%   2961
  75%   3299
  80%   3498
  90%   3560
  95%   3741
  98%   3952
  99%   3952
 100%   3952 (longest request)

Ice Cream Sandwich on Nexus S from Wind Mobile

I just switched back to Wind mobile after six months of Mobilisery. I signed up for the Christmas plan which is still available as of this writing (unlimited everything including north american calling and intl text for $40). The Wind rep told me I could get one of several phones effectively for free (tab) with the new plan so I asked if I could play with a Nexus S while I waited for them to complete the paperwork.

To my surprise, she handed me a Nexus S I9020T with Super AMOLED Plus display, and it was running Android 4.0, Ice Cream Sandwich (ICS)! I had been drooling over a Galaxy Nexus which I had visited several times in a Virgin Mobile store downstairs from my building to play with Android Ice Cream Sandwich, so after seeing it running well on the free Nexus S, I couldn’t resist.

There was one catch, though. I had to manually update the phone to ICS, because Google had suspended the OTA update of ICS to Nexus S after receiving quality complaints from users. Luckily this was a very easy process, and doesn’t require rooting your phone as the official update is still available thanks to the mighty internets. (more…)

Use Google Calendars on your website

I tend to recommend a lot of google products. One that I recommend very often is the use of Google Calendars as a calendar of events on your website. Using Google Calendars saves you having to install and configure clunky event management plugins, and fits easily onto a page on your website using a little bit of embedding code. You can even have more than one calendar display at a time and choose which ones you want displayed from a little drop-down menu. I will briefly describe how this is done and include links to the Google documentation for each step. They do a much better job of explaining than I would.

The first thing you’re going to need is a Google-ID. If you have a gmail address, you already have one. If not, go and get one. This is your single sign-on to all of Google’s services. If you are setting something up for an organization, you probably want to get a Google-ID specifically for that organization so that you can share it with others. Here are instructions on how to sign up for your Google-ID.

Now that you have your new Google-ID go log into Google Calendars. The first thing you’ll have to do is create a new calendar. This will be the calendar that you embed on your website, so give it a meaningful name like “My Organization’s Events”. Make sure you set the visibility of the calendar to public. If you skip this step, nobody else will be able to see it. Finally you are ready to embed the calendar into your website by pasting the embed code into (for example) a page in WordPress.

If  you need to you can create more than one calendar and include them all in one calendar view. Just check off each of the calendars you want included in the list on the Google Calendars embedding page. If you find there are too many events in your combined calendars for the Month view, try changing to the Week or Agenda views. They are better able to display more entries in each day.

I’ve completed all of these steps in order to embed a calendar into this post that displays three Google Calendars. If you click on the little down arrow in the top right corner, you can choose which of the three calendars you’d like to see. (more…)

I can has Google Music Canada, and so can you!

Google music is just about the yummiest thing since sliced meat, but it’s only available in the US until Google manages to navigate the canadian music-communism regulatory labyrinth. That means it won’t be available in canada until the 12th of never.

But that’s ok! It’s pretty easy to set yourself up with a google music account, and once you have it, it will work from anywhere. You can upload your 20,000 songs to the great big Google in the sky, and listen to them on the bus, in the park, or even in your home! All you need is to install one of those proxy thingymajigs when you sign up for the account.

I used Stealthy: a little browser extension available for Chrome and Firefox. Others have used Tor. Heck, if you’ve got a webserver that lives in the US, you could even do it the old fashioned way and setup a SSH proxy server. The point is you need to sign up for the account from a US IP address, and all of these methods will do that.

Once you’ve got your account, you should be able to access Google Music from your standard canadian IP address, and start uploading your songs!

If you have a google phone, you’re gonna need the new Google Music enabled android music app. You’ve probably noticed that you’re not allowed to download it from the android market unless your phone lives in the US. Well, have no fear. The internet pirates have once again come to your rescue.

You can download the latest version of the android music app apk here. If you download it using your phone, you’ll be able to install it by touching it in your downloads list. You’ll be asked to replace the existing (kinda old and crappy) music app. For heaven’s sake say yes, and begin enjoying your music wherever you want to from the great big Google in the sky.

Cheers!

Death to the Canadian Multilingual (Bilingual) Keyboard

If you’re planning on buying a new laptop or netbook in Canada there’s something you should be aware of.

Throughout the entirety of the personal computer revolution, and for at least 100 years of typewriters, Canadians have been typing on what is generally known as the US keyboard layout. That’s enough time for several generations to be conditioned into typing a certain way.

Since 2009, all laptop manufacturers that ship to Canadian computer vendors have been shipping with a new keyboard. It’s called the Canadian Multilingual, or Canadian Bilingual keyboard. At first glance, it looks a bit funny, but is not that alarming. It’s got a few funny symbols on some of the keys, and a fat enter key, but is still a fairly standard looking qwerty layout.

But, in plain sight, this keyboard hides a nasty surprise.

(more…)

Android 2.3 on Nexus One Reviewed

Well, after today I’ve got to admit it, I’m a geek. I spent my last few minutes at work manually upgrading my Nexus One phone to Android 2.3 Gingerbread.

For those of you who don’t remember, the Nexus One is the amazing HTC built Google Android reference phone sold by google online at google.com/phone. You could only buy it online, unlocked, and at full price. Needless to say it was everything I ever dreamed of, and a total commercial failure.

Anyway, here’s the skinny on the upgraded OS.

They said the keyboard would be more responsive, and it is! It’s still not as lightning fast as a recent iPhone’s keyboard, but it’s very close. The iPhone’s keyboard runs as a native application, and probably gets special scheduling priority from kernel hooks. Android’s keyboard runs as an application in userland, which means it’s essentially a Java app on a fast VM, and is competing with the rest of the system for CPU time. Native code will always outperform a virtual machine.

They said the system would look better, and it does! The first thing you’ll notice is the UI is much more dark grey with light text than it used to be. Almost like using the “reverse” UI that the visually impaired use on a desktop OS. I really like this. It means that I won’t wake up my girlfriend when I’m switching which chapter of Human Action I’m listening to in audiobook format in the middle of the night. (remember when I said I was a geek? I meant it) (more…)

Higher prices on the way for Canadian telecom customers

The Canadian Telecommunications act was passed in 1993 under the Chretien/Martin government. The Supreme Court of Canada made the bill possible by taking what was once de-facto regulatory purview of the provinces and decreeing it to be federal jurisdiction. The act was rolled into the mandate of the CRTC — a regulatory body which saw its origins with the Railway Act of the 1850s, under which the Canadian government sought to control telegraph lines, usually raised along railroads.

As a result of this power grab, and specifically section 16 of the act, Canada missed out, in a big way, on the telecommunications renaissance that was to be born of the rest of the 90s. Section 16 states that no telecommunications company could operate in Canada unless it was Canadian owned and its board was under nearly total Canadian control.

Until the 90s, most of the country’s telecommunication services were provided by provincial monopoly players. Something that would soon change with the rise of the internet and the mainstreaming of mobile phones.

While the rest of the world was seeing new telecommunications companies take root and offer internet and mobile services at affordable prices to everyone from the rich of the developed world to the poor of the developing world, Canada saw its already bloated and stagnant telecom oligopoly get fatter and lazier, doing its worst to keep up with new innovations, all the while charging a monopoly price for its services.

Sadly this has come to a climax in recent weeks. (more…)

Time to learn Ruby

What better time is there to learn ruby than on one’s vacation? I’m considering using it to develop a very exciting secret project involving web typography. Like many programmers, I’m going through the ruby koans Lose Weight Exercises to get used to using the language.

about_triangle_project.rb

Sofar, my favorite problems are the about_triangle_project.rb and about_triangle_project2.rb problems. Here’s my solution:

def triangle(a, b, c)
	# important for efficient triangle testing
	ar = [a,b,c].sort

	# test for impossible triangles from sorted array of sides
	raise TriangleError, "Impossible!" unless
		ar[0] > 0 and ar[0] + ar[1] > ar[2]

	# identify triangle type with some stringy magic
	case [a,b,c].uniq.size
		when 1 then :equilateral
		when 2 then :isosceles
		when 3 then :scalene
	end
end

Isn’t unless a fun operator?
(more…)

Are you a hard money fanatic?

As an Lose Weight Exercise in graphing on the web, I’ve setup a little page which aggregates the precious metal prices from the Vancouver Bullion & Currency Exchange. I’ve got a little curl script that scrapes the prices off of the VBCE Gold prices webpage and records them on an hourly basis. From there I use a php graphing system to create graphs of the data as collected.  I’ve also included a line for the spot price which I scrape hourly form XE.com (don’t tell on me!)

You can see the graphs here: http://gold.brainbits.ca

Cheers, and ¡Viva la revolution!

Never ruin a turkey dinner again

Screenshot-The turkey bake-time calculator on the internet! - Google Chrome

A good friend recently lamenting his slightly overcooked turkey dinner said he was going to double check his math with me for the next one. I told him I’d do better than double check his 20mns per pound. I told him I’d make a website — and I did! I’ve called it turkeyti.me – the turkey bake-time calculator on the internet! It’s all javascript/css/html in one file. It only took a couple of hours to make, but I’m pretty well enamored with it.

http://turkeyti.me

I will be speaking at Wordcamp Vancouver

Wowee, I’ve been selected to speak at Wordcamp Vancouver! I will be speaking about the process of creating a WordPress theme, from a design point of view, and giving tips and examples of how to make sure your design is successful. There is limited space, so get your tickets before they run out.

WordCamp Vancouver is a large WordPress-focused conference taking place on June 12th, 2010. The event will take place at the Museum of Vancouver adjacent to Vanier Park in the gorgeous Kitsilano area. Several of the organizers were behind the successful WordCamp Whistler up on Whistler mountain in 2009, and WordCamp Vancouver will be equally as exciting and full of surprises.

Update: Thanks very much to the organizers of Wordcamp Vancouver 2010 for giving me the opportunity to speak. Here is the video of my presentation Designing for WordPress, and video of all of the rest of the great speakers at WordPress Vancouver 2010.

A couple of WordPress design tips

After converting so many static site templates into WordPress themes, I’ve identified a couple of very simple things you should have in mind when you’re designing a new CMS theme.

1) Fix your width

One of the most important things you can do to make your site an easy read is to use an ideal line length. For those who don’t know, line length is defined as the distance between the left most character and the right most character in a block of text. Lines that are too short or too long are uncomfortable to read. There are several different rules that people follow to choose an ideal line length, but in general if you keep your lines to between 60 and 80 characters, you’re in pretty good shape. This is where the problem with fluid or liquid layouts comes in. (more…)

Free Online Portfolio Services

Just the other day, I was asked by a friend whether I could suggest a way for her to easily show her design portfolio on the web. I’ve been asked this before, and have since taken some time to research portfolio website services so that when I’m asked again, I’ll be armed with a good answer.

It turns out there are a lot of these kinds of services. It’s the kind of thing that makes a web developer think ‘why didn’t I think of making this?’ so it’s quite natural that several have thought of it. I put several of these services through their paces putting together a simple portfolio site of my own with just a couple of projects and some bio and contact information. Following are outlines of a few of my favorites free online porfolio services.
(more…)

Firefox-3.5 in Ubuntu, and Facebook

Many people have noticed, after upgrading to firefox-3.5 in ubuntu (sudo apt-get install firefox-3.5; sudo ln -sf /usr/bin/firefox-3.5 /usr/bin/firefox) that Facebook stops liking you. Facebook chat insists on running as an external app. The handy dandy menu-bar doesn’t work the way it used to. Well, I noticed this too.

I also noticed, the Firefox-3.5 insists on calling itself Shiretoko, the codename for firefox-3.5, in its title bar. Aha! A clue! The problem here is that the wise old owls at Canonical decided to install firefox-3.5 into the system with a different name. Don’t ask me why… I can’t figure it. I can, however, fix it so that Facebook Chat works again, and here’s how. (more…)

Dating in the modern world

When it comes to dating, there is only one guide you need to read: ISO 8601. The ISO 8601 date/time format looks like this: 2009-07-25T08:29-9. The date portion sorts in a list in date order, and it reads from left to right in order of significance from greatest to least. The time is in 24 hour, and so also sorts correctly, and it’s finally followed by a timezone designator represented as an offset from UTC, or simply Z meaning zero offset, if specifying UTC. If no timezone is given, localtime is assumed. Also, all numbers are zero-padded, again, making sure the whole thing sorts. (more…)