Half-Elf on Tech

Thoughts From a Professional Lesbian

Author: Ipstenu (Mika Epstein)

  • What To Expect When You’re Expecting to Go to WCSF

    What To Expect When You’re Expecting to Go to WCSF

    So WordCamp San Francisco is in a month and a half and you’re raring to go? I’ve done two WordCamp San Francisco’s, so I’m by no means an expert of them, but I’ve been to the Bay Area enough to know some of the more annoying aspects of it. Here are my top considerations for the camp of camps.

    Airport delays

    I’m going to say this. SFO sucks. It just does. I’ve only flown once without significant delays, and that was 2012 where they had a ‘surprisingly mild summer.’ The rest of the time, consider flying into Oakland. You can still take the Bart. The reason SFO sucks, in general, is the cloud coverage. The airport is right by the water, and the weather caused by the bay is nuts. Speaking of ….

    Weather

    Pack for cool weather. “Summer” in the Bay Area is not like summer in pretty much the rest of California. It’s a micro-climate, hemmed in by the bay and the mountains, which means it’s cool and a little damp. Unless you’re used to it, pack long pants and light jackets because the damp will do a number on you. Spring or fall weight (light sweatshirts) versus summer weight is smart. Lots of people bring shawls, if you’re into that, and the trick is light layers. Everyone from outside the US, I’m really sorry, it’s not ‘summer’ at all. I will note than in 2013, it was actually warm, so having a light jacket that was easy to tuck away was my best friend.

    October isn’t going to be cold in San Francisco, but it won’t be warm either. That light jacket will be your friend.

    Comfortable shoes

    Shoes that are probably not very comfortableSpeaking about clothes, remember your feet! You will walk. Bring comfy shoes. In fact, bring two pair. I pack sneakers, comfy ‘talking’ shoes, and a pair of flip-flops for the inevitable moment when I can’t fit my feet back in my shoes. You will also be standing and talking a lot. If you, like me, have a knee that likes to flip you the bird, keep that in mind and have no shame in telling people you have to sit down.

    Transportation woes

    There are six taxis in SF and you probably know the way better than they do thanks to Google Maps. No, I kid. But really, taxis are rare. A lot of people use Uber or Lyft to handle booking cars for quick transport, but even with that, people use other options. It’s kind of like Gypsy cabs, if you’re from the East, only a little less sketchy. Most of us use the BART, though. It comes right from the airport (both Oakland and SFO), and you can get a Clipper Pass to use both MUNI (which goes from downtown to where WCSF if held) and traditional BART. If you plan on coming back to SF ever, it’s a decent investment.

    Walking through many classes of areas quickly

    You can go from upscale to seedy in about a block, so if you’ve never walked through the city before, please go with someone you know already, or suck up the price of a car ride. Can you walk from your hotel to WCSF? Probably. Do you want to? Probably not by yourself. This is not to say that San Francisco is particularly dangerous, but it’s a big city. There are crazy people and bad people in every major city in the world. Be aware of this. I try to never be alone on the streets at night in any city, just as a rule, unless I know the city really well. Even so, I lived in Chicago for 15 years, and I never once forgot that I was a woman, and it just plain wasn’t safe to walk though, oh, Cabrini Green by myself at night. If you don’t know what is and is not a safe part of town, don’t go alone, or don’t go at all.

    Computers

    Hundreds of Maine students who gathered Thursday at the University of Maine's Collins Center for the Arts hold up the Apple laptops they use as part of the Maine Learning Technology Initiative.Unless you’re speaking or doing the Happiness Bar and, thus, need the laptop, leave it at home. Bring your tablet to take notes on or use a notebook. There are usually some Moleskin and pen swag lying around, so grab one if you forgot yours and take your notes/reminders there. If you bring your computer, you will be tempted to log in, be social there, and do work. You just came to a massive, in person, WordCamp. Look up from the screen once in a while. I promise, WordPress is people.

    Swag

    Everyone gives away swag at WordCamps. There are the high-level sponsors who have tables, and they’ve usually got t-shirts, pins, pens, candy, postcards (with information), water bottles, and all sorts of weird stuff. You can get swag from everyone, even your competitors (who really are your coopetition, right?). I’m fond of how soft the WPEngine shirts are. You will get tons of swag. Leave room in your luggage for this stuff so you can get home. Also you’ll want to bring an empty bag with you to the event to tote stuff around. Unless, like me, you know how to make bags out of swag pins and t-shirts, you want that extra bag.

    Hugs (set boundaries fast!)

    I need to preface this with “The way I hug you is not directly proportional to how I feel about you.” I hug like I follow people on Twitter. Sometimes I do, sometimes I don’t, and it’s pretty fluid based on my mood.

    It’s okay not to hug! A lot of us are huggers, though, especially because some people are considered family. No, I’m not related to Amy or Andrea (or Andrea) or Courtney or Jen, but we’re good friends and they’re people I will likely hug a lot. Especially right before they go on stage, or right after, or when we first see each other, or when we’re leaving for the day, or when we check out of hotels… Then there are people like Otto and Jaquith and Nacin and Koop who almost always get at least one hug hello.

    There are also a lot of people I bro-hug. You know the one, right? Where you clasp a hand and keep it between you as you one-arm hug?

    Bro Hug

    This doesn’t mean I like you less. I’ve hugged my wife this way following a performance. It may mean I’m feeling overwhelmed and need not to hug someone. I may have spilled my drink on myself and not want to get you wet. Maybe I smell bad and don’t want you to know. Point is, different people have different huggy rules depending on their mood. Respect that. Also it’s okay to hold up your hands and so ‘No, bro, no hugs.’ I went to WordCamp Portland while getting over a nasty flu bug, and was on a no-hug trip. People understood.

    People talking like they know you (and they probably do)

    They do know you. Or your work. Or your avatar. Suffice to say, it’s weird the first time it happens, and it’s weird every other time. Even Otto has remarked to me that he finds it weird. I mean, we’re just people, we’re not celebrities, right? You’d be surprised how other people feel. It’s still weird to me, but recently someone said “Where do I know you from?” and I smiled and replied “Probably the Internet.” He cracked up and we exchanged nicknames which was when he realized he’d seen me on WordPress TV. People know you, they know your avatar, and they’ll want to treat you a little different than ‘normal’ because to them, you’re kind of important. Say ‘you’re welcome’ when they thank you, and if they have something to give you (like more of those awesome 10up moleskins?) say ‘thank you’ and you will be a great person.

    Mobbing and/or Monopolizing People

    So many people do this, I feel bad for Matt Mullenweg (whom I know expects this and is probably okay with it). A lot of people want to meet Matt and talk shop. Respect the fact that everyone wants his time, and try not to take up more than five minutes. Maximum. If there are other people hovering around you looking anxious, ask him what a good way would be to get in touch and talk longer later.

    As for other people… I was at a WordCamp where I was chatting with a friend and noticed someone standing to the side looking edgy. I smiled at her, stepped to open up the chat circle, and asked if she wanted to join our chat. She actually wanted to thank me, personally, for something. As we talked, a couple more people queued up. As the first woman kept on talking, I finally said “You know, I’d love to talk to you more about this, but we seem to have made a line. How about we all sit together and lunch and we can all chat?” She huffed, but agreed, and the next person smiled at me and said she didn’t want to monopolize, but did I know of a good plugin for something. I did, she thanked me, and left. That set the tone for the next few people. They realized they weren’t the only person important to me in that moment, and they shared me.

    So the take away here? Share the person you’re mobbing. Take no more than 3 minutes. If it takes more than that, you should offer to buy them lunch/coffee/dinner and have a private chat. After all, they’re here to learn too!

    Woman plugging her ears with fingers

    Afterparty Earplugs

    Sensitive ears? Bring ’em. The afterparty is a party. It’s loud, and it may not be for you. But know that earplugs are probably a good idea. Also it’s NOT a dinner, so after camp breaks up, get with a group of people and go eat. Go to your hotel and nap. Then come party. We’ll still be there. They usually have to kick us out.

    Losing your voice

    I come out of WCSF sounding like Angie Harmon, and with a really sore throat, every single time. I talk to a lot of people, I end up shouting to be heard at dinner/parties. I am far more social at at WordCamp than I am in my normal life, where I like to be pretty quiet, so I almost always come back a little Kathleen Turner. So I guess there could be worse fates!

    What about you?

    What are your tips and tricks?

  • The Great Internet Slowdown

    The Great Internet Slowdown

    Wednesday is the Great Internet Slowdown where websites all over the world are going to protest the cable conglomerates getting together to tell us how fast our internet can be to specific sites, when they want it to be fast or not.

    I’m going to do this one simply. You know how you can dial anyone on your phone, and it’s your responsibility to not dial up sex numbers if that offends you? The phone company doesn’t limit your ability to do that. It doesn’t stop you from sexting your ex at 2am when you’re drunk and that was a really bad idea, wasn’t it? They don’t tell you, as you dial a psychic, that you should dial this other one instead. No, they let you shoot yourself in the foot.

    Well that’s not how they want it to work on the Internet.

    Cable companies are spending billions to gut the heart right out of net neutrality and create fast lanes and slow lanes on the Internet. A company that pays them more will get their site loading faster. A company that doesn’t, even if it has superior products, would be slower.

    This isn’t about how quickly our cat videos load, it’s about the future of our ability to communicate, to learn, to create, and to rebel. It’s about the future of humanity.

    I know that sounds a little heavy handed, but it’s true. The ability to use the Internet for communication is massively important. I work with people all around the globe, I fix websites all over the place and I talk constantly with people everywhere. I need to be able to do this to succeed at my job. If cable companies get their way, it might make it impossible for products like WordPress to develop as quickly as it does today.

    It’s already hard enough, with nations putting up firewalls and blocks preventing China from reaching Google for fonts, to get things done. But now we’re letting companies you and I might not even use decide they know what’s right?

    Come on! Let me decide if I want to go to that site and talk to those people! It’s just like the phone, after all.

    If you’re on WordPress, grab the Cat Signal Plugin. You can install it and leave it on, it’ll turn itself on when needed.

    This is the battle for the net

  • Network Rules

    Network Rules

    I love Multisite. I don’t think people use it ‘right’ but I love it. So I’ve started to make my own rules about Multisite and how to use it properly.

    Only One SuperAdmin

    There should be only one SuperAdmin, and you should never use that account to post. This will limit what you can do on any given day, and you’ll need a second account to mess with network settings, but this is a good thing. While WordPress lacks a sudo feature (yes, I know there are plugins), having only one SuperAdmin and locking that account tight and keeping the keys to yourself limits people’s ability to be mean to you and brute force. Extra points if you name the account something random.

    Restrict Access

    Only give people access to what they need. This means you limit their plugins to what they have to have, ditto themes, and you don’t let them argue they need the unicorn.

    But I want the Unicorn

    You knew I’d pull that one out, right?

    Be mean and say no. Don’t let someone be an admin of a hundred sites if they only need to be admin of one. Don’t let them be members of sites they don’t need to write on. Remember, Multisite makes you a pseudo-subscriber so a user will be able to read and comment on all sites on your network. They only need to be a legit member if there’s a real reason, like it’s a locked site.

    Don’t Network Activate Things

    Perhaps this is better said as follows: Only network activate things that must be network activated.

    Is it ‘easier’ to network activate W3TC and configure it for your network? Sure! Should you? Probably. But what about Jetpack? Does everyone need it? Do they all need the tool for GUI comments when not all the sites even use comments? Be judicious and cautious when you network activate plugins.

    Test All The Things

    Vet your plugins and themes before you install them. Test your upgrades on a non-production site. I cannot stress this enough. Test, test, test, test! Test! Just … test okay?

    Heavy duty padlock

    What are your rules?

    I asked on Twitter and Tim Moore said he turns off the plugin menus for subsites. You can do this very easily by going to Network Admin -> Settings -> Network Settings and uncheck the plugins box for “Enable administration menus.” I do sort of wish we had more things there, like disable themes and so on, but seeing as you can more granularly control themes anyway it doesn’t matter that much.

  • He Ain’t Heavy, He’s My Website

    He Ain’t Heavy, He’s My Website

    I get asked this a lot from a more technical perspective.

    All the myriad reasons you have to use, or not use, Multisite aside, the question that is often wondered and confused over is the one where we’re trying to balance out ease of support vs cost. You see, a lot of the time, people consider multisite because they’re on a webhost who only allows one domain for your site. You may be able to use add-on domains but they also may be limited, and the easiest way to run a hundred sites on one hosting plan is multisite.

    I have to remind everyone here, I would never, ever, in the history of ever even remotely consider running Multisite on anything less than a VPS. Yes. I said it. Keep in mind when I run a Multisite I’m always doing it to run a network of heavy duty sites. If I was just running a tiny private network, my goals would be different. But more than that, I keep in mind the realizations of the limitations of shared hosting. Shared hosted is tiny. Multisite is big. Match ’em up and you’ll be happier.

    What does this have to do with the heft of a network? Well if I have 100 separate sites and 100 sites on a multisite network, what’s the real, practical difference?

    • 100 separate logins vs 1 login on 100 sites
    • 100 separate sites to update vs 1 site

    That’s pretty much it. Yes, there are a dozen of little things (like it’s easier to restrict access to a single site) that come into play here, but when you start looking at the server itself, the practical differences when it comes to things like disk space, memory usage, process utilization, and emails, there is no negligible differentiation on your site’s performance.

    Yeah, 100 separate sites and 100 sites on a network will run pretty much the same on the same server, assuming the exact same level of traffic and use of plugins. That’s a pretty big assumption most of the time but in this one case, it’s safe. We’re trying to compare apples and apples, with only one difference: Multisite or Not.

    Of course, there are specific situations where a multisite will cause more damage to a server than a single site, especially if you’re doing a lot of cross-content manipulation (like including the RSS from one site into the sidebar of another). But it all really depends on if you have a lot of traffic. Yes, one Multisite blog getting hammered will hurt the others on the network, but it shouldn’t cause a significant CPU spike any more than two separate really massive single sites would on the same server.

    Foggy photo warning of heavy fog

    And there is one place where Multisite very much would do more work on the server than Single Site, and that’s with ms-files.php. That old magic that made your image URLs to be domain.com/files/2014/09/image.job. The way that worked was to pass images via .htaccess through the ms-files.php page and then generate the image. Yes, that caused more load. It’s part of why we don’t do it anymore, and why I suggest never trying that again.

    It’s funny, though. I’ve seen one host say that Multisite will use less by way of PHP processes because it’s one install, while another said it would use more because ‘Multisite’, and a third said there’s no difference.

    Obviously I don’t think there’s a difference.

  • Featured Image Size

    Featured Image Size

    I’m particular about a lot of things, including my excerpts and featured images. The biggest problem I have is remembering what my featured image size should be. You see, I do slap up a custom image, just for that, most of the time, and remembering that the size should be 900×220 every day is something I just can’t do. So I lamented, as I checked for the 99th time, that I should be able to pull in the size!

    What I want is this:

    Example of featured image meta box with the size indicated

    And yes, I did it with this in my functions.php for my theme:

    //* Add new image sizes
    add_image_size( 'featured-image', 900, 220, true );
    
    //* Change Featured Image to remind me what the size is
    add_filter( 'admin_post_thumbnail_html', 'helf_admin_post_thumbnail_html' );
    function helf_admin_post_thumbnail_html( $content ) {
    
    	// Get featured image size
    	global $_wp_additional_image_sizes;
    	$featured_image = $_wp_additional_image_sizes['featured-image']['width'].'x'.$_wp_additional_image_sizes['featured-image']['height'];
    
    	// Apply
    	$imagesize = '<p>Image Size:' . $featured_image . 'px</p>';
    	$content = $imagesize . $content;
    
    	return $content;
    
    }
    

    The trick there is I have to know the name of my featured image. Since I use Genesis, it’s usually named ‘featured-image’ but it could be anything. That also means on my Theme Settings I have this set:

    Genesis Content Archives

    And that has to match. So, since I am running Genesis, it’s a quick change to put in this check instead:

    add_filter( 'admin_post_thumbnail_html', 'helf_admin_post_thumbnail_html' );
    
    function helf_admin_post_thumbnail_html( $content ) {
    	// Define what the name of our featured image size is
    	$genesis = get_option('genesis-settings');
    	$genesis_image_size = $genesis['image_size'];
    
    	// Get featured image size
    	global $_wp_additional_image_sizes;
    	$my_featured_image = $_wp_additional_image_sizes[$genesis_image_size]['width'].'x'.$_wp_additional_image_sizes[$genesis_image_size]['height'];
    
    	// Apply
    	$imagesize = '<p>Image Size: ' . $my_featured_image . 'px</p>';
    	$content = $imagesize . $content;
    
    	return $content;
    }
    

    The only thing I couldn’t get to work was an if-check around the filter so I could make sure I really am running Genesis. Future improvements, I suppose.

  • Marrying Multisite

    Marrying Multisite

    While there’s really no practical difference, server usage wise, between 100 separate sites and a multisite with 100 sites, a lot of us prefer to use Multisite for a variety of reasons. And today, assuming you have thought long and hard about those reasons, let’s talk about how to take 100 sites and fold them into one multisite. And yes, this will suck. If you read about how to break up a multisite, you may already have an inkling of the pain you’re about to embark on.

    Donna Noble, my second most favorite companion, strikes a pose

    Make A Temporary Site

    The first thing that makes it hard is that you have to keep your existing site up and running while you import it, no matter how you chose to import. So regardless of if you’re moving subdomains or subfolders, you need to make a temporary site. I like to keep the site names similar, and the same length because it’s easier for me. So if I’m moving a site with the slug ‘donnanoble’ then I’m going to make the new site on my network named ‘donnanobl1

    There’s a practical reason for this. When I’m all done with everything, I can do a search/replace with any tool to change it back to ‘donnanoble’ and I don’t have to use a tool like the interconnectit Search/Replace DB script that has serialization safe super powers. If you use WP-CLI, the built in wp search-replace tool has this already, and I’d be using that personally. The point is that you will be renaming everything at the end to the original name eventually.

    Bring in the Content

    I personally do this via the WordPress Import/Export feature.

    Now look, I know you can port over the tables and rename them but … I wouldn’t. Why? The users. The tables for the users have to be pulled over with the right user meta, and you would have to marry the wp_users and wp_usermeta tables in a way that no user ID was duplicated. Frankly, I don’t think it’s really possible to do that well. If I had to, I would actually manually create the new users on my Multisite and make a note of that new ID. Oh and of course the user names can’t both be admin. You can’t have two Doctors at once. Well. You can. And I’m sure they all use the same username, but you’re using WordPress and not a TARDIS, so if two users have the same username, then either they’re going to be the same user or you’re going to have to make one a new account.

    Meta Crisis Donna Noble

    There are number of you thinking about how many people use ‘admin’ as their username, and yes, that’s exactly what I’m talking about. But if we’re lucky and doctor11 and doctor10 used different login IDs on their sites, then you’re just going to need to copy over the one line in wp_users for that:

    The Doctor - WP_USERS

    See how he has an ID of 10? That has to match all of these:

    Sample of wp_usermeta

    They don’t match right now, do they? Nope. The Doctor has an ID of 10, but the snippet I took from his site was for a user ID of 2, so I have to edit everything in wp_usermeta. Next, I have to rename my tables for wp_posts, wp_postmeta, etc etc over to wp_x_posts and so on, to make them match the new site ID. Oh and don’t forget wp_user_roles! You have to fix that for your new site ID too! And then reattribute all your posts!

    example of WP_POSTS with the user ID

    You see this slope and how it’s getting really slippery really fast? That’s why I won’t do it. It’s certainly possible, but it’s neither simple nor easy nor safe. Importing and exporting via WP’s built in tools has only two downsides as I see it:

    1. Your users have to make new passwords
    2. You have to reconfigure your theme and plugin settings

    That first one doesn’t bother me. The second one doesn’t either, since not all the plugins and themes work the same way on Multisite, so I probably want to take the time to do it all cleanly anyway. That does mean that I can’t automate things, but at the same time, I’m not particularly sure I want to. Taking each site one at a time will take longer, but it will let me be careful and test everything every step of the way.

    Either way, once you have the site content in place, and your site settings look and feel how you want them to, it’s time to do a flip.

    Flip The Sites

    Take your original site, donnanoble, and rename it. If it’s a subdomain, turn off whatever weirdness you did in your panel to map the subdomain. For most types of server panels, having both named subdomains and a wildcard can live happily together, because the ‘real’ subdomain will supersede the wildcard. If not, you’ll need to change that subdomain to point to the location of your main install of WordPress. So if you’re in /public_html/donnanoble/ then that becomes /public_html/ on it’s own.

    Either way, you have this real folder on your server called donnanoble and that needs to be renamed to anything else. At this point, I tend to use donnanoble-disabled because it is. Also it’s not supposed to work anymore.

    Once you’ve broken donnanoble, it’s time to go into your network admin, go to the sites page, and edit the donnanobl1 site. Rename that to donnanoble, and check the box to change both home and site URL. Oh, and remember I mentioned search and replace before? Run that now. Change donnanobl1 to donnanoble all over the whole database.

    I told you it wasn’t super easy

    Donna Noble making a silly face

    If you’re like me, you now have a bit of a headache, thinking about doing this 100 times. It’s one of those things that should conceivably be easier than it is, but right now WordPress really only has a way to export content and not settings (which is pretty much why we have such nightmares segregating content and code).

    It may be plausible to use tools like BackupBuddy to import, but you still will find yourself at a tense moment when you have to flip the real and temporary sites around.