Half-Elf on Tech

Thoughts From a Professional Lesbian

Tag: essay

  • Change Your Code

    Change Your Code

    “Should I Recode?”

    Old Code (Lock)A piece of spam comment made me think about this, recently. The spam was along the lines of “My developer wants me to switch from .NET to PHP but….” I deleted it at that point, but it made me think about my father. My father wrote some software called Riskman, which is still being used today. And it’s written in Visual Basic.

    I don’t know how familiar you are with that, but Visual Basic was written in 1991, around the time my younger brother was born. Sometime around the mid 90s, Dad took Riskman (DOS) and made it VB’d. I remember this as I was in high school and my father explained some of the theory of programing to me (the basic math part at least), and is part of why I took some computer classes in college.

    But that was over twenty years ago, and VB 6 (the last version) was written in 1995.

    “You’ve Come A Long Way, Baby”

    When I was growing up, my grandmother Taffy ran her own business, and in the front office she had posters of the old Virginia Slims ads. I never asked her why. Among the many things Taffy did, however, she had a computer system at her company. This was crazy rare and crazy expensive at the time. In fact, it was so weird that when they went to get a loan for the computer server room, the bank asked “IBM who?”

    But they persevered, got the money and the servers, and kept going until the early 1990s, when Taffy sold the company to Capezio, computers and all. In between, they had direct dial-up on Novatel phones, which I quickly mastered at a young age, in order than I could handle data entry and Taffy could make me breakfast. Taffy changed with the times. She moved forward as it was needed, and was ahead of the curve in some things.

    The Only Constant is Change

    If you didn’t see Jen Mylo’s keynote speech at WordCamp Portland, check it out.

    Websites change. Design styles change. What’s ‘cool’ changes. The logical extension? Code changes.

    CHANGEIt’s nearly 2014 and my father is still coding in VB 6. I had to help scrounge him up a copy of it with a license when he had to reinstall it on his new laptop. It was monumental. At the time, I asked him why he didn’t upgrade to .NET and he replied that he’d have to recode everything. This means mastering a new programing style and possibly language. My father’s in his 60s and he’s gotten a little curmudgeony about this stuff.

    But at the same time I pointed out a horrible fact. One day Microsoft was going to release an operating system that didn’t work with old VB apps. Sure, an executable is an executable, but one day that old EXE won’t work right. Worse, you look like you’re not keeping up with the times, that you’re not adapting to the changing landscape, and for a risk analytics programmer, this may be critical.

    Code Changes

    Perhaps ironically, Dad asked me about what he’d have to do to make his app work on an iPad, and we discussed data storage, the cloud, and how to keep data in sync between devices. I showed him Byword, which stores my data and downloads it locally when I need it to. He started to look to the future of how people will use his program. They’re not just sitting in cubicles anymore, they’re in the field wanting to update stats on the fly and be able to communicate, then and there, the risks.

    He knows coding it all up for iOS is monumental. Unlike .NET, there’s no vaguely similar comfort level to the new language. This is a massive undertaking, and it brings up the question of if he should learn it, hire an expert, or get a new partner. For 20 years, this has been a one-man shop with the code, and bringing in someone new is a major undertaking.

    My first ‘big’ WordPress plugin sucks. I love Disabler, but I want to sit and recode it with classes and singletons and using the options table properly. It’s a massive undertaking, and I’ve been putting it off for a long time. No reason other than it’s hard. If more people used the plugin, I’d probably do it now because there would be a driving need. In that way, I’m like my Dad. I don’t want to learn all the things I need to do what I’d have to do to fix it, and it’s not broken so why bother? And like my Dad, I do consider the future, where it will take me, and what that all implies.

    Should you change your code?

    Keep Calm and Iterate OnChanging your code to improve it to meet the current standards is not a requirement for all of us. As an idealistic goal, yes, we should all strive for it, but realistically we are a limited resource. Should you totally change all your code from VB 6 to .NET? One day, maybe, if that’s where your clientele go, yes. At the same time, even if you choose not to change your code, you should keep an open mind. The future comes at you pretty damn fast, and sticking your head in the sand just because it works today will end badly.

    You should change. You should grow, change, learn, expand, and improve. As we like to say here in Open Source “Release and iterate.” Don’t settle, but also don’t change needlessly.

    The best changes are the ones you don’t notice because they feel like they’ve been there all along.

  • Facebook: Scam Artist

    Facebook: Scam Artist

    Stop me if you’ve heard this one…

    “Gain 500 likes! Just use our service!” or maybe “Click here to read how to get 1000 followers!

    If you’re like me, you hear that, laugh at the silly scammers, delete/block as spam, and move on.

    But … what about when you get this in your notifications:

    likes

    That’s not spam, it’s not a scam*, and it’s terrifying to consider. Facebook is sending me, as a ‘page’ owner, a suggestion that the only way to increase my likes (i.e. my presence on Facebook), is to pay them.

    Greed is Good

    I need to stop and tell you that I have absolutely no problem paying for things. Facebook provides a free service, and if they want me to pay them to promote my wares above and beyond the word-of-mouth business I’m doing, that’s awesome! Same with Twitter. These are business, and I’m totally copacetic, no, I’m totally in favor of paying them for above-and-beyond. Do I, as a user, like those ads? Generally no. But do I, as a business, appreciate them? Hell yes!

    And there in is the line between the goals. As a user, my goal is to do what I want without a hassle. As a business, my goal is to get users to interact with me to convert them into users on my site, and thus profit like an Underpants Gnome. The reality is, of course, not that simple, but as we like to say, there ain’t no such thing as a free lunch. The dichotomy of social media is never more apparent then when I want to put on my business hat and try and evaluate the usefulness of any marketing campaign.

    Blackmail is Bad

    There is, however, a major difference between being “greedy” (asking people to pay extra for extra things) and what Facebook is actually doing. You see, Facebook intentionally throttles you. Facebook stops a large percentage of your traffic from reaching the people you follow. I wrote that a year ago, and guess what? It’s still true. So what they’ve done is create a false economy. This is not like virtual gold farming, where I pay someone to mine for junk on a game, and turn around and sell it at a higher price. That actually makes a certain amount of sense in an open economy. Instead, Facebook is creating a situation where your hard work is absolutely meaningless, and the only way to get what you want is to pay.

    At least with Gold Farming, if I wanted to put in the time and effort, I could see the same results.

    Director of Product Marketing for Facebook, Brian Boland, told TechCrunch back in 2012 that their behavior of only letting 12% of people who follow your business see your post isn’t bad, because “… there are pieces of content you create that are interesting, and there’s some that are not.” (Your Average Facebook Post Only Reaches 12% Of Your Friends – TechCrunch, Feb 29, 2012.) I don’t know about you, but that doesn’t make me happy. Someone else is deciding if something I said was interesting or not?

    Viral is Voted On

    facebook-adsThe way we expect social media to work is like this: I make a post, people who follow me like it and repost it via likes or retweets, so people who follow them see it, read it, and the circle continues. So to many of us, it’s outright galling to hear that Facebook has always decided what is and isn’t ‘interesting’ and promoted your crap accordingly. Essentially they’re using Edgerank to decide if your content is worth sharing. The catch-22 of course is there is a practical limit to how organically you can increase your Edgerank score. That means to get higher, you have to pay, and now we’re back to blackmail.

    Now I, as a user, can change my feed to sort by ‘recent posts’ and not ‘most popular.’ And I, as a business, can write ‘more engaging’ posts and get my engagement (this is a technical FB term) up. I can get a pretty high engagement by posting at the right target audiences, and using catchy titles/content (which I do anyway). But it’s unclear, to say the least, that these things are happening! Had I not read the first article about the 12%, I wouldn’t have known to look for the others and see this was always the case and how to ‘fix it.’

    By the way, I don’t think requiring a user to make a change is a fix, I think that’s a cop out. Also that change resets every time you log in, or reopen your browser. Just like the chat setting I turn off every other week. Clearly Facebook ‘knows best.’

    Expectations are Engineered

    This reminds me of a story my friend Yesenia Sotelo (of SmartCause Digital told me: Why Charity Engine Quit Facebook. When I read that article, I was amazed that they had ever treated Facebook like an email list. You see, what they used to do was send a message directly their followers about news and services, using Facebook messages as their page. After all, people opt in to liking your page, so only people who wanted to communicate with you would do that, right? Nope!

    We want you to connect with your fans in the most effective way possible. That’s why as of September 30 you’ll no longer be able to send updates to fans using Facebook Messages. The best way to make sure your content is seen is to post it on your Wall so people see your updates in their news feed.

    Interesting how that’s not ‘effective’ isn’t it? That’s right up there next to Facebook telling me they know what content of mine is interesting before any human gets to interact. I don’t believe their AI is that smart. Popularity is not just math, it’s got to do with the pulse of reality as well as the flavor of the day. Release your product on the same day as a natural disaster? Poor timing, and you probably won’t be as ‘interesting’ as the time you release your new Dodgers themed product the day they clinch a playoff berth. Those aren’t things you can bank on, of course.

    Truth is Terrible

    The truth is this: Trust no one.

    Facebook’s bottom line is not yours. Neither is Google’s or Twitter’s. If, for now, your goals align with theirs, then great. But remember you’re not their audience, you’re their prospective customer, and you get what you pay for with them.

  • Who’s Following Me Anyway

    Who’s Following Me Anyway

    There are two basic ways to deal with tracking people who follow you on the internet: don’t do it or overdo it.

    In a recent post, Brian Gardner talked about embracing his unsubscribers, as he noticed a number of people un-subbing after he posted a personal post on his personal site. Since then, my friends and followers have asked me about how I feel, and I’ve had to explain that my basic philosophy of ‘tracking’ followers is this: I don’t.

    Now this doesn’t mean I don’t keep tabs on metrics and browsers and the like, to know how to appeal to my readers, but it means the raw numbers, like how many people read a post, are by in large ignored. Except sometimes they’re not. At that point, I agreed that my methodology was complicated, and needed a blog post. So here’s when I do and when I don’t and why I do or don’t as needed.

    It’s Personal

    messing with your statisticsFor the most part, I don’t track visitors on personal sites. I don’t track metrics. I couldn’t tell you who follows my blog on ipstenu.org, and I don’t really care. It’s my personal blog where I’ve decided to write for me, so if I track anything at all, it’s what browsers. A lot of people read the site on an iPhone? Okay, better have a good theme for that! One person is still using Netscape? Forget about ’em.(Sorry Mr. Netscape. It’s 2013, the Internet called and wants you to upgrade.) I never pay attention to the number of my followers on my personal social media accounts. Facebook, Twitter, whatever. I know who I’m following. When you stop being entertaining/interesting/enjoyable, I unfollow. It’s all just me being me for me. You’re welcome to read along, but it’s a personal site for personal people.

    It’s Technical

    Okay, so what about my professional sites? Well, I do and I don’t follow along, depending on how professional the site is. Take this site, for example. While this is certainly my more professional site (I initially split it out because my family reads the main blog and didn’t care about tech babble), I don’t have a dedicated Twitter account for it, or a Facebook fan page. It’s just another aspect of me. I do track metrics here, though. It matters a little more when I’m presenting content for education. I want to make sure everyone can read the site, get the data they need, and move on. And I do keep tabs on my subscription numbers a little, but I don’t actively watch who signs up and who leaves. The way I figure it, if you find the information valuable, you read.

    The only times I’ve ever actually noticed traffic here was when Matt Mullenweg linked here and I got a massive uptick of rabid folks pissed off that I’d used the naming of Constantinople as a metaphor (you’re welcome for the earworm), and when Ars Technica linked to my posts about stopping the botnets with mod_security or with .htaccess.

    This does not mean I haven’t noticed the increase in visitors from tens a day to a hundred and beyond. It just means that since I’m not trying to making a living from this site, it’s not something I dwell on very much. Every time I have to write an article about stats, that means I have to sit and study them here, because I’m just not tracking.

    It’s Professional

    But that really wasn’t me being ‘professional.’ What about my site where I have a custom Facebook page, a Tumblr, a dedicated Twitter account, and the whole nine yards? Oh yes, I track. I check analytics to see entry and exit pages, and I even have conversion goals. I notice my bounce rate, traffic flow, and all of those things. For work, yes, I monitor all these things, talk to marketing and sales about how to improve those things, write code to make things serve up faster and better. How did our campaigns go? What should be targeting?

    Lies, Damn Lies and StatisticsMost importantly here, I try to understand the data I’m getting. We’re really good at collecting data these days, but we’re pretty crap at understanding it and using it to our benefit. How often have you seen A/B testing result in flawed assumptions? It’s not easy understanding what to do with the data. It’s not something you can do quickly, and most of us can use metrics and analysis to prove the point we want to make.

    This is hard. It’s really hard and worst of all, how much weight you put in everything depends on who your audience is. How hard? Well there is a science in the testing but not many people use it right.

    It all depends

    And that’s really my point here. It all depends on what your goal is. Who are your readers and who are you writing for (they may not be the same)? Also who do you want to write for?

    Everything comes down to having a goal, knowing what you want to do, and doing it. And there is absolutely nothing wrong with just writing for yourself.

  • Censorship in Moderation

    Censorship in Moderation

    Not everything to do with technology means code. Curating a website means, often, you have to edit your content and your comments in order to foster the sort of relationship with your visitors that you desire. In doing so, are we censoring? How do you decide how best to handle comments that make you uncomfortable, and how do you allow yourself to question your ever-changing personal morals (because they are), while keeping the right ecosystem on your blog?

    I am a censor

    87d8c8c2f0fa4ee48b6c754737089edeFrom time to time, I make people upset. This happens, and while I don’t go out of my way to piss people off, it’s just a part of life. No one agrees with me 100% of the time (heck, I don’t agree with myself from last year all the time). It’s just what it is. We grow, we evolve, we look at things differently. When people get upset with me they tend to act like assholes on my websites, insult me, call me names, or basically try to take over all the comments here. When they do, I block them out of my life.

    Seriously. When people start that crap, I block them from commenting here, I block them on Twitter and Facebook and Google+, and blackhole their email. End of story, no chance to come back. If you’re the kind of person who’s willing to go that far and call me a “man faced dyke” then you’re not the sort of person I care to associate with, goodbye.

    Most people don’t get that far, though. I’m all for hearing dissenting opinions, especially the thoughtful ones that point out fallicies in my logic. I would much rather people post replies to my blog posts as comments (not Twitter guys), because that removes the oft-crippling 140 character limit, and thus takes away much of the problems with discussing complex topics. I like long replies. I leave them often. This means that the vast majority of the time, even if you want to shout at me and say my understanding of XYZ is wrong, as long as you’re not being personally insulting, I’m going to leave the comment up. When you start belaboring the point (beating the dead horse, as it were), and refuse to agree to disagree, then I start moderating your comments and possibly deleting them.

    Is this censorship?

    At some point on Twitter I said “Deleting your comment on my personal site may be censorship, but it’s not against any law.” And my friend replied:

    The reason I used the word may is that, for an off-the-cuff Tweet, I had not done any research into what is and is not censorship. I know that we use the term ‘Self Censorship’ when we’re trying to stop ourselves from enjoying a foot-in-mouth moment, but are we using the word wrong? When I decide to remove a post that I feel is detrimental to my site, how is that different from Google censoring your results from a search, or Facebook deleting your comments?

    My rule of thumb for comments is this: If what you just posted is something that would prompt me to get out of your car, leave your house, or ask you to leave my house, it’s getting deleted. It’s pretty cut and dried, and if my hand ever hovers over the “Well, maybe this is okay” button, I tend to leave it alone. But, like Gunnar de Winter posited in 2011, I don’t know if I’m censoring or not anymore.

    A generally accepted definition of censorship is along the lines of this: “the surpression of a text, or part of a text, that is considered objectionable according to certain standards.” One can argue that my site has my standards, and thus my suppression of a comment I find objectionable is censoring you on this blog. I’m inclined to feel that it is censorship, but I don’t think this is a bad thing.

    When is it censorship?

    3200076There is a difference between gatekeeping and censoring. If I make a political agenda post about a hot-button topic, and then proceed to delete all replies that promote the opposition, am I gatekeeping or censoring? What about when I delete (or edit) comments left by people who are insulting? Is that inherently wrong? Where’s the line between “I don’t like it” and “I’m offended by it”?

    One thing to keep in mind is that this is not violating freedom of speech. Or rather, it’s not violating your protected freedom of speech. Look. You have the right to say whatever you want. I have the right not to listen. In the US, the amendment is pretty clear in that the freedom of speech applies to talking about the government. So I can talk about how much I hate Obama if I want to, and the government has no law to stop me. At the same time, this does not give me absolute freedom of speech, it just means that I have certain protected rights. In 1996, the Supreme Court extended the full protection of the First Amendment to the Internet (it was a 9-0 vote, too).

    So why doesn’t this cover your right to say what you want on my blog? My blog is a ‘private’ entity. So is a newspaper for that matter, which is why your letter-to-the-editor may never see the light of day. Neither the NYT nor I am obligated to publish your words. Besides, it’s not restraining your expression when I do it here, as you keep the right to go talk about me and how much I suck or I’m wrong to your heart’s content on your own blog. I tend not to comment on those posts anyway, so don’t worry about me.

    What’s wrong about censorship?

    If I said “Censorship isn’t all bad” I’m sure a lot of people would shout me down. But … it’s not. We censor pornography, private information, details of bomb creation (see Mythbusters) and so on. None of those things are really objectionable uses of censorship. In a perfect world, people wouldn’t break the law in the first place, so we wouldn’t have to censor anything (because we’d all be trustworthy). Sadly, that’s just not the case. In general, when applied fairly and justly, censoring might not be terrible. When it’s abused, though, and someone goes to the point where they block you from posting on the Internet as a whole (just pretend that’s possible), then we’re into a problem. Which means it’s not necessarily that censorship is wrong, but abuse there of is wrong.

    So back to Jen’s point, it’s not really censorship, is it?

    I do oppose blanket censorship. But I also believe that protecting my blog’s community, as well as my own mental health, means sometimes I have to make the choice to close the door on some people. As someone who runs community sites, the health of the community trumps my personal feelings, but that doesn’t mean I ignore them. Finding that balance, in yourself and on your sites, is not easy. It’s an ever changing landscape to navigate, and no one can tell you what’s 100% right or wrong.

    Dare to Disagree

    Just as I finished writing this, Andrea Middleton sent me a link to a TED video of Margaret Heffernan: Dare to Disagree. It’s hugely important, when you decide to censor any comments on your site, that you not stifle constructive conflict. The importance of being challenged and letting yourself grow because of it cannot be expressed often enough.

    [ted id=1533]

    So Jen’s right. It’s not censorship, and I’ll keep on gatekeeping comments as I feel appropriate.

  • Give Back Or Die

    Give Back Or Die

    One of the things I hate in the world is people who don’t give back.

    USSR Socalism PosterI call myself a software socialist because I strongly believe in giving back to the things that make me successful.(This is, in no way, a blanket approval of everything Socalist. Snarky political comments may be deleted.) This is why I give back to WordPress, spend so much time on it, and so on and so forth. Thus, it’s logical (or at least internally consistant) when I say that the part about WordPress that I hate is people who take and never reciprocate. More than this just being a pet peeve, though, people who do this with Open Source code are biting the hands that feed them, and it’s terribly frustrating to watch.

    Look. You get this totally awesome software for free. People volunteer (sometimes we’re compensated, sometimes not) to make it better, safer, more secure. And we give these updates, again for free, back to you to make a living from. That gives all of us ownership in the software and a responsibility that I see a lot of people dropping the ball on.

    So let me state this for the record: If you use a product that is free that enables you to make your living, and you do not give back in some way, you annoy me.

    I’m going to use Mediawiki as an example here. I cut my teeth on it, which is something few of you know. I’ve been using it longer than WordPress, as a self-hosted Wiki install. I learned about caching tools not because of WP, but from Mediawiki. I learned about config files and extensions, and why you never edit core files, and theming all from Mediawiki. It’s safe to say that had it not been for my foray into that world, I’d never ever have been the WordPress Guru I am today.

    At the same time, I have never once given a single line of code back to Mediawiki. I’ve probably reported no more than 5 bugs in my lifetime, and it’s not because they don’t exist. I actually do know how to do more than just theme in Mediawiki, I know how to trace a bug and fix it, but given my use-case of it it’s been pretty rare that I’ve even had to report it, because every time I’ve found it already handled in the next release.

    By the way, the whole reason I mastered Git? Mediawiki. I needed an easy way to upgrade and keep up with a trunk release that fixed a critical bug for me.

    Wikimedia Foundation LogoBut if I don’t give back code, do I annoy myself? Nope! Much like WordPress has a WordPress Foundation, Mediawiki has a Wikimedia Foundation. And yes, I donate money.

    And this is my point. We’ve already proven that sponsored software can work. At the time I wrote this, Aaron Jorbin’s charge to raise money so he could work on Post Formats was a couple hundred from goal. I’m confident that by the time this is posted, it’ll be met. (I’m also confident the Indians will sweep the White Sox, so Aaron, you can do your ten support tickets for Post Formats if you want. If they lose, I’ll patch something for your plugin.)

    The point is simple. Giving back is not just code. I talked about this at WordCamp Portland, and I talk about it all the time. You don’t have to code, or file bug reports, all you have to do is be here and do something for the community at large. Heck, if you want to help clean up after a meetup? You gave back!

    So please, don’t be greedy. Give back to open source. Don’t just take and take and then complain it’s not everything and more. Do something, anything, that helps someone else. Even if you’re doing it altruistically, you’re not living in a vacuum.

  • Changing How We Develop

    Changing How We Develop

    Traditionally in open source land, we come up with an idea for something, we sit in a room and talk about it (it’s kind of like flirting), we make some code, and we test it. Many, many, times we do this in isolation, and we do it in our free time, hoping one day to have the time to make it awesome.

    Post ForkingWhat if we didn’t? What if, instead, we looked at history and remembered that some of our greatest works were brought about by patronage.

    “Artists from Michelangelo to Shakespeare all received support to create the works of art that we know today.”

    Now, finding a patron isn’t easy. It’s harder and harder to find fancy philanthropists who want to fund you for a while to write something awesome. And worse, trying to ‘schedule’ inspiration is hard. But in reality, we do this all the time. The inspiration is there for many of us, we just need the time not doing the other things.

    Aaron Jorbin’s giving this a stab by crowd-raising the money to improve WordPress Post Forking.

    WordPress Post Forking allows users to “fork” or create an alternate version of content to foster a more collaborative approach to WordPress content curation.

    That sounded weird the first time I read it, but let me explain it differently. Have you ever written a post, published it, and then wanted to edit it and have someone else check it before you post the changes? WordPress can’t do that. Once a post is live, you can’t save a change without making that change live too. But what if you could? What if someone could ‘fork’ your post, make edits, and you could review those edits and pull them in? It would be like tracking changes on a Word Doc, only cooler.

    I hope that other developers, who have great ideas, follow this patronage model going forward. After all, I never have a problem with paying for great code. I just have a problem paying for crapy code.

    ETA: It seems fitting I should repost this pic here:

    Aaron Jorbin - Haters Gonna Hate
    Aaron Jorbin – Haters Gonna Hate (by Helen)