Using Dreamhost’s VPS as a MySQL Server

I’ve been a happy customer of DreamHost for many years now — for $9.95 a month, I was able to get loads of diskspace and unlimited bandwidth, all from a great company that was staffed by great people who were very technically competent.

It is “shared hosting,” however — that means you’re getting it that cheap because you’re sharing server CPU power, available RAM, etc, with many other people who are also getting a great deal. You’ll notice this in any WordPress sites you may run on Dreamhost’s shared hosting — there’s about a 7-10 second delay between when you navigate to your site and when your page actually loads, mostly because your server processes are waiting in line behind everyone else’s.

So, Dreamhost does offer a “VPS” service — with this, you’re getting an absolute amount of RAM, CPU power, etc, that will only be used for your sites. It’s a tiny bit more expensive, at $14.95 or so a month, but it’s worth every penny.

If you’ve run WordPress installations on a Dreamhost site, though, you know that your mysql databases are on a seperate server entirely, and that may slow things down as well. Even if you move your WordPress installs to a VPS, your mysql databases will still be on shared hosting. DreamHost offers a “MySQL VPS,” but it costs another $15 a month (minimum), and you have no control over it at all.

A better solution would be to run your own MySQL server on DreamHost’s main VPS, since they give you root command-line access. There are a few hiccups in this process (some put there by DreamHost itself), but otherwise you should be able to do it.

  1. First, create an admin user for your VPS that has sudo abilities, and log into your VPS with that through ssh.
  2. Second, you have to tweak apt so you can even install the mysql-server package. It appears as if part of installing packages through apt involves temporarily storing files in /tmp and then running them from there.Unfortunately, the /tmp directory is mounted on DreamHost’s VPS servers with the noexec option, which means that you can’t run files that are present in that directory. That basically prevents you from installing the mysql-server package until you tweak apt to temporarily stage files in /var/tmp instead. Do this by:Creating a file called apt.conf in the /etc/apt/ directory, and edit it so the contents are the following:
    APT::ExtractTemplates::TempDir "/var/tmp";
  3. Then, install the mysql-server package:
    sudo apt-get install mysql-server;
    

    (When it asks to set a root password, make sure and set one.)

  4. Now, edit the file /etc/mysql/my.cnf and set the following options:
    bind-address=psXXXXX.dreamhostps.com

    (Replace psXXXXX with the name of your dreamhost VPS.)

  5. Restart your mysql service:
    sudo service mysql restart

At this point, you should be able to log in to your new mysql server:

mysql -u root -p

and then perform what SQL functions you need to.

A great thing to do is to install phpmyadmin using the tutorial here: http://wiki.phpmyadmin.net/pma/Quick_Install

First you’ll want to create a user (that isn’t your root user) to log into phpmyadmin:

mysql> CREATE USER ‘newusr’@’%’ IDENTIFIED BY ‘your_password';
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘newusr’@’%’ WITH GRANT OPTION;

At this point, you can sync your old databases to your new mysql server using the built-in sync tool that’s in DreamHost’s installations of phpmyadmin.  Then, just edit the wp-config.php file in the folder of your WordPress installations, and change the line that says the following to your DreamHost VPS:

define('DB_HOST', 'psXXXXXX.dreamhostps.com');

Sources:

http://howtogetitworking.com/2011/06/28/installing-mysqld-dreamhost-vps/

https://bugs.launchpad.net/ubuntu/+source/debconf/+bug/90085

http://serverfault.com/questions/72356/how-useful-is-mounting-tmp-noexec

 

 

Review: The Peripheral

The Peripheral
The Peripheral by William Gibson
My rating: 5 of 5 stars

Probably the book I’ve most loved from William Gibson since his earlier work — while not giving up on the, ahem, “different” style from his later work, he seems to have blended it with the futurism of his earlier 80’s work to make something entirely new and refreshing refreshing.

Taking place in two different times completely (15-20 years in our future, and about 70 years on from that), the book features the plot device of time travel, but in a way that doesn’t break the laws of causality — each world is more like its own universe within the multiverse. The denizens from the earlier time are used as a form of labor — think Amazon’s Mechanical Turk.

While all of Gibson’s books seem to end suddenly, leaving you wishing they’d go on for just another 40-50 pages, this one is especially so — I haven’t been reading a book and wanting it *not* to end this bad in a long time. The world that Gibson has created is just so rich.

View all my reviews

Creating a QI Wireless-charging Case for the Moto X (or any phone, really)

The Moto X (2013) is one of the best Android phones there is — it’s thin, it’s light, and the battery lasts nearly two days.  It’s got passive, voice-activated features that you can use even when the phone is locked and in your pocket.  You can launch your camera just by flicking your wrist in a certain way.  It’s got a lot of great features… but (eventhough there’s actually space inside the phone for it) QI-compatible wireless-charging was left off that list.

There are mods out there to take apart the Moto X and install a QI charging bad, but it renders you unable to charge your phone via a conventional cable when necessary, so I didn’t want to take that route.  Even if I have access to wireless charging pads at home, there’s going to be a situation where I’m going to need to charge my phone away from home, and modifying your phone in that way would prevent that (without disassembly).

When looking for wireless-charging compatible cases for my MotoX, the pickings were slim — I found one that was compatible with Duracell’s (proprietary, and not very well supported) Powermat technology, however, I’m wanting to take advantage of the huge mount of QI-compatible wireless-charging devices already out there.  QI is a technology that’s already been used by Nokia and Google for years now, and it’s licensed much more easily than Duracell’s technology.

So, I set about making my own QI-compatible wireless-charging case, using parts you can buy easily on Amazon.

#1) Buy your parts

Moto X and QI wireless charging pad, side by sideImportant: Get a QI-compatible charging receiver with the USB plug that faces up.  The case doesn’t matter, as long as it’s one that leaves enough room between the phone and the case so that there’s room for the charging pad.

#2) Test fit your charging pad in the case

Charing pad just sitting in case.

Try placing the charging pad in the case, and plugging the connector into your phone (at the bottom).  The case will “pinch” the connector cable a little — this is okay.  It’s durable, and very thin.

When you’ve figured out where the pad will sit when sandwiched between your phone and the case when it’s plugged in, move to step #3.

#3) Glue your case (or attach with tape)

Glue on four corners of charging pad

When you’re ready, put four drops of glue and place the pad into its final resting position that you decided upon in Step #2 (or just place it there and put four pieces of clear tape over the corners — this is what I had to do eventually when the glue wouldn’t hold).

#4) Seat everything together

Phone with case on with charging pad installed.

When your glue has dried (or your tape has been placed), carefully insert the QI charging pad cable into your phone’s USB port, and place your phone into the case.  Everything should sit together nicely, which just the little extrusion for the USB plug.

#5) Charge on a QI-compatible charger

Moto X with QI charging case on wireless charging pad.

When I placed my phone on the Anker charging pad, it started charging right away!  The phone even reflected so on the battery icon — I had heard from similar tutorials that sometimes this was not the case.  The phone would be charging, but the icon on the home screen would not show it.

I think this is due to whatever combination of charging pad and QI insert these individuals were using was not sufficient enough for the phone to reflect it, even though an actual current was being delivered to the phone.  I have experienced this in the past with Android tablets, if you’re using a charger that didn’t come with the tablet — the tablet would charge, even if the tablet’s UI didn’t reflect it.  It would charge very, very slowly.

So, good luck, and happy charging!

EV Market Tepid, Except for All the Cars Being Sold

Seen on an otherwise kinda interesting article from Forbes about how Volt sales didn’t match what GM expected, and how the company is choosing to direct its advertising in another direction for the revamped Volt:

And while overall sales of plug-in hybrids and full EVs remain tepid except for Teslas, and U.S. oil supplies look more secure than ever, the future of propulsion always has a way of surprising us. Note, Bunkley wrote, how most people wrote off the future of large SUVs several years ago — and now sales are going back through the roof.

“Tepid” except for Teslas?  Look, I know the author is kinda going for “Oh, ho hum, EV’s, they’re certainly just a flash in the pan technology soon to go away”, but still…

Chart showing sales of Leaf's nearly triple that of Teslas
[Source: http://cleantechnica.com/2014/08/05/nissan-leaf-still-king-ford-fusion-energi-sales-jump-201/]
And that’s not just for the month of July — that’s the trend for the entire year.

I expect this kinda thing from BusinessInsider.com — I don’t expect it from Forbes.

Ubuntu Touch on the Nexus 7 (2013)

I tried Ubuntu for devices — once I figured out what I was doing wrong (you have to flash your device to complete stock and wipe it beforehand), the install went pretty well.

The system is beautiful.  The way to navigate through the UI is beautiful as well.  You swipe from the right to switch between apps.  You swipe up from the bottom very lightly to access the app’s context menu. You swipe from the top to access your notification panel, and you swipe from the left to access a quick launch menu of apps.

However… there aren’t many apps to speak of yet, and the ones that are there are mostly web frames.

Unlocking/Rooting the HTC One on Linux

I recently bought a used HTC One that I intend on using on Ting — it’s a phone I’ve been wanting to use for about a year. It’s one of the nicest Android phones, with hardware quality approaching that of an iPhone. (Not to mention a software skin much more “professional” looking than a lot of other Android hardware manufacturers out there.)

HTC One Dimensions Picture
Isn’t it beautiful?

I didn’t want to flash or even necessarily root my HTC One, however, the only way to restore some apps (like the Google Authenticator) require rooting, so I had to do it.  What’s strange is that most tutorials and utilities I’ve found are for Windows (like this one from theunlockr) — I guess it shouldn’t be too surprising, considering most PC’s are Windows, but I’d figure that there would at least be some tutorials for Linux, considering Android’s origins.

Well, the good thing is that unlocking/rooting your HTC One on Linux isn’t really that hard at all, if you’re comfortable with the command-line, and familiar with using the android sdk tools (fastboot, etc.).

I’m not going to go into how to set up the Android sdk, etc, since if you’re doing something like manually unlocking your bootloader, you should already be familiar with it!

Unlocking/Rooting Your HTC One (M7) on Linux

Prerequisites:

  • android sdk
  • htcdev.com account
  • Latest recovery .img file from CWM
  • Superuser Hack .zip file: SuperSU (make sure and get whatever is the latest version of the SuperSU flashable zip — earlier versions found in other tutorials no longer work to root the later versions of Sense)

Unlock Bootloader

  • Boot into bootloader and select Fastboot
  • Run command “fastboot oem get_identifier_token”
  • Copy token as explained on the htcdev page, and await your Unlock_code.bin file in email
  • Copy Unlock_code.bin file to your working directory in Linux
  • Run command “fastboot flash unlocktoken Unlock_code.bin”
  • Follow prompts on screen to unlock/reset your phone

Flash Recovery

  • Boot into bootloader and select Fastboot
  • Run command “fastboot flash recovery <recovery.img>” (replace with .img file downloaded from CWM site)
  • Reboot

Root

  • Copy SuperSU .zip file to phone’s internal memory
  • Reboot into recovery
  • Flash SuperSU .zip file
  • Reboot and enjoy
Other Useful Links