Half-Elf on Tech

Thoughts From a Professional Lesbian

Tag: rant

  • Mailbag: Assumptions are the Mother of All Screw Ups

    Mailbag: Assumptions are the Mother of All Screw Ups

    I get a lot of plugin related emails like this:

    Did the rules change?

    Or this:

    You’re not being fair, you let X get away with it.

    Or this:

    They’re liars and you should be ashamed.

    The problem all these people have is they only see one small portion of the world they’re dipping their toe in.

    First of all, if you have a problem with WordPress.org hosted plugins or the repository in general or you think rules are being enforced unfairly or your plugin was closed, you email plugins@wordpress.org and not me directly.

    The plugin team is a team — a group of people who work on the plugins. While you may only be talking to one ‘face’ of the team, when you take conversations offline, you rob us of the ability to track the status of your plugin. Also you prevent us from being able to use the experience to train up new team members.

    So yeah, I get pretty firm about this one. Use the right channel for the right complaint. If someone comes by and tells you “Actually you want to talk about that here with the right people” and you decide not to, well you’re a fool.

    Back to the case at hand. Those three emails had to do with pretty mundane situations.

    The first two were about being busted for a guideline violation. The last was about a review.

    Did the rules change?

    This developer was using a trademark in his domain, which is not permitted, and he was told to fix it. The rules have always been that this is disallowed, but sometimes people (hi) miss things.

    You’re not being fair, you let X get away with it.

    This happened when the developer was closed for using powered-by links. He complained that six other developers were doing it. I replied thanking him, closed the other six, and told him he still needed to fix his plugin.

    They’re liars and you should be ashamed.

    A contentious review-that-should-have-been-a-support-post happened. Then the user came back, apologized, and said he was wrong. After that, the developer replied complaining that the user should have opened a ticket. This began a little snippy argument between user and developer, ending with the user repeating that he already had apologized and would delete his post if he could. The developer became irate when I wouldn’t delete the post (the user can change his review after all) and deleted his plugin.

    Assumptions Should be Checked

    Each person came to the table knowing their small world. I come knowing that there are 42,700 active plugins and over 56k total. I close and open tens of plugins a day. I review more. I see code that makes me sigh and some that makes me celebrate. I also am human and make mistakes. Things slip by reviews, we miss a trademark here and there, and we may not catch everyone doing it wrong.

    But the one thing we never are is malicious.

    We never hunt down one user and punish them because we hate them. Ever. If we have an argument that seems impolite, we hand off the conversation to someone else. We assume good faith from the developers, but we know communication is hard. We know two people may not speak on the same page sometimes. We know that miscommunication happens. The problems all stem from our assumptions. They assumed we were picking on them, singling them out, and punishing them. We assumed they’d understand we’re just enforcing guidelines.

    About the only time we allow ourselves to be mad at people is when we’ve told them “Don’t do this” and they do it anyway. And really this only actually happens if we say “Don’t resubmit, please email us” and they just ignore that message and resubmit. It’s a following directions thing. Trust me, everyone hates you when you don’t follow directions, even if it all works out okay, you’re still acting entitled. If you don’t understand the directions, just ask for clarification.

    English is imperfect. It’s confusing. It’s downright weird. It’s contradictory. On top of that, humans are weird and imperfect and contradictory.

    Assume good faith.

  • Representation of Code

    Representation of Code

    There’s a great many things to be learned from the drama of the recent Code of Conduct proposal. A great many people have demonstrated why one is needed, why ‘Just act professional’ is not a tenable long term solution, and why some people are exactly the sort of person who will fall afoul of the new guidelines.

    After all, who would really argue that these guidelines are ‘bad’:

    Examples of unacceptable behaviour by participants include:

    • The use of sexualized language or imagery
    • Personal attacks
    • Trolling or insulting/derogatory comments
    • Public or private harassment
    • Publishing other’s private information, such as physical or electronic addresses, without explicit permission
    • Other unethical or unprofessional conduct

    But that isn’t what it brought to my mind. The needs of a Code of Conduct are myriad, and the phrasing is complicated. It should be, at once, easy to understand and abide by, while being comprehensive and difficult to abuse. It should prevent rules-lawyers from gaming the system and min-maxing the hell out of their abhorrent behavior, while still permitting people to speak their mind. Anyone who’s played a table-top game with ‘that guy’ knows that pain.

    As I tweeted:

    Today PHP is learning that individuals bear the weight of representation of their groups.

    This is something everyone in a minority group has known for a long time. Not to throw politics into the mix, but compare the different reactions to the Baltimore protests of 2015 and the Malheur National Wildlife Refuge occupation of 2016. Consider the way some people are painted as ‘he should have known better’ and others are just ‘misunderstood.’

    One of the things I hate about WordPress is that I am now and forever representing it. Yes, forever. If WordPress is still around in 30 or 40 years, I will be representing it. If I leave it or say “Well I hate X” about it, I will reflect back on WordPress and my words will likely be taken and twisted around and contorted to mean something.

    Now and forever, I represent things that I am and things that I do. If I act like an ass online, it reflects on my company. A coworker of mine told a joke on Twitter and was subjected to attacks from someone who found it offensive. Whether or not the joke was tasteless, it reflected on him and our company. It doesn’t matter if the company endorsed it or not, nor does it really matter what our CEO may or may not have said regarding the situation. It matters that we represent myriad aspects of our life all the time.

    To give you a short list, I represent women, lesbians, LGBT as a whole, married people, childless families, Jews, Californians, Chicagoans, Canadians, Americans, caucasians, and please double the list and add ‘in tech’ to that. We haven’t even touched on things I work on and participate in the community like WordPress, Wikipedia, MediaWiki, Ada Camp, Hugo, Jekyll, PHP, ZenPhoto, etc etc and so on and so forth. Oh and DreamHost, the bank I used to work for, and possibly the guys I worked for before that. Then there are the games I play (D&D, Pern, WoD, etc).

    I don’t get to ‘stop’ being those things. Even though I’ve not played a MUSH in almost a decade, to some people I will forever be known as a MUSHer. And some people may change their opinions on me just hearing that. But also some people will say “Oh, she acts like that because she grew up on a MUSH.” And worse, “If she acts like that, then all MUSHers are assholes.”

    Look. We know it’s stupid. We all know that a person isn’t the sole representation of a thing, and yet we spend our lives looking over our shoulders because we will now and forever be what we are identified as being.

    It was hard for Leonard Nimoy to be Spock.

    Nimoy is so synonymous with his half-Vulcan alter ego that fans revolted upon seeing the title of his first memoir, “I Am Not Spock,” despite Nimoy’s insistence that behind the name was merely a nuanced explanation of the distinctions between himself and his character.

    When we think of him, we think of Spock, the role that made him famous. And it took him years to come to grips with understanding that he was now and always will be Spock to many of us. It’s a hard thing to accept, that you will forever represent yourself, a job you had for three years and a handful of movies, and that no matter what, whatever you say will reflect back on that.

    WordPress, PHP, those are our Star Treks and we are Spock.

    Live long and prosper.

  • The Fiscal Responsibility of 25%

    The Fiscal Responsibility of 25%

    “We’re going to deploy on December 20th.”

    I winced.

    I’m not Christian and December 25th is just another day when I binge watch Netflix. The 24th? Movie night! But I picked up a habit at the Bank and that was not deploying code for the last two weeks and first two weeks of the year unless the company was going to be fined if we didn’t.

    I was brutal about that to people. I was harsh and mean and demanded lengthy justifications. I made them speak to senior management, who were hard to find around that time of year because every one was on vacation.

    The reason for this was that the bank had a clear cut fiscal responsibility not to go down between Thanksgiving and a bit after New Years. That was when year end processing happened, and that was when many companies who used us were processing the most orders. For a lot of people, business booms right when everyone wants to take a break to be with their family.

    WordPress runs 25% of the Internet.

    We use it for blogging, for building Facebook-eqsue sites, for running ecommerce stores.

    That means and we the developers of WordPress now have a responsibility not to break when we upgrade people. A huge responsibility. And it’s one we can never give with 100% assurance because of one simple fact.

    We made WordPress open.

    Anyone can make a theme or plugin. And while we do our best to test with core WordPress, we cannot test all of the 45k plugins in the repository yet. The best is maybe we could write a script to check for fatal errors on activation. But even then, can we test all 45,000 against all possible permutations of combinations?

    That’s an incredibly massive number. All my factorial calculators, even Google, just said ‘Infinity.’ And we add about 9000 plugins a year. This is staggeringly huge and it gets bigger every year

    But with this increase in share and use comes an incredible responsibility to 25% of the web. We cannot break their sites.

    Of course I know that’s impossible. There will always be outliers. And even with the large user base that companies like Yoast have, the dearth of willing and capable Beta Testers for a free product is going to bite us. It’s part of what I asked what I did at the Town Hall at WCUS — Are we going too fast?

    Speed cannot exclude us from a responsibility to our users. And with the increasing provenance of online stories and websites for everyone, pushing a change when we know that the majority of the world is celebrating something between Nov 15th and January 15th is reckless. Look at how many people want time off in those months to be with family. Look at how many businesses are running sales. Look at the amount of data transfer that spikes.

    And then picture what happens when an update has a small bug that takes down one site in a thousand. 1/1000 of 1/4th of the entire Internet. If that didn’t make you shiver, do the math again. Imagine if Apple went down because they pushed an update right around Christmas?

    The answers change sometimes, though. What if it was a security fix? Would that change your mind? It would change mine. A major upgrade around Christmas worries me. A minor one, not so much.

    It may be time to call a year end moratorium on updates to our systems and apps. If they’re business and mission critical, test them as best you can, but consider if you have to update before that Christmas rush. Make people jump through hoops to prove they need the new shiny right now. If you know you’re understaffed or under heavy load, consider that as much as anything else.

  • Rant: Lightboxes and Scrolling

    Rant: Lightboxes and Scrolling

    Lately I’ve run into a problem where a tool I’m using has a lightbox that’s cut off at the bottom of the screen.

    This generally happens because I have my browser at half-height, or because I’ve pressed the ‘increase font’ keys to make a site 110% text for readability (WordPress P2, I’m looking at you). Here’s what life can look like for me:

    Dropbox doesn't scroll with lightboxes

    This image shows a lightbox cut off midway. The bottom of the picture shows the bottom edge of my browser. Obviously I could make my browser window larger, and most of the time this is what I do. But should I have to? There are situations where I can’t do that, like on mobile. Whomever decided that overlays on mobile was a good idea needs to have their favorite sweaters eaten by moths.

    Make your screen scrollable. Make sure your lightbox doesn’t get totally jacked up when a screen is ‘too small.’ A major part of responsive design is not just making sure your site works on mobile devices and ‘full blown’ computers, but that it works on all sizes of monitors when a browser isn’t maxed out.

    Here’s another example:

    Another example of Dropbox not accounting for screen limitations

    In that image I have what I can only presume is an advertisment that wants me to click something. It’s not until I change my zoom to 75% that I can see this is an ad for Dropbox Business:

    I can only see the ad for Dropbox Business if I reduce font to 75%

    Oh and Dropbox was totally unhelpful when I reported these things, which is why they’re getting shamed. They said to fix my screensize.

    When a similar issue happened with Slack, I got an apology and a promise to address it. Which they did within a week.

  • Apple News: Only Our News Fits

    Apple News: Only Our News Fits

    iOS 9 has a new tool, Apple News. This is the replacement for the Newsstand app everyone shoved in that ‘Apple Shit’ folder on their iPhones and muttered about how it took up space on their 16G iPhone they didn’t care about, and damn it, I don’t have an iWatch so why do I care about that app either?

    You know you have that folder.

    News, though, is actually pretty damn cool! It’s actually a news reader app I like and want to use. Except for two big issues.

    You see, I have an Apple Watch and I like how it alerts me to things. I get a wrist buzz, I look down, I know things. A text message, a direct message from Twitter (since few people can do that), an email in a certain box (not yet, but as soon as I figure that out…). What I want with News is for my watch to buzz when there’s a new article about a specific thing.

    The first thing I did was set up News to search for topics I wanted. Like you do. And I put in ‘Jorja Fox’ because I’m still running that website.

    Apple News search for 'Jorja Fox' shows me 'Jordan' and two other people with the name Jordan, but no Jorja

    Interesting, right? No Jorja. I clicked on ‘Show more topics’ but even after scrolling and scrolling, I couldn’t find her. The same thing happened with ‘George Eads’ and ‘Rachel Ray’ but not ‘Bobby Flay.’ Looking for ‘Jennifer Tilly’ brought up ‘Jennifer Lopez’ (close!) but weirdly enough I was able to find ‘Sara Sidle’ (the character Jorja played on CSI).

    News Favorites: ADI, CSI, Sara Sidle

    I ended up managing to make my favorites (Animal Defenders Intl, CSI, and Sara Sidle), but I couldn’t find the movie ‘Lion Ark’ or ‘Extinction Soup.’ Actually, finding the ADI was incredibly hard.

    The search function doesn’t seem to trigger for exact matches as much as it should.

    If you want to add a website, it’s not at all logical. You have to add an RSS feed if the news site isn’t located there and even that isn’t logical. Go to Safari, find the RSS feed, click it, and your iOS device will ask you if you want to open in News. Say yes! There you go.

    Except… How do I add an arbitrary search? You don’t. You can’t. If you want to have a ‘Cat Cora’ channel, or a ‘Jorja Fox’ channel, you’re out of luck. If the name doesn’t show up it doesn’t show up, and yes, I scrolled and scrolled. Then I got a little smarter and got the Google RSS link:

    https://news.google.com/news?pz=1&cf=all&q=Jorja+Fox&output=rss

    I opened that on iOS and added it. And it didn’t work. Oh it added something, but it wouldn’t open within News.

    Then I tried Bing:

    https://www.bing.com/news/search?q=jorja+fox&go=Submit&qs=n&form=NWBQBN&pq=jorja+fox&sc=8-9&sp=-1&sk=&format=RSS

    And Apple News said it couldn’t add Bing to News. Bias much? After iOS 9.0.2 dropped (literally that night), I was able to add Bing, but only if I went to that URL and viewed as desktop (if you didn’t know, there’s “Request Desktop Site” button in Mobile Safari).

    Added news.google.com and all I get is a spinning circle

    Now sometimes there’s a button in the ‘Share’ setting in Safari that lets me add to News. And sometimes there is not. Way to go, Apple. In all cases, I get the spinning circle of doom after I add something to News.

    Naturally I went to look for help on Apple News and found none.

    In the midst of all this, I realized a horrible thing. You don’t get alerts on your Watch from News. You do from a variety of other news apps. You can’t from News. So they’ve made a great new tool that doesn’t let you add arbitrary searches, doesn’t alert you to new news about the searches you can make on your Apple Watch. And while I do have notifications on, it doesn’t seem to notify me about anything.

    In contrast, I added Google News & Weather to my iPhone and, once I logged in with my Google account, it remembered I had a saved search and showed that. Except it also showed me general news and weather. I can’t dismiss those. I have to show them, above my custom news, all the time. Plus the alerts I get are for world news, not my personal searches, which is funny since Google can email me when my custom search has new articles, so I know it can do this.

    Here’s what I want: A ‘News Reader’ that lets me get alerts on what I want to get alerts on. If a site it scans publishes something with my keywords, it pings me. When I read the app, it would sort by date (hiding duplicates by default), and let me thumbs-up or thumbs-down the article to help train it as to what was relevant.

    One of the apps I tried, while looking for that, was Nuzzel. Cute hedgehog aside, the idea that I can get the news from people I follow (and one presumes I trust) is nice. But that only shows me what people know about. News360 suffered the same problem as Apple News, that adding certain arbitrary topics proved impossible. It could find some of my terms but not all. At least they had a way for me to file a bug report, though.

  • Rant: Chrome is the New Nanny Browser

    Rant: Chrome is the New Nanny Browser

    Part of my job is to look at possibly naughty and dangerous sites. Usually Chrome gives me an ‘are you sure?’ warning before I look at a hacked site, and I understand why. But see, my job involves me going to known hacked sites, seeing what’s going on, reverse engineering, and fixing. So yes, Chrome, I need that ‘I’m sure’ option.

    Lately Chrome hasn’t been giving me an option. It’s been saying no.

    So I went to the documentation, Can’t download files on Chrome, to find out how to turn it off and I was annoyed.

    If you don’t want Chrome to show you download warnings, you can turn off your phishing and malware protection setting. Turning off these warnings will also turn off other malware and phishing alerts:

    I want phishing protection!

    Actually what I want is Chrome to say “This download may harm your computer. Don’t download it if you have auto-expand or auto-run on for downloaded files. Are you sure you want to download this?” and default to NO.

    And no, I’ve not figured out how to do this yet.