(title borrowed contextually from this tweet)

I’m really sad about this. wundergeek is closing up her blog Go Make Me a Sandwich, from which I have learned quite a lot over the years about how the gaming (both video and traditional) industry treats women both in depictions and in (lack of) inclusiveness.

She writes:

Before Origins, I ended up crying in a bathroom as I chatted with friends online about the vitriolic response to a thing that I’d written. It made me doubt myself so much that I actually wondered if it would be worthwhile going to Origins. Would I even be welcome there? (Spoiler alert: I was.) Fast forward two months to a different crisis before a different convention, which saw me crying for more than a week in the runup to that convention. Truth is, I’ve done a lot of crying about my blog in the past year. But I didn’t let myself think about that, because I had to keep moving forward. I had to keep putting one foot in front of the other. I had to keep my head above water and just. Keep. Fighting.

Or at least that’s how I was approaching things until several weeks ago, when the final straw happened. As is the way with such things, it was so small. Such a quiet thing those most community insiders, even, probably missed. Really, it doesn’t even matter what the event was. What matters is that it represented a tipping point – the moment in which I finally had to confront the fact that I haven’t felt passionate about what I do here for a long, long time. And for most of this year, I’ve felt only resentment. That this stupid blog has cost me so much, and I feel trapped by it. A victim of my own success – forever tarnished by my connection to it, and yet dependent on the income it provides, that I require because of the damage it’s done to my reputation. (See what a vicious cycle that is?) The final straw made me realize that I don’t want to do this anymore, and indeed, that I was rapidly approaching a point where I couldn’t do it anymore.

Of course, this is made harder by the fact that I hate losing. And there will be people who will celebrate, people who call this a victory, which only intensifies my feelings of defeat. My feelings of weakness. I feel like I’m giving up, and it kills me because I’m competitive! I’m contrary! Telling me not to do a thing is enough to make me want to do the thing. I don’t give up on things and I hate losing. But in this situation, I have to accept that there is no winning play. No win condition. I’m one person at war with an entire culture, and there just aren’t enough people who give a damn, and I’m not willing to continue sacrificing my health and well-being on the altar of moral obligation. If this fight is so important, then let someone else fight it for a while.

There’s a lot more on the original post, which you should read, because it underlines in very stark detail what the problem is and how pervasive it is within gaming culture.

I could share a bunch here about how I’ve read it over the years, how it helped bring these things to my attention, or how proud I always was that it was on WordPress.com (NB: I work for the company that runs WordPress.com). But I won’t.

Nor will I say that she needs to keep going, keep fighting, because at the least she has realized that doing so is not a healthy option and is choosing to cut it out of her life to move forward in other things. We should support that.

What I will say is that as a community, we need to take a look at this, realize that people within our community have chased off yet another person who stepped up and said hey, something is wrong with what we are doing and how we treat people, and realize that when we see that kind of crap behavior, we need to call it out and condemn it for what it is.

Because the more this happens, the greater the chilling effect that stops other people from raising their voices and bringing unique viewpoints to the table.

And that harms us all.

If you have worked with me in any professional capacity as a member of the WordPress.com VIP team, you’ll know that one of the things I have focused a lot of my time and attention on are data migrations using the WordPress import and export tools, and troubleshooting things along those lines.

I submitted a talk to WordCamp US regarding imports about which I have not yet heard, but even if I don’t get to make that talk, I’d like to work on a series of posts discussing things that can go wrong with imports or things that are challenging with them, just to raise awareness of these things.

At a certain scale, imports are usually done with SQL, but working with the WordPress import tools at scale has taught me some things that I believe will be valuable to WordPress imports at all levels. I have some topics already in mind that I want to approach, but for anyone who reads this or sees the tweet that I’ll push out about it, I want to ask and invite comments (or blog posts elsewhere you link me to!):

Are there any aspects of WordPress imports you’d like to see me address in these posts?

Matthew Butterick with probably the most astute and complete takedown of Medium as a platform for your writing I have read:

