Half-Elf on Tech

Thoughts From a Professional Lesbian

Tag: essay

  • You’re Wrong about Open Source Development

    You’re Wrong about Open Source Development

    We like to say that the ‘customer’ is always right. But when it comes to open-source products, the line between customer and developer is blurred. I joke that I’m not the owner of code, I’m the custodian, and by fielding questions from users and other developers, I turn that into a better product. There’s more and more calls for people like me by the way. A non-insignificant number of companies ask me “Is there someone else like you who would want to work for us?” because giving good support is hard, it’s a weird skill set, and it requires the ability to tell someone “I’m sorry, but that’s just not correct.”

    Yes, I tell people they’re wrong a lot. When I say it, I try to couch it in more friendly terms like “I understand why you’d think that, however because of XYZ the product chose to do ABC.” Or maybe even “That would be great, but historical support forces us to do that in a way that would remain backwards compatible. It would suck if we broke everyone going forward, right?” See the point here is that you’re not right but you’re not exactly wrong either, you’re just isolated in view.

    Well that escalated quicklyTunnel vision is something that happens to all of us. We look at the world from our perspective (yes, I was Captain Obvious there, I know), which means when most people remark that a project needs something, what they really mean is they need it. This is the part of passion that escalates into angry and vitriol remarkably fast, by the way, so if you’ve ever seen someone go from zero to abusive in three comments, that’s often what’s going on. They really want something to the point that they see red and can’t get out of their tunnel.

    Getting back to the rational world is hard, especially if you don’t really understand what it means to develop open source. You may think the developers are ignorant of their users, or out of touch, or don’t care. After all, if open source allows anyone to contribute, why doesn’t a project do everything?

    Well besides the fact that it can’t do everything, there are four main reasons a project doesn’t do things the way you it to. This doesn’t mean you’re right or wrong. Being wrong doesn’t mean you are wrong. It’s pretty hard to ever hear ‘wrong’ and not take it a little personally, though. Just keep in mind the reality that most Open Source developers are way more in touch with their users than people behind iOS or Microsoft Word. They just move at a different pace.

    Support

    The people who write the code have to support the people who don’t (or can’t). If they don’t want to support certain code, they shouldn’t have to. After all, what if they don’t feel confident that they can!? If you ask a developer to put in a feature they don’t use and don’t really understand, what happens when it breaks? I always tell people “You can’t support what you don’t know, and you can’t know what you don’t use.” This is why everyone who’s been through my WordPress training is pushed to actually use WordPress. Supporting something is so much easier if you use it. Thankfully all WordPress developers use the product every single day, so they know what it’s like.

    Complications

    The code is something everyone wants, but it’s too damn hard to code and remain backwards compatible, which is a huge deal for WordPress. A good example of this kind of thing would be WordPress Multisite’s shift from using /blogs.dir/ to /uploads/ for storing uploads. Doing this allowed us to dump MS Files and speed up WordPress because we’re no longer routing images through PHP (lots of benefits there). It came at the cost of losing the ‘hide’ effect of the /files/ URL, but you weren’t really fooling anyone about that anyway. Point being, we had to do this in a way that didn’t break everyone on an older design of WP! That took a lot of time!

    Time

    It takes a lot of time to get code right. So maybe they’re actually working on it, but it’s going to take a long time and it’s not done yet. Open Source moves at the speed of imagination and passion, so if a developer has the time and the itch, things get done. Some tasks are pure drudgery, which brings us to …

    Feelings

    This is Open Source (ala Sparta Meme)If you’re stuck between writing code you like to do a feature you want and writing code someone else wants and you don’t have an investment in, you’re probably going to do what you want. This is the reason that’s hardest to understand, and it’s the one most people call ‘unprofessional’ because it boils down to “Oh you don’t like something so you’re not doing it?” If this was iOS or MS Word, yeah, you’d get fired. But this is Open Source, and the rules are a little different here. We make what we make out of that same passion you have to see what you want to see.

    So … why not what I want?

    Because not yet. Maybe never. But WordPress was built to be extendable, not to be everything for everyone all the time. And that’s the beauty of it. But that’s another post altogether.

  • Embedding Videos from TVGuide

    Embedding Videos from TVGuide

    This one goes out to my fellow fansites.

    TV Guide LogoThere are a lot of you guys who use WordPress (probably that’s my fault) and like me, you bash your head in when a news source makes a video embedable, but only if you use their code. Why is this a problem? Most of us like using WP’s visual editor, and that means we have to switch to text mode, paste this in, and then never ever ever visit that page in the visual editor again:

    <script src="http://player.ooyala.com/player.js?width=600&amp;amp;video_pcode=VlajQ6DTdv9-OYPHSJq6w4eU0Bfi&amp;amp;embedCode=NwdzM3aDp4BB3-MEdPemlMJK5XH7ZVdn&amp;amp;height=337&amp;amp;deepLinkEmbedCode=NwdzM3aDp4BB3-MEdPemlMJK5XH7ZVdn"></script>
    

    Augh!

    In part this is because WordPress uses TinyMCE for editing GUI-like, and switching between visual and text mode kills things. But on the other hand, how come we can just paste in a YouTube URL and that works? Well it’s a magical thing called Embeds, and basically WordPress sees that URL for YouTube and knows “OH, I should be a video and YouTube has a special code on it’s sever to tell me how to display it! Yay!”

    Not everyone has that. TV Guide, CBS, etc. I’m looking at you. Where this makes sense is where they do not want you to embed a video because they want the traffic to themselves, which is fine. We can link. But where it’s daft is when they make it embeddable, give you that link, but it’s flipping ugly and can’t be used in the visual editor!

    For TV Guide, at least, there’s a fix. Ooyala Video Browser.

    While the search function doesn’t work ‘great’ right now, probably because I’m searching for their videos with the wrong keywords, but still I was able to embed a video like this:

    [ooyala code="NwdzM3aDp4BB3-MEdPemlMJK5XH7ZVdn" player_id="undefined"]
    

    The ‘code’ is the ’embedCode’ from the embed they gave me before.

    I can also use this:

    [ooyala code="NwdzM3aDp4BB3-MEdPemlMJK5XH7ZVdn" player_id=&"VlajQ6DTdv9-OYPHSJq6w4eU0Bfi"]
    

    Using ‘video_pcode’ for ‘player_id’

    So this wasn’t super obvious, and personally I would love it if Ooyala had an oembed and then a ‘share this on WordPress’ link for things, but seeing as Automattic (and Pete! Hi Pete!) helped with the plugin, this may be as good as it gets for now. Maybe they could marry it into the Media Uploader, below ‘Insert from URL’ – have ‘Insert from Ooyala’. Dreams. I haz them.

    There’s a lot to this plugin that I didn’t need, though. After all, since I don’t have an account, I don’t need all the search stuff, so I stripped it down to just this (which is an mu-plugin):

    /**
     * Ooyala Shortcodes
     * Usually for crap like TV Guide
     * Example: [ooyala video_pcode="VlajQ6DTdv9-OYPHSJq6w4eU0Bfi" width="222" embedCode="NwdzM3aDp4BB3-MEdPemlMJK5XH7ZVdn"]
     */
    add_shortcode( 'ooyala', 'ooyala_shortcode' );
    
    function ooyala_shortcode( $atts ) {
    	extract(shortcode_atts(array(
    		'width' => '500',
    		'video_pcode' => '',
    		'embedcode' => '',
    		), $atts
    	));
    
    	$width = (int) $width;
    	$height = floor( $width*9/16 );
    		
    	if ( !is_feed() ) {
    		$output = '<script src="http://player.ooyala.com/player.js?video_pcode='.$video_pcode.'&amp;width='.$width.'&amp;deepLinkEmbedCode='.$embedcode.'&amp;height='.$height.'&amp;embedCode='.$embedcode.'"></script>';
    	} elseif ( $options['show_in_feed']  ) {
    		$output = __('[There is a video that cannot be displayed in this feed. ', 'ooyalavideo').'<a href="'.get_permalink().'">'.__('Visit the blog entry to see the video.]','ooyalavideo').'</a>';
    	}
    	return $output;
    }
    

    And that is that!

  • The Responsibility of Freedom

    The Responsibility of Freedom

    I’m sure you know there are clubs out there that re-sell WordPress products at a far lower cost than their original source. This post is not about that being right or wrong via the GPL, nor is it about the morality.

    This post is about responsibility.

    In my home office hangs a poster “Flynn Lives” which I have to constantly remind me “I fight for the users.” It’s a nerd level joke most of my fellow developers and support gurus get, but many people I help would not understand the point. My job, as a WordPress Support Guru, is to help people. This is simple, straightforward, and obvious.

    My other job, though, is to make their lives easier and better. It’s my responsibility, when I write code, to make it do something to make someone’s life easier. Even if the only person it helps is me, the point is that someone is being helped. If it’s just me, it’s really easy to support myself. “Hey, Ipstenu, you know this broke?” “Yeah, added to my list!” But when it’s someone else, how does that change?

    I firmly believe there’s an expectation of support with all plugins and themes hosted in the WordPress.org repository. Period. That means, yes, I have code I don’t put up there because I don’t care to support it. But I know that expectation puts responsibility on me as more than just “Someone who writes code.” I can’t just write code, drop it into the world, and never support it.

    “But Ipstenu,” I hear you say. “Isn’t that what WordPress.org does? It just dumps WP into the world. I never see the devs in the forums!”

    You’re not WordPress.org. You’re not that big, that complex, and that intricate. Unless you’re BuddyPress-levels of plugins, and you’ll notice they have support forums. Instead of directly supporting WP, the core devs of WordPress who are dedicated to WordPress have people like me, who traipse about the forums and help. And when I see broken things, I either take it to trac or help the person who found it do so. My determining line is “Can I fix it? Okay, I’ll trac it and patch it.” If I can’t, I help them. Low hanging fruit.

    The point here is that all this wonderful software came with a responsibility to make it great and help people. What does this have to do with sites like those Justice League Clubs that offer cheap/free versions of pay-wall’d software? They’re not helping you.

    FreedomOh, in the short term they’re helping you by giving you something for free. They’re getting you further in your site development than ever before. However that help ends at the provisioning level, because you aren’t paying for support from these resellers, you’re paying for product. That’s okay, so long as you know what you’re paying for, and a lot of people don’t. If people did know what they were paying for, they wouldn’t use nulled themes with base64 backdoors in them.

    The ethics and morals of reselling someone else’s work aren’t at play here. Yours are yours, mine are mine, and that’s just fine. What is at play is what are we paying for, what are we providing, and what are we devaluing when we resell someone else’s product?

    Devaluing is the easier one. People sell products at cost in order to make money. It’s simple. I work for a company that sells space on a computer and world wide availability from anyone to that space. We sell it at a price that allows us to make money, but also that allows us to hire amazing people like me who work on WordPress, write some of the code, test it, and otherwise spend all this time on WordPress, just because it’s software you use!

    The value of the product is, again, not just in the product, but in the service. And the service is more than just access and accessibility, but also in the support you get. No matter what people think, we aren’t just rolling around in money and laughing at you. We reinvest that money in ourselves, our hardware, the software (some of which we give to you). But what we always do is support that. Sometimes the support isn’t what you want to hear, but we do our best to solve problems, or explain why we can’t.

    So what are you paying for? Support! In the end, you’re pretty much always paying for support. You buy Microsoft Office and you don’t get the kind of support you get with WordPress, but you pay a lot more money. Where’s the support? When Word crashes, it sends (or asks you if it can send) a report back. That report gets noticed and acted on so that if it’s solvable, it’s solved. The next upgrade you get has a patch, and that crash doesn’t happen again. That’s support!

    You can also get actual support from Microsoft (though I know of no one who’s done so). They have people who write fantastic help docs and who monitor their forums and twitter. If you took Word (let’s pretend that was legal) and resold it, would you have all that?

    But that’s a quite extreme example. WordPress plugins are significantly smaller in scale than MS Office. So why is Office (and Adobe Photoshop etc) so expensive if they don’t give you half the help that the free WordPress product does? There are a lot of reasons. Patents and copyright are expensive, and frankly we’re all willing to pay for it. When Apple dropped the price of the new OS down from hundreds to $25, we were all suspicious. When it became free, we flipped out.

    But Apple wisely noted that making us pay that much money wasn’t helping them as much as it might. Free gives you a certain brand loyalty because we get to try before we buy. And we will buy those apps and those app add-ons (though I don’t fully approve of games that force you to pay to play all the time). We buy them because after we get the base product for free, we see the real value in the cost of the other products and we’ll pay for them willingly. Apple takes responsibility for their free software in interesting ways. We have to pay for assistance (most of us via the Genius Bar). And in the WordPress ecosystem, that too is what you pay for. The help.

    Broken windowSo back to this whole “I’ll take your paid software and give it away” thing.

    What are we paying for? I’ve heard tell that ‘Paying for support’ is a rip off. So is paying for documentation. I can see why some people balk at paying $25 a year for ‘support’ they may not ever need, and I’ve seen some companies work by letting you pay per-ticket. Though that makes people feel like you’re nickel-and-diming them, and I do agree it can come across that way. And yet that support which they so casually toss aside like an old shoe is where these free-software-clubs fall down.

    There is one club that says they will support all the plugins they re-host. Many of us are suspect at the possibility of that actually working well, though given the odds of how small their sales will be to start with, it may end up sustainable. The problem is that they’re not going to be patching upstream. They’ll fix your issue, and then when the real source pushes the next version, they get to reapply their patches. Strikes me as a lot of work.

    Is the payment system for some WordPress plugins and themes broken? I don’t think so. I think it’s not optimal for the user nor for the developers just yet, but monetizing these things is still relatively young. There will be mistakes and bad choices along the way. Finding the balance between the freedom of the GPL and the desire to make a living is difficult.

    The ultimate responsibility we have with WordPress is to give back. We give back with support and with improving things for everyone. If we’re just doing things for ourselves, after all, we don’t share them. Are these clubs failing in those responsibilities? Not yet. But all eyes will be on them if they do.

  • WordPress’ SEO Sucks

    WordPress’ SEO Sucks

    “what to say when someone asks you to suck them off”

    Not the sort of term anyone would really associate with this site. So imagine my surprise when I saw my search stats in Jetpack:

    Search Engine Terms

    That sentence is at the end of my list of Search Engine Terms. I tweeted that I was astounded, and wondered how far down the SEO hole one had to traipse to find my site. As it turns out, not very far at all:

    Search Results for that sentence

    Fourth. That’s it. That’s how high I ranked. So the next logical question would be to ask what I did to make my site rate that high on random searches? Nothing. I don’t have anything ‘special’ on this site. I have a good theme, certainly, but I don’t use any WordPress SEO plugins, and in fact, I’ve never (until now) used “what to say when someone asks you to suck them off” like that, all in a row.

    What’s the magic?

    It’s not WordPress.

    What Makes WordPress so darned Awesome (by Jen Mylo)
    What Makes WordPress so darned Awesome (by Jen Mylo)

    That is, it is and it isn’t WordPress. WordPress is SEO optimized out of the box, and your content totally matters. And it’s content that probably landed me so high. You take good content, you add in people linking to your content, you promote yourself with friends who pass it on, and magically your hard work becomes content!

    Last week someone told me they wanted to “automate the posting of [original] content” and I was completely bewildered at the concept. The issue, as I understood it, was that posting original content to 100 blogs meant writing original content 100 times. And you can’t automate that. By definition, posting unique posts means … you make unique (aka different) posts. This person went on to say it was time consuming to make 100 posts and create 100 custom links to them. I sat back and blinked a few times, and thought “Well, yeah.”

    I say it over and over. A website is work. If people could magically install WordPress and boom, money, then I wouldn’t have a job helping people speed up sites or debug strange conflicts, or a million other weird things I do every day. WordPress can make publishing on the web a heck of a lot easier, but it will never be effortless because effort is what makes your site amazing. Effort and attention are crucial to keeping your site going.

    file000864867744Every time I hear about someone trying to find the quick and easy way around content creation, I shake my head. There isn’t a quick way, there isn’t an easy way, and there isn’t a simple way. Unless you like writing and think that it’s any of those things. But even then, you can’t just write and expect magic to happen. You have to write, and customize, and care, and water, and fertilize your website.

    So how did my site get ranked so highly about sex when it’s about tech? If you read the post that got linked, it’s about how you suck. “My question is you suck” is the title, and in there, I talk about what to say when someone says you suck. It’s actually a pretty logical result, when you think about it for a moment. But because enough people link to me, and enough people used the word ‘suck’ in their links, and enough people shared the link, I’m respected by google and score crazy high on a totally non-relevant search.

    That’s how you work the system.

    Sorry about that, to everyone who is vastly disappointed, having come here via the search result.

  • I Hate WP Here

    I Hate WP Here

    I’m probably going to piss a lot of people off with this longer post, so let me make this clear from the start: the post is long, and any comments I deem inappropriate, overly angry, or totally off the point (like rants about why the 3.8 design sucks or why the updater is evil), will be deleted. This is my website. You can rant on yours, thank you.

    So here’s the deal. I get it. I really do. The change in the WordPress.org back end, the new admin dashboard, is dramatic, bold, and not universally embraced.

    Introducing a modern new design (overview from WP's about page)

    And I get that the updater isn’t something people love. Though to be honest, the volume of people who did not notice the 3.7 to 3.7.1 update, but are livid over the 3.8 to 3.8.1 update perplex me. Where were you in the end of October when we last had an auto-update?

    People have passions and they are general vocal about it. I’ve had so many conversations like this:

    Isn’t that beautiful, easier to read, potentially colorful, admin dashboard wonderful? Oh wait, you find it ugly, harder to read, and too colorful? But … the design works so well with a mobile phone! You use the iOS app? The colors man! You don’t like black? That’s okay! Colors! See you just go to your user profile and pick a different one. I like Ecto… what? It’s not the colors? You just hate it?

    I’m not putting a picture of Aaron Jorbin up here, but you know the drill. And I get it, I really do. The change was big and it’s never going to be something loved by all. But let me quote something for you:

    I agree with a lot of users too that the changes to the admin dash interface are not up to par, like some of the buttons
    […]

    The defense is that new users will love it because they don’t know better? That’s rather weak considering the millions of people installed base that still want to work with WordPress.

    Also, calling the old UI “insanely stupid” and loving the new one makes me suspect you really don’t know what you are talking about or you are really involved in this. What is it?

    […]

    I’m going to stick my neck out on this issue and say that it has ruined the whole blogging experience for me. The UI was the best feature of WordPress, it’s the bit that bloggers know and love for being an ace bit of kit.

    Those are all quotes from the topic “2.5 admin backend annoying” posted in 2009. That was when WordPress last had a totally massive, top down overhaul of the back end. And boy howdy did people have a strong reaction to it. The answer we had back then is actually the same as we had five years ago, and it’s not “Tough titties” (as Taffy would say). “Use a plugin to change it.”

    Right now the vocal minority of people who hate the new WP dashboard will need to make do with customizing their experience using plugins. Which is a whole ‘nother post in and of itself why plugins are good, and that isn’t the point here.

    The point here is that WordPress is probably not going back to the pre-3.8 design, nor will it be dropping the auto-updates. This was not a change made in a vacuum. It was tested by early adopters on WordPress.com (who were actually flipped over to this in June) as well as beta testers of WordPress core. The odds are, while improvements to address some of the visibility issues and functionality problems will be made, the direction of WordPress will remain forward, not backwards.

    While people who really hate these changes are pretty vocal about it, it’s actually nothing new if you look back to 2.5 and how it’s redesign was received, or if you look at the failed 2.3 redesign (Shuttle) and how well that went off. And when you consider that in Wordpress 2.7, when we introduced the ‘one click’ updater for core, and how many people hated that, it’s rather astounding we ever get anywhere at all. I hate saying “Just give it a shot!” and “Cope” but that’s really kind of where we are here because of people being irrational about new features in general. And who is being irrational? Two main groups: the people who hate it, and the staunch defenders who did not write it.

    The people who hate it, well, I covered that. The people who didn’t write it though, and to some extend these are people who didn’t actively or vocally work on testing and bug catching either, are the people in the support forums who mean really well, but are getting testy and snide and cranky. You know why the haters are upset, they’re having an emotional reaction. The supporters are angry because they get angry haters all the live long day, and snap back. It’s a vicious circle.

    With all the new features of WP 3.7 and 3.8, there was a lot of work. Months and months of work, testing, breaking, fixing, testing again, and finally you reach a point where you have to remember this: No matter what you do, your change will break someone’s workflow.

    There are probably children out there holding down spacebar to stay warm in the winter! YOUR UPDATE MURDERS CHILDREN.

    Change happens. We don’t always like it, we don’t always agree with all of it, but change is, inherently, a good thing. Even if everyone hates it, it helps us decide the direction of our passion and where we want it to be aimed. Take all that anger and think about what it actually means and how you can take it to improve things for more people. Because we’re talking about an open source product that you’re using, for free, that makes your life better. It makes it easier to manage websites, it makes it easier to get a job, and it makes it easier to do what you want. That doesn’t mean it will always do it exactly how you want it to, though. Even I have parts of the new features I dislike.

    But. What makes me and my dislike different from people who get angry are two things. First and foremost, I can recognize when I am angry, and when I do sense it, I walk away. I don’t reply. I leave the room. Even though it’s my job, to some extent, to talk to people about this stuff, I will hand things over to others, or beseech assistance in wording. The second thing is that I chose to be part of the progress and stick my toe in the water to try and change WordPress in a direction I prefer.

    This doesn’t mean I’m better than people who get angry. My lack of fire in some places leads to me not being the sort who champions new directions that often. You’ll notice I’m a community type rep, and not a core-plugin one. That’s why. But what I share with the people who change the world is a desire to funnel our hate into something productive and positive. I see something I dislike and I study it to understand it, why it was done, and since this is open source, suggest changes. I try to back them up with fact when I can, and logic when I can’t find enough fact. I strive to make things improved.

    I feel it’s better that way, and I sleep a lot better at night then when I was just angry all the time.

  • Copyleft

    Copyleft

    I’ve seen a lot of people doing an un-copyright, including Brian Gardner who did it (in part) to simplify his life.

    Our pervasive permission culture.
    Our pervasive permission culture. Via Mimi and Eunice

    While I’m a huge proponent of ‘Give it away’ (see all my ebooks), I also retain copyright on my creations for a reason, and it’s curiously the same reason why Brian (and Leo Babuta) don’t. Let me quote Leo:

    I’m not a big fan of copyright laws, especially as they’re being applied by corporations, used to crack down on the little guys so they can continue their large profits.

    I’m not the big guy. I’m the little guy. I want to protect what I created not for miles of profit, but because attribution is critical to my end goal of “obscurity.” That is to say the rationale behind my ebook philosophy of “Pay what you want” is that if people don’t know about a thing, they won’t buy/use a thing. Where as if people do know, and can find, a thing, they will use it.

    As I said, and as Cory Doctrow says: People don’t not buy a book because it was free, they don’t buy a book because they don’t know about the book.

    So if I remove copyright, and no one has to credit me, then no one knows about me and they can’t come back and get WordPress Multisite 110, or WordPress Bookstore and learn more. They can’t find this blog and get even more, free, tidbits about WordPress and computers and business and whatever else they use this site for. In short, without attribution, people can’t learn any more from me because they don’t know about me.

    As confusing as this can be, I’m okay with you taking my stuff and giving it away for free. But I do want you to say “I got this from halfelf.org” so that you pass on not just the information to the next guy, but the ability for them to find more information. The knowledge, not just the information, is key here. Taking my work and presenting it as your own gives information, but it does not teach knowledge, nor does it enable anyone to learn and go forward because you’re throttling their resources.

    Copyright isn’t about protecting the bug guy for me, it’s about protecting you from the big guy. It’s about making sure you know, and the next person knows where the information came from and how to resource it. Encyclopedias give away information, but the reason they’re amazing is that they give you the ability to gain knowledge from the information.

    Copyright is my encyclopedia. It’s forcing you to keep credit/attribution, which gives you information and the ability to gain further knowledge from it. It protects me, but that’s incidental in that it helps you. And if it can keep the big guys from stealing my stuff and presenting it as their own, then everyone wins.