Starting a Family is a Lot Like Work

Wow – welcome to being old and wrinkly, overweight, and sounding a lot like people from some previous generation. I just blinked my eyes and my squeaky-clean newborn is almost four months old. I can’t believe it. They really do grow up so fast. Multiply that by three and we have a one-year-old. Again by five and he’ll be heading off to kindergarten. I don’t even want to think about anything further than that.

Rich and RylanAnyways, I’m having a blast being a father. Rylan is robust enough now that I don’t feel like he’s going to break whenever I pick him up. And he’s a tough kid already. He’ll rival the best of them with his stunning good looks, strength, and that cranium. The kid is already attempting to have intelligent conversations and very clearly picks up on pretty high-level stuff. Nice… He’ll be outsmarting his parents in no time. I can’t wait.

Tina and RichSo we’re also in the home stretch of wedding planning. It seems like all the major stuff is organized, planned, and paid for. We’re on to all of the finest details now – which socks will match my outfit, which hairstyle looks right with Tina’s dress, what font to use on place-markers. You know, the types of things that don’t cost much but will make you absolutely daft during contemplation.

I’m more excited than I thought I would be though. Naturally, it is my wedding, and I’m marrying a woman that I love. But more than that, I’m marrying a woman that I like very much. So all modesty out the window and cheers to me. I can’t wait to see a few of you there, and share with you one of the most special nights of my life. And the parties. Oh, the parties. I can’t wait to see a few of you experience how we party in Key Largo. Plan to go home with a belly full of Mahi-mahi, and still swaying from a combination of island lager and time aboard various sea vessels. Don’t plan to go home un-entertained.

WP-Config Options You Probably Didn’t Know About

1. Override options “siteurl” and “home”

define('WP_SITEURL', 'http://your-sites-address.com');
define('WP_HOME', 'http://your-sites-address.com');

2. Revisions

define('WP_POST_REVISIONS', FALSE);
define('WP_POST_REVISION', 3);

3. AutoSave Interval

define('AUTOSAVE_INTERVAL', 160);

4. New wp-content location

define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/somewhere/wp-content' );
define( 'WP_CONTENT_URL', 'http://server.com/somewhere/wp-content');
define( 'WP_PLUGIN_DIR', $_SERVER['DOCUMENT_ROOT'] . '/somewhere/wp-content/plugins' );
define( 'WP_PLUGIN_URL', 'http://server.com/somewhere/wp-content/plugins');

5. Manage cookie options

define('COOKIE_DOMAIN', 'www.server.com');
define('COOKIEPATH', 'www.server.com/' );
define('SITECOOKIEPATH', 'www.server.com/' );
define('ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin');

6. Debug options

define('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);
define('WP_DEBUG_LOG', false);
define('SCRIPT_DEBUG', true); // Enables debugging of WP's built-in Javascript
define('SAVEQUERIES', true); // Saves database queries to $wpdb->queries array for analysis (will slow down site)

7. Memory Limit

define('WP_MEMORY_LIMIT', '64M'); // Probably will be overridden by server settings, but worth trying if you get a memory error

8. Cache

define('WP_CACHE', true); // Basically just includes drop-in advanced-cache.php

9. Custom wp_users and wp_user_meta tables

define('CUSTOM_USER_TABLE', $table_prefix.'a_new_users_table');
define('CUSTOM_USER_META_TABLE', $table_prefix.'a_new_usermeta_table');

10. Override default file permission

define('FS_CHMOD_DIR', (0755 & ~ umask())); // Untested - use at your own risk...
define('FS_CHMOD_FILE', (0644 & ~ umask())); // Untested - use at your own risk...

11. FTP and SFTP Constants

define('FS_METHOD', 'ftpext');
define('FTP_BASE', '/path/to/wordpress/');
define('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/');
define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub');
define('FTP_PRIKEY', '/home/username/.ssh/id_rsa');
define('FTP_USER', 'username');
define('FTP_PASS', 'password');
define('FTP_HOST', 'ftp.example.org:21');

12. Proxy access

define('WP_HTTP_BLOCK_EXTERNAL', false);
define('WP_ACCESSIBLE_HOSTS', 'api.wordpress.org');

Relating a MySQL Process to Server Process

All of this assumes LAMP (specifically CentOS 6, MySQL server 5.5, Apache 2+ with mod-status enabled)

On mysql server:

watch -n 1 "mysql -e 'show processlist';"

Look for sleeping connections that are staying open for a while. Watch for a trend. When you see a connection that you think will stay open for long enough, note it’s port number. Open second shell. Do the following:

netstat -lnap | grep 12345

– where the 12345 is the port number from the mysql process list. If/when you get a result, note the number to the right, next to “ESTABLISHED”. Next – open a web browser. Navigate to http://yourserver.com/server-status and do a search for that number (that’s the PID (process id). The highlighted line is now the process that caused the long-running MySQL thread.

Repeat this process a bunch of times until you have a good overview of what’s causing problems. Viola! Debug success, and it’s time for beers!

( This week, we’re drinking Sam Adams Boston Lager for our friends in Boston )

It’s April Already?

IMG_0163

What happened?

It seems like yesterday was March 4, the day Rylan was born. Just like that, a month has gone by. What have I been doing? Here’s a rundown of the last month of my life.

IMG_0167I went to New York City for a couple days, on business, to help resolve a major network problem in conjunction with the awesome IT guys from Outbrain. Toured their datacenter in NYC, which is in the same building as Google’s datacenter (pretty cool to see). Ate some Kobe Bacon (O!M!G! it was good) and a $40 hamburger. Thanks NYC. Met some of my New York co-workers face-to-face for the first time.

render2Next, was the crazy busy work schedule. Launching two new sites and updating a third – all in a month. Building a legitimate DevOps team, building a legitimate company network, and building an array of web servers. All while maintaining a fragile network of super-scaled WordPress sites. Did I mention I hired two people, and am working on a third?

Went to WordCamp Miami today. That was fun. Networked with cool people. ‘Nuff said.

Now we’re finalizing the plans for our wedding. We’re already technically married, now we gotta make it official by saying our vows in front of our family and friends! June 29 it is, aboard the Island Time Cruise boat. We rented a house on the water for the week (in Key Largo), we’ll have our boat there, and of course my parents will have their boat nearby. It’s going to be a week-long party and adventure in Key Largo, for all things that are Collier/Greda and friends.

IMAG2060And I haven’t even mentioned the fact that I am a brand new father. Loving that part of my life. Absolutely loving it. Awesome kid. Awesome new family. Awesome awesome. I worry that my Tina isn’t getting the help she needs from me – doing my best to keep everything organized. She literally just tried to drink a beer after having no alcohol for about a year. She said my Corona Light tastes like old shoes. Oh well, more for me.

That’s all I’m saying now. Over-and-out.