In truth, Medium’s main prod­uct is not a pub­lish­ing plat­form, but the pro­mo­tion of a pub­lish­ing plat­form. This pro­mo­tion brings read­ers and writ­ers onto the site. This, in turn, gen­er­ates the us­age data that’s valu­able to ad­ver­tis­ers. Boiled down, Medium is sim­ply mar­ket­ing in the ser­vice of more mar­ket­ing. It is not a “place for ideas.” It is a place for ad­ver­tis­ers. It is, there­fore, ut­terly superfluous.

“But what about all the writ­ing on Medium?” The mea­sure of su­per­fluity is not the writ­ing on Medium. Rather, it’s what Medium adds to the writ­ing. Re­call the ques­tion from above: how does Medium im­prove the In­ter­net? I haven’t seen a sin­gle story on Medium that couldn’t ex­ist equally well else­where. Nor ev­i­dence that Medium’s edit­ing and pub­lish­ing tools are a man­i­fest im­prove­ment over what you can do with other tools.

If you use it, I would personally urge you to leave Medium and take control of your writing. WordPress is easy-to-use, easy to set up, and you can put together a basic site on a host for around $100 a year or so. (If you want to give this a shot, for most beginners I usually recommend DreamHost.)

Or if you don’t want to worry about hosting and all that stuff, come host your site on WordPress.com. You own your content, you can take it with you if you leave for a self-hosted WordPress installation, and it’s backed by world-class support. (I work there; I know these people and they are the finest.)

(h/t to Matt for the link)

It’s neat the kinds of blogs that I can run into in a day of helping WordPress.com users.

So if you ever wanted to see a collection of Missed Connections posts on Craigslist specifically dealing with Walmart, this WordPress.com blog has got you covered because the author is collecting the best of them so you don’t have to.

On reading them I both do and don’t want these to be from real people instead of cleverly-written Craigslist satire. If you read the blog I am pretty sure you will be similarly conflicted.

He’s coming for you. With the spamhammer.

A little while back, Google made a pretty big change to their search algorithms with an update that they call the “Penguin” update.

Penguin was specifically designed to punish backlinkers who are using certain black hat techniques such as keyword stuffing and things like comment and article spinning. What happens is that these spammers are checking Google Webmaster Tools (or receiving email updates) and are receiving messages that their ranking is being negatively affected by spam blogs or comments they have left on WordPress.com blogs.

Then, we at WordPress.com get emails that look like this (my paraphrase):

We need to have our links removed from your website ASAP. Below are a few URLs where we found our links. This may not be all of the links on your site. Please ensure that you remove ALL links to our site.

After this they provide us with the URL of their site (it’s usually something that’s basically pure spam) and then a list of all the links they know of across the WordPress.com network. This leads me to laugh, quite often out loud, because:

  1. They have just alerted us to a spam campaign on WordPress.com and likely elsewhere and given us exactly what we need to investigate,
  2. They have just admitted to us spam comments, entire spam blogs, or even sponsored post content that exists on WordPress.com and that we are looking to get rid of anyway, and
  3. The best part about it is that if it’s not that bad we could just leave it alone, do nothing, and possibly punish the spammers more than if we were to remove everything.

It probably doesn’t sound like much to you, but it’s one of those little things that amuses me and causes me to enjoy what I do.

I just finished giving a talk at WordCamp Montreal on the differences between self-hosted WordPress and hosting on WordPress.com.

If you missed the talk, you can find the slides below and I’ll post the video as soon as it’s available. Otherwise, if you have any questions or notes from the presentation that you would like to share, please leave a comment! If you have scans or pictures of handwritten notes you’ve taken, I’d love to see them to understand how people heard what I said.

It was a pleasure to present at WordCamp Montreal—my first visit to the city. Thank you to the local WordPress community for your hospitality and for attending my talk.

Two points of which you should be made aware before you read this:

  • I work for Automattic, the parent company behind WordPress.com (so I work “here”), and
  • You should ask me about my love of baseball and the Cardinals sometime.

Through links to my own site, some random searching and perusal of the baseball tag here on WordPress.com, and looking through the tag page for Cardinal Nation (which I suggest you use if you are a blogger who is all about the Cards), I’m trying to compile a list of Cardinals-related blogs on WordPress.com. If you think your blog should be in this list, please leave me a comment and I’ll check it out.

Perhaps this should lead into a meetup or something of the sort, as it’s always awesome when WordPress peoples get together and always awesome when Cardinals fans get together, so getting those things together can only be a winning combination.

The list:

WordPress.com blogs that have moved elsewhere:

Comment if I missed you. :)

To the best of my recollection, I have been blogging in some form or another since some time in 1999. When I started, I was manually updating a site using a very old version of Dreamweaver. Later, I burned through a series of “platforms,” if you could call them that at the time. I started by rolling my own using some rudimentary ASP knowledge. I built one by harvesting posts and replies from an installation of Snitz Forums. I used LiveJournal for a while. I played with WordPress in its original release and then decided to go Movable Type instead—then ended up going back to WordPress when MT changed their licensing.

I’ve been on WordPress ever since, except for a three-month stint with Drupal that is best left in the past.

In that time, I’ve blogged, made themes, blogged some more, learned how to make basic plugins, and watched WordPress grow into what it is today. Thought I’ve had a WordPress.com account since back in the golden ticket days of the service, I was always primarily a user of self-hosted WordPress until a little less than a year ago.

Not long after I began working at Automattic and on WordPress.com full-time as a Happiness Engineer, I was looking at my personal sites and trying to determine the best thing to do with them. Shared hosting can be slow, and I was running more than one site off it. I had a very custom theme that I was pretty unhappy with because I’d rushed it and didn’t have the time to fix what I didn’t like about it.

I eventually made the decision to move both of my personal sites to WordPress.com, for a few reasons:

  • It’s better and more reliable hosting than any host within my cost reach.
  • I wanted to work with the same tools and within the same restrictions as the rest of our users.
  • It allowed me to test new features using my own content and site so I can relate them more easily in support.

When thinking about topics to write on for the Post a Day challenge, the experience of having my sites on WordPress.com kept popping into my head. It’s a great place to host a site, but there are things you sometimes need to work around because of our code or embed restrictions, and sometimes I miss certain aspects of self-hosting my sites.

On the other hand, there are plenty of advantages to hosting at WordPress.com. There are features here that are unique and either can’t be found (yet) or can’t be done easily on a self-hosted site without some serious systems mojo. I don’t have to worry about making sure everything is updated. I don’t have to worry about my host’s security track record (or lack thereof). I’ve had only a fraction of the downtime I experienced when I was self-hosting on a shared host.

So as part of my Post a Day ramblings, I want to talk about the experience of blogging on WordPress.com. What’s awesome about it? What’s frustrating about it or needs some working around? I think I’ve got some neat tricks up my sleeve for working with WordPress.com, and I’m willing to bet you do, too. You can find this post and my others regarding WordPress.com by clicking on the link in my navigation menu at the top of this page.

I encourage you to write about this as part of your trek through posting once per day this year! Let’s get the discussion going by rocking some comments! What is:

  • One thing you love about WordPress.com, or maybe the one feature that sold you on moving or starting your site here?
  • One thing that you don’t like so much about WordPress.com, and maybe wish was a bit different?

UPDATED 3/26/11: Since Sharedaddy is now bundled with Jetpack, I’m taking the opportunity to update this slightly and provide some more information. Leave a comment if you have a question!

UPDATED: Hello, self-hosted WordPress users! The plugin has been released for everyone, so I’ve updated the title of this entry to reflect that and these instructions now apply both to WordPress.com and to self-hosted blogs using the Sharedaddy plugin.

Earlier this week, the team here at Automattic released a new feature for WordPress.com that a lot of people have requested for a while now: the ability to add buttons for sharing services to the bottom of every post. (In fact, you’ll see a selection of them underneath this post. Feel free to share away.)

The service comes “pre-packaged” with a handful of buttons for the most commonly used sharing services and methods.

In the announcement post, it’s mentioned that you can add your own sharing services to the selection. If you go further and check out the support page, you’ll see that in order to add a custom sharing option, you’ll need to add certain information. Of course, every sharing service is different, so the same formula won’t work with all of them.

To add your own sharing services, you’ll need to do a little sleuthing and know how the tool works.

(Click on any screenshot in this article to see a larger version.)

Ingredients and Tools

If you go to Settings > Sharing and then click on the link in Available Services to add a new service, you’re prompted to enter three pieces of information:

  • The name of the sharing service
  • The URL needed to “push” a link to the sharing service
  • The URL of a 16×16 icon used to represent the service

All services you add using the custom settings will be “dumb” buttons; you can’t include any fancy JavaScript or buttons with counters. The buttons that are created will look like and follow the same general rules as the “dumb” buttons provided for the pre-loaded services.

Most of this is pretty straightforward. The key to getting it right is the Sharing URL. If you don’t have it right, then the service won’t receive the information it needs when someone clicks the button. You’re given five variables you can pass to the URL:

  • %post_tags%
  • %post_title%
  • %post_full_url%
  • %post_url%
  • %post_excerpt%

The first two will be used much more often than the third. Since the Sharing URL is the tricky part, let’s talk about how to discover it.

Discovering the Sharing URL

For our example, we’re going to use Delicious, since that’s one of the services people are likely to want to use and it’s a nice example of how to determine the right URL and variables to use.

The first thing you want to do is find either a site that already has a button in place for your sharing service, or a tool provided by your sharing service like a bookmarklet or a toolbar button. For instance, when you visit this page on Delicious, you’ll see several methods for getting links into the service. Since I’m using Safari, I’m going to drag the bookmarklet for sharing up into my toolbar.

Once you’ve got the bookmarklet in your toolbar, let’s say you want to save something to Delicious, like this post on Ma.tt with pictures from a recent shindig I happened to attend. (We’ll talk about Lisbon at another time.)

Visit something and then click on the bookmarklet provided. As I mentioned earlier, you can often get the same result by clicking on a button for the service on another site. What you see after you click the link or bookmarklet will look different for each service, but hopefully you’ll see something like this:

So we know what it looks like. Big deal, right? Check the URL, though. It’s this:

http://www.delicious.com/save?url=http%3A%2F%2Fma.tt%2F2010%2F08%2Fhappiness-team-in-lisbon%2F&title=Happiness%20Team%20in%20Lisbon%20—%20Matt%20Mullenweg&v=5&noui=1&jump=doclose

This is exactly what we needed to know in order to set up Delicious as a sharing service. Everything is right there.

Making It Happen

You can discard the “&jump=doclose” part of the URL without any trouble. It’s not necessary for what we’re doing.

So the base URL for sharing something on Delicious is:

http://delicious.com/save

It also takes a couple of arguments, as you can see. Everything after the question mark is a piece of data that’s being passed to the URL to give it the information it needs. There are two chunks here: “url” and “title.” It just so happens that we have the tools we need to fill all that in for our readers.

So since Delicious needs this:

http://delicious.com/save?url=something&title=something

All we need to do is enter this into our Sharing URL field like so:

http://delicious.com/save?url=%post_url%&title=%post_title%

Bingo. So go into Settings > Sharing, and fill in everything. The title is easy; that’s “Delicious.” You know now what to enter for the URL (you can just copy the one above). You’ll also need an image, and it just so happens that I have a perfectly good one from Delicious here.

Save your settings, drag your new service into the Active area, and then save your sharing options. When you go out to your posts, you’ll see:

Clicking on the Delicious link will open up the link addition form, just like the bookmarklet we used above.

Easy? Once you understand how to find the information you need, constructing new Sharing buttons is pretty simple. If you have any questions or comments, please feel free to leave them below.

You can also read my follow-up post, where I’m collecting the specifics needed to configure various sharing services with ShareDaddy.

For a project I’m working on, I wanted to take the sidebar in Twenty Ten and move it to the left side instead of the default. I played with it for a while and received some help from my colleague Ian Stewart, who kindly pointed out that I’d typo’d a CSS comment. (That wasn’t completely embarrassing.)

Turned out that at one point I’d had it and didn’t know it. Thanks again, Ian.

To post for my own recall and for anyone who might be looking to do it, here’s what to add to your WordPress.com Custom CSS if you’d like a left sidebar:

/* LAYOUT: Two columns-reversed
   DESCRIPTION: Two-column fixed layout with one sidebar LEFT of content */

#container {
float:right;
width:100%;
margin:0 0 0 -240px;
padding:1em 0;
}

#content {
margin:0 20px 0 280px;
}

#primary,#secondary {
float:left;
overflow:hidden;
width:220px;
}