Half-Elf on Tech

Thoughts From a Professional Lesbian

Tag: wordpress

  • SOPA Blackout

    SOPA Blackout

    I’m lazy and I don’t want to write a plugin, so I asked on Twitter if someone had one to black out a site for SOPA on the 18th of January. If you don’t get why this is a thing, please read WordPress.org’s post on SOPA. A lot of sites are going black from 8am to 8pm. I am, and I to didn’t want to use a plugin.

    My solution for this involves two files and is all thanks to Pete!

    To do this is really simple. Go in and make a file called .maintenance in the top level of your WP install. For most people, it’s the same folder as your .htaccess and wp-config.php files.

    Now edit that file and put in the following content:

    <?php
     
    // Let's make sure you're not an admin/logged in!
     
    function is_user_logged_in() {
        $loggedin = false;
        foreach ( (array) $_COOKIE as $cookie => $value ) {
            if ( stristr($cookie, 'wordpress_logged_in_') )
                $loggedin = true;
        }
        return $loggedin;
    }
     
    if ( ! stristr($_SERVER['REQUEST_URI'], '/wp-admin') &amp;&amp; ! stristr($_SERVER['REQUEST_URI'], '/wp-login.php') &amp;&amp; ! is_user_logged_in() )
     
    // If it's after 8:00:00 on the 18th, we're going to show the blackout page
     
    if ( time() >= mktime(8,0,0,1,18,2012) ) {
    	// When we hit 8pm (20), we're back.
    	$upgrading = mktime(20,0,0,1,18,2012);
    }
    ?>
    

    What does this do? It’s pretty simple. First it checks to see if you’re logged in and, if so, lets you get where you need to go. If you’re not logged in, though, it checks the date and if it’s after 8am on the 18th, you get a maintenance page. After 8pm on the 18th, it swings back. (All this code, except for the date stuff which I wrote, is from Matt (Sivel):
    WordPress Maintenance Mode Without a Plugin and WordPress Maintenance Mode Without a Plugin Part 3/ ) Pretty cool right? And the 8am to 8pm is based on your server’s time, so it’s all local. It’s also pretty easy to see how you change that for your own time. I would say pick your busiest time to go black.

    But if you want it to look pretty, you need to do a little extra. (Code from WordPress Maintenance Mode Without a Plugin Part 2 and text from Blaccupy) Make a file called maintenance.php and put it in your wp-content folder. Here’s an example:

    <?php
    /* Tell search engines that the site is temporarily unavilable */
    $protocol = $_SERVER&#91;"SERVER_PROTOCOL"&#93;;
    if ( 'HTTP/1.1' != $protocol &amp;&amp; 'HTTP/1.0' != $protocol ) $protocol = 'HTTP/1.0';
    header( "$protocol 503 Service Unavailable", true, 503 );
    header( 'Content-Type: text/html; charset=utf-8' );
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
            <title>BLACKED OUT</title>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <style type="text/css">
            body {
                    background: black;
                    text-align:center;
                    color: #eee;
                    font-family: Helvetica;
                    font-size: 2.2em;
                    }
            </style>
    </head>
    <body>
    
    <div style="width: 960px; margin: 0 auto;">
    <h2>This website is..</h2>
    
    <h1>BLACKED OUT!</h1>
    
    <p>In protest of pending US legislation, which threatens the freedoms of websites like this one and the freedoms of the people who use them, this website is offline on January 18th, 2012 from 8am to 8pm EST.</p>
    
    <p>Please <a href="http://americancensorship.org/">help protect our free speech</a> against the corporate and political interests which seek to take them away!</p>
    
    <p>(And don't worry, we'll be back in business tomorrow!)</p>
    </div>
    
    <?php
    die();
    ?>
    

    Which means your site will look like this on January 18th. You’ll notice I made some tweaks on mine. This is a default feature of WordPress, by the way. You can design your own maintenance mode page just with this one file, so y’know, party time.

    Now there’s only one catch. If you update WP via the automatic updater between now and then, you lose the .maintenance file. I don’t have a fix for that, but if you do, please comment!

    And yes, my sites are going dark on the 18th.

    ETA: If you have a Multisite and only want SOME sites dark, use Customize the Suspended blog page from WordPress Must-Use Tutorials. Suspend the sites and boom goes the dynamite.

    ETA 2: If you’re using MediaWiki (like I am on another site) I came up with this idea to go dark for SOPA. Its just a normal extension that, between those hours, redirects to the same page I use for WordPress. You could have it point to any page, of course.

    <?php
    
    if ( !defined( 'MEDIAWIKI' ) ) die();
    
    if ( time() >= mktime(8,0,0,1,18,2012)  &amp;&amp; time() <= mktime(20,0,0,1,18,2012) ) {
         
            include('/location-of/wp-content/maintenance.php');
        exit();
    }
    ?>

    That code, sans the Mediawiki line, will also work as an extension for ZenPhoto, so pass it on.

  • Yourls

    Yourls

    For a long time I’ve wanted short URLs for one of my sites. Finally I figured out a short URL, picked up the domain, and said “It would be great if I could redirect posts with this! But how?”

    As it turned out, I was making a mental mountain out of a miniature molehill. I do that sometimes, get all caught up in a non-meaningful detail. This was easy, it wasn’t super complicated, and it was fast. On the scale of things where WordPress is the easiest (1) and MediaWiki is the hardest (8), this landed next to Zenphoto (4) and was about the same (3 or 4, depending on your skills). It requires more RTFM than WordPress, and I had to do some things manually.

    Setting Up Your Domain

    First buy the domain. This part is obvious, I hope. Since I’m on cPanel, I added my new domain as an addon domain to the master. This let me have the short domain (do4.us let’s say) hosted off the main domain.com site, without making a separate account. If I’d wanted to map a domain, I would have parked instead of addon-ing.

    To add an addon domain in cPanel:

    1. Enter the domain for the new addon domain into the New Domain Name field.
    2. Enter the main FTP username for the addon domain in the Subdomain/Ftp Username field. You can use the one you use for the mani account if you want.
    3. In the Document Root field, enter the directory that will contain the addon domain’s files.
    4. Enter the password for the addon domain into the Password field.
      • Make sure you use a secure password.
      • You can have cPanel generate a secure pasword for you using the Generate Password feature.
    5. Confirm the password in the Password (Again) field.
    6. Click Add Domain
    7. To add files to the addon domain’s home directory, click the File Manager link, or use FTP/SSH like normal people.

    Once I did that, and DNS propagated, I was ready to go.

    Installing the App

    I decided to use Yourls for this, since my friends use it, and I know (in that internet way) the guys behind it. Hi, Ozh.

    That said, their install doc was screwed up. For 1.5, it says to edit a file that apparently isn’t included in the build. That’s okay, since I just used SVN anyway. The directions are very much geeky. This is not a simple WordPress install.

    What I did was first make a database domain_yourls and added my DB user account to it (I never use my domain FTP account). Then I ran an SVN checkout from googlecode to grab the files into the root of my add-on domain: svn checkout http://yourls.googlecode.com/svn/trunk/ .

    After that, it’s the manual editing of the config file (the sample of which is not included in the 1.5 zip) and then I went to myurls.com/admin/ to finish setup. I had to grab the .htaccess file sample, since mine didn’t copy down (my own fault there).

    Configuring the App

    Install the YOURLS: WordPress to Twitter plugin. Even if you don’t plan on using the auto-tweet function, this is the easiest way to get your URLs made. The “hard part” here is setting up a Twitter ‘app’ for the first time. If you’ve done it before, it’s not terribly hard, but with all new things, it’s scary. Ozh’s directions are painless, thankfully, and then … you’re done. And you have your own Short URLS!

    What’s Missing?

    Two things, and neither are YOURLS fault!

    1) Twitter doesn’t know that three different URLs (domain.com/postname, domain.com/?p=2 and do4.us/2 for example) are all the same URL. That means if you use those Twitter Rewteet buttons on posts, it doesn’t show up the same way, and the ‘count’ is off.

    2) There isn’t an easy way to tell Jetpack to use my short URLs instead of my site’s full one. Edited to add: By this I mean only in the ShareDaddy links. Like the ‘tweet/email/facebook’ ones. Actual shortlinks work perfectly.

    I suppose a third is ‘Damn it, Twitter, stop shortening a short URL!’ but that’s a different rant.

    Should you do this?

    I think so, but then again, I’m weird.

    Read Also…

    Otto – Using YOURLS with WordPress

    Rev. Voodoo – How I Set up Vudu.me URL Shortener With Yourls

  • Why You Shouldn’t Use Plugins

    Why You Shouldn’t Use Plugins

    These are words I never like hearing: “I want to change WordPress functionality, without a plugin.”

    At first, when I started using WordPress, I would say that myself sometimes. WordPress should have everything! Why do I have to use a plugin to use footnotes? Why do I need a plugin for fighting spam!? Why can’t I have everything I want and need all in one!

    Flash forward many years and my answer is “Because the world’s largest Swiss Army Knife is unusable.”

    85 options and when I look at it, I can’t fathom how I’d use it to do the things I need a Swiss Army Knife for. I do own one (two actually) and they’re both the perfect, simple, classic models. Heck, the one I pulled a picture of here has more gizmos! Mine has two knife blades, two screwdrivers, a toothpick and tweezers. That’s it. No extra bells and whistles, and I don’t need them. That little tool is 100% what I need for the moments I need a Swiss Army Knife, and has gotten me into locked buildings, fixed a car, pulled a thorn from my dog’s paw, and a hundred other little things.

    So when I hear people say “I want to do XYZ without a plugin…” I can’t help but think they’re looking at the whole process wrong, and I ask them “Why?” People have some pretty amazing excuses for why they can’t use a plugin, but I stick with my beliefs that no tool is all-in-one, and the more I hard code customizations, the harder it will be for me to upgrade them later.


    A plugin isn’t ‘core’ so it’s less reliable.

    People have this odd idea that ‘core’ makes something better. It’s actually not true. A good part of the design in WordPress was done so people could hook and action into it, making changes and tweaking things. So if you trust that core is ‘reliable’ then you trust those hooks are as well. And if you’re trusting the hook, you’re trusting the plugin. I think what the real fear is, is this:

    A plugin author might vanish.

    There are a lot of WordPress devs who vanish. Some even work on core. But yes, a plugin author could take a walk and you’d never see them again. This is ‘dangerous’ if you think of WordPress plugins like you think of, say, software vendors. You shouldn’t. Let’s look at HP’s tablets. No one has any idea what’s going to happen with them, if there will be more software, hardware or any support at all in the future. But HP is a proven, reliable company! And what about the Zune? Every vendor makes mistakes with products, and a freelance plugin dev is no better or worse than a major company at the end of the day. A real company might close it’s doors without warning, too! Maybe what people are saying is this:

    There’s no one to sue.

    Why this is a sticking point… The non corporate version of this is actually “For my protection!” But much like the point above, having someone to sue isn’t a magic solution. It’s not a promise that your vendor won’t wander off into Chapter 11, and leave you hanging. Go ask around, everyone’s had that problem with a pay-for program, and worse, one that left you with no one to sue. People are too sue-happy in my opinion, but I can’t fight that one. I do ask why they think they’d need to sue, and I get told this:

    A plugin is less secure.

    I’d like to know when the last time was you did a security audit on WordPress. Look, I’m not saying plugins don’t have the potential to be insecure, but if you’re performing your own due-diligence, and security is your bugaboo, then you should be testing WordPress core, your theme and all plugins with equal scrutiny! We perform audits on all vended software. Every year we have ‘hack it day!’ where we actively try to break into our products (in a non-live environment) to verify it’s as secure as we can make it.

    So if you have a plugin you really want, you should be reviewing the source code. And that’s where open-source code takes the prize. I can open up a plugin, and if I see base64(), or get() calls to things I don’t recognize, I know the plugin’s possibly insecure. I may even email plugins@wordpress.org and let them know about the bad behavior (base64() isn’t allowed at all). But none of that gives me a feeling, like so many other people, of this:

    A plugin is less reliable.

    Than… what? Seriously, I’ve heard this a hundred times. You’re saying “Someone else’s code isn’t as reliable!” but I’ve never had anyone explain how the code total strangers wrote in core is more or less reliable than the code in a plugin. And what about the plugins written by core devs? Are they incapable of problems? Tell that to the bugs that slipped into Jetpack. Nothing is perfect.

    Now, there are checks and balances on core that don’t exist on a plugin. Core changes are tested by hundreds of people (you’re testing it right now, visiting this site, which runs on the latest bleeding edge).  With all those testers, it’s still possible for major bugs to slip through (like json conflicts, sorry, Nacin). Which is probably why people say things like this:

    If I edit my site myself, the code will be there forever.

    Don't Edit CoreThat one amuses me a lot, actually. A friend of mine blogged about this recently and pointed out that life ‘without a plugin’ is dangerous. If you edit your site yourself, you have two places to do this.

    1. You edit core
    2. You edit your functions.php

    If you edit core, after you’ve killed a kitten, you’ve locked yourself into manually updating WordPress forever and ever. You can’t use the auto-upgrade, you have to read and re-read every code change to make sure it’s not on your file, and you have to pray nothing else was changed to make your hack invalid. How is that different from a plugin? Even a deprecated function used in a plugin will still work.

    As for your functions.php … maybe you don’t know this, but the difference between a functions.php change and a plugin is where you put it. Put it in functions.php and now you’re locked into that theme. Which is actually a problem I have with Custom Post-Types right now. If I want to switch themes, there are things I have to remember to bring with me. Hassle. There are plugins, thankfully, that can cover that for me, and I’m glad for them.


    Just use the damn plugin!

    Well okay, then. Are there reasons when a plugin’s a bad idea? Sure! Brian nailed it in one:

    If the plugin is making it snow on your site, I’d consider it unneeded. But I don’t advocate the use of fewer plugins just to use fewer. I do it because I think everything should have a purpose. If there’s no good reason to use a plugin, don’t use it. If it’s redundant, don’t use it.

    What else? Oh, Joey says:

    And that’s another excellent reason. If you want to learn to code, you don’t use a plugin. Or if you’re like me, you ‘fix’ it.


    Excuses, excuses

    What are the best ‘worst’ reasons you’ve heard for why a plugin shouldn’t be used? Here’s what my tweeple said (and my slightly sarcastic replies):

    Clearly they’re unclear on the concept. Functions are great for small, quick changes, but they’re tied to your theme! A plugin is forever.

    https://twitter.com/#!/TJList/status/153654497380540416

    So will adding the code manually.

    https://twitter.com/#!/sabreuse/status/153664752810336256

    I couldn’t even dignify that with an answer.

    http://twitter.com/sabreuse/status/153664914278453248

    If everything was ‘in core’ it would be 600megs and no one would use it.

    Let’s hear your best ones!

  • “Without a plugin” considered dangerous | sabreuse

    There’s just one problem with this. Plugins exist for a very good reason: to add non-core functionality 1 to your site without hosing up the whole lot.

    Via “Without a plugin” considered dangerous | sabreuse

  • Plugin Banners

    Plugin Banners

    WordPress now lets you add banners to your plugin pages.

    Naturally, I added one to Impostercide that reflected my own brand of humor:

    Which is now Nacin approved:

    https://twitter.com/#!/nacin/status/149884924990734336

    Add your own by creating an assets folder in your SVN repo (same level as tags and trunk) and add a file called banner-772x250.jpg (or .png). Make the image 772×250 px, check in your change, wait 15 minutes, and you’re done!

  • WordPress Upgrades and You

    WordPress Upgrades and You

    A year ago I wrote this – How the WordPress Update Works – and, the update tool has changed, but the crazy expectations have not.

    Before We Begin…

    Perfect. Change.I want to reiterate this, since apparently I can’t say it enough, the auto upgrade tool will never be 100% perfect.

    Part of me seriously wonders why people expect things to work perfectly all the time. The other part of me knows that if it wasn’t for WordPress getting it right so often, they wouldn’t have such violent reactions when it wasn’t. Skewered on their own swords, I guess. By making WordPress easier to install, use and upgrade, I do feel we might have lowered the bar too much, or at least beyond the current ability of servers and applications.

    I feel there’s a practical limit to how ‘simple’ you can make things. It’s sort of why I hate writing ‘troubleshooting’ documents that consist of ‘If you see this error, do this.’ It stops people from thinking and troubleshooting on their own, and instead ties them to a script. You’ve been there, I’m sure, telling the guy on the phone that you already rebooted your system.

    On the other hand, the vast number of people who just don’t do that is why I started writing up the Master TroubleShooting Lists for WordPress releases (this is now my third). Before 3.3 came out, I monitored the Alpha/Beta forums, the email lists, and pinged people I knew were testing the pre-release on Twitter and Google. Then I grabbed the other support geeks on the wp-forums list, asked them for advice and suggestions, and drafted up the post you see up there now. Well, except not. That post has been edited by anyone with moderator access on the forums (something I encourage and support, by the way).

    What does all that have to do with how the upgrade works? It’s simple. If you don’t want to take the time to understand how a process works, what it entails, how it’s tested before release, and what goes into installing it for you, I don’t want to help you. Actually, no one does. One of the last things anyone in support wants to hear is ‘You don’t understand…’ (First place goes to anyone who says ‘It doesn’t work.’ and won’t tell you what ‘it’ is, what the error is, or anything useful.)

    How Does The Upgrade Work?

    Many things are still the same. WordPress downloads the files, replaces them, runs the ‘deprecated file list’ and deletes only those files. What’s new is that, as of WordPress 3.2, we only upgrade the newer files!

    Faster Upgrades — The update system now support incremental upgrades so after 3.2 you’ll find upgrading faster than ever

    Does it Work?This made the 3.2.1 upgrade really fast for everyone. If you look at the release notes for 3.2.1, you’ll see a list of files at the bottom. Those were the only files that got updated when you ran an automatic upgrade, which is really cool. And when you look at the notes for version 3.3, you don’t see those files. Why not? The first reason is there are a lot more files. In fact, I’m willing to bet most files are touched in an update from 3.2 to 3.3 (those are major releases, by the way). So listing the files would be crazy. The second reason is that a major release isn’t viewed the same way as a minor release. We’re supposed to expect big changes.

    I started working my way through the code before I gave up and asked Nacin if the 3.2.1 to 3.3 used the incremental or the full upgrade? My gut feeling was, based on how long it took, it was a full upgrade. Nacin was quick to confirm that, elaborating by saying those are only done for partial releases, though the update was smaller than before, since it omitted the wp-content folder. This isn’t new, by the way.

    So basically the upgrade hasn’t changed. Which begs the question…

    Is WordPress 3.3 ‘Worse’ Than 3.2?

    This goes back to my Master List posts. The whole reason I started them was that 2.9 to 3.0 was insane. It was huge. It was crazy big, with lots of changes, and lots of visceral reactions. “I hate this, I hate that, I hate you.” I’m currently ignoring (most of) the people who are doing that. I get that you’re unhappy things aren’t perfect, but I’m going to put this out there: You’re being irrational.

    Tech SupportNow, it’s okay that you’re angry. I mean, your site is ‘broken’ and you’re upset. It’s justified. But from our end of helping you, it’s like trying to negotiate with a truculent five year old. You won’t listen to reason, you just want us to fix it, now, and by the way it’s totally our fault that everything broke. I don’t mollycoddle people when they start loosing their blob like that. I walk away and wait for them to comprehend reality.

    No, 3.3 isn’t ‘worse’ than 3.2. And it’s not, generally, WordPress’s fault your site broke. It’s not anyone’s fault, actually.

    Just like everyone waiting (or delaying) filing their taxes until the last day, plugin and theme developers also sometimes put off the seemingly minor task of checking their plugin or theme with the new version of WordPress. In fact, a shockingly high number wait for the release candidate. I said this before, if you make your living on WordPress, you damn well better test earlier. Sure, it makes sense that people like me (who actually don’t WordPress for a living) don’t always test in time. On the other hand, if you’re a professional, you’re remiss in your responsibility by not doing that.

    And even then, you can still miss something. My best WordPress Friends missed a bug in their plugin. They do this for a living. How did that happen? It happened to be a feature you don’t often go and change. They had tested ‘does this still work when I upgrade?’ and that was hunky dory. But this one thing that only gets used when you’re doing one specific thing, that people only use once, that wasn’t working. Oops. You can see how that got missed. They just didn’t test it. It happens, they worked out a fix, and it’ll be out soon. Those are understandable misses because you can’t test everything. Maybe they’ll make a checklist of things they must test on a major upgrade, but then again, this plugin had survived multiple other major upgrades. It’s hard to say.

    Vulcan IDICBut what about when it’s your plugin plus someone else’s theme plus the new version of WordPress? Now it’s harder, because you get an IDIC epidemic(That is possibly my favorite Star Trek novel, by the way.) with WordPress. IDIC is a Star Trek concept. The Vulcans believed in “Infinite Diversity in Infinite Combinations” which I think is a perfect way to explain the problem.

    It’s because of both the myriad complications thrown in by the incalculable customized installations that, when people say the upgrade broke them, I have to do the thing I despise and ask them “Did you read the Master List and try everything?” I actually do wince every time I paste that link in. It is with a resigned sigh that I hit enter. I don’t want to have to say that, but when I see people posting ‘It doesn’t work’ or ‘Help! My site is broken!’ without any information as to what they’ve already tried, I look at the volume of posts and assume they did nothing.

    I tweeted at one point “I’ll stop posting stock replies when you stop posting it didn’t work.”

    It’s a give and take. You have to give a little information if you expect people to help. And not one of us thinks this install is 100% rock solid perfect. 3.3.1 is already on the docket with a couple things, including putting support for people with no DB prefix.

    Invariably we’ll all find something new and horrible to add to the master list. Like this time, I had to put ‘flush all your caches’ because, when WP changed the jQuery to 1.7.1, some browsers decided they weren’t going to update the local cache like they’re supposed to. The amount that pissed me off is huge. Also, as Nacin groused, the core devs yet again missed a JSON issue. One bitten, twice WTF? as he put it.

    For the most part, the real issues people have with 3.3 aren’t technical issues, they’re user issues. People love/hate the flyout menus, the toolbar (oh dear god the tool bar) and the uploader. They hate that not all their plugins work, they hate hate hate. It’s wearing, you know. And we, the happy Half-Elf volunteers out there want to help you fix things. But if you’re not going to accept that problems are usually bigger than just WordPress, we can’t help you.

    Practice vs TheoryLike the Database needing repair, okay? Some people had to repair their DB. Guess what? This isn’t just a WordPress issue. I ran a major upgrade on a webapp for work last month, and the damn thing did the same thing! I had to repair the DB to get it to work. This is because, as I know, I’m making some major changes to a database, and if there’s any sneeze on the sturdy tubes of the Intarwebz, then I may have a weird glitch. This is why, again, I tell people to manually upgrade. These problems are cause by the upgrade, but they aren’t WordPress‘s fault. They just happen. A thousand times you add a post, and one time it causes your database to crash. That’s uncommon, but not impossible, and that is what people fail to grasp.

    You’re experiencing uncommon problems.

    Don’t Lower Your Expectations, Raise Your Understanding

    Sometimes I think people get the wrong idea when I talk about this sort of thing. You think I want you to give support people more of a break, and while I do, it’s for the same reason I want you to give your coffee barrista a break(Best coffee I’ve ever had, no lie, was when I told the overworked barrista “Take your time, if the jerk is in a rush, I’ll wait.” It cost me ten minutes, and they gave me the best coffee ever. One size larger.), or the chasier at the DMV. Treat people like people, because that’s the right thing to do.

    Instead, you should learn more. Understand more. Take the time to go “I hate this. Why did they do it?” and then, instead of making that angry shit-distributing, post, learn something. With very little effort, a person can scroll down to the Alpha/Beta forums on WordPress and see if this problem was reported before. A slightly more experienced person knows about the blogs the devs use, and one step up from that, you know trac. Trac’s a little scary when you’re new, and search it is complicated, don’t get me wrong.

    Cheat SheetBut see, the ‘geniuses’ who are helping you at all your problems? We’re just people like you. And we just have an idea of the lingo and what we’re really looking for on Google. And we would really like it if you could treat us like people before you lose your mind.

    We’d also like it if you read, and thought, before you said ‘this is broken.’ Mind you, I think that of the guys I teach to solve problems. Listen to what people say, pay attention and try to draw better explanations from them, and solve the real problem. The number of times I’ve watched people just throw a rote answer at the wrong problem drives me nuts. But so do ‘web developers’ who don’t understand what FTP is.

    If you’re going to run a website, even though apps make it easy on you, there’s no excuse for not learning what you’re doing. I don’t mean you need to learn how to write code, but just as I feel everyone needs to know how to jumpstart their car and change a tire (or patch one, if you ride a bike), it’s in your best interest to have at least a basic understanding of the magic that is the internet. And if the website is your life (as so many people on the forums short), well, then so is learning that. A chef knows how to use the fridge and sharpen knives because it’s expected of them. While a fashion designer may not be the best at sewing, they know how clothes are put together.

    See the theme here? Know what you’re doing. Understand what’s behind your art.

    Otherwise? Well, WordPress.com has fantastic hosting options and I send many people to them.