2018, Week 1

I said I’d read and write and move and some of that actually happened!

I was sufficiently annoyed at reading Antifragile that I knew there was zero chance I would finish it (or even continue for the week) so I grabbed John Scalzi’s “The Dispatcher” that was on sale last Monday and read it that day. Very readable 🙂 A bit depressing. But that means I finished a book this week! I also got a copy of “Principles” and haven’t opened it at all! 😀 But based on the point of that one, I suspect it’ll be a much friendlier read once I start.

I’m also re-reading “The Fifth Season” (So! Good!) – do re-reads count? (I guess that’s up to me.) I also realized that I checked the wrong account for Audible and although I thought I’d cancelled it, I do still have a subscription with a. couple of credits. I might cancel it yet, I’m not sure. Really, the only thing I’ve ever enjoyed as audiobooks is Buddhist books, and even those are hit or miss based on narrator. I like my fiction to be in my own head voice, y’know?

This is writing and I’ll post it today (hideously unedited and unreviewed) and reading is covered above. Moving was… mixed this week. I am happy to report that I seem to have found a groove that sees me go swimming twice a week midday and I don’t even whine and complain when it’s time to go. I even found myself wanting to go early one day when I was feeling anxious and restless! And even on the days I feel like just giving up, I still start and then I keep going! This is exciting! My normal distance is 1km and I all too often forget where I’m at while counting. But this past Thursday it was 1.1km. I want to keep the time consistent so if I want to swim further, I’d better speed up.

I haven’t done much else, activity-wise but then it’s only the first week of the year and it was a short one. I still have to finish “American Vandal”, which I’m restricting myself to watching on the Exercycle. That was really hard because I have to find out who drew the dicks* but I am proud that I haven’t broken that rule. I’d have thought it would get me on the bike but so far, no.

On the learning front, I was asked to try to figure out how much of my company’s code shipped last year was open source (compared with closed). This is exciting! I haven’t done much programming in a very long time but I did spend a focused bit of time a couple of years ago and some of the JS/Node neutrons are waking up. It’s a dog’s breakfast at the moment, glued together with text files & bash, but I do have a decent base for something I might use as a jumping off point for learning proper JS dev again – ideally practicing TDD as well. I spent more of my own time than I think my boss would be happy with on this (work-life balance is a Real Thing at Buffer, y’all) but I was enjoying that dopamine hit of solving things. And isn’t the dopamine of learning and accomplishment preferable to constantly refreshing social media or checking mail to see if there’s something new?

Yes. Yes it is.

* this is only for people who’ve seen “American Vandal” or don’t mind partial spoilers (as I say, I haven’t finished it so this doesn’t actually give away any ending) the #1 proof of Dylan’s innocence, in MY mind, is the complete stylistic difference between his everyday (and it does seem to be every day) dick-drawings and the ones on the cars. No. Damn. Way. As mentioned, I don’t know the actual answer, but he really doesn’t seem smart enough to think of disguising his signature style.

Start. Start again. Start anew every day (or year)

There’s something about the WordPress New Post window that shuts my brain down. Actually, most typed text composition options do this to my brain. I quite like writing with pen & paper but I think I need to find my sweet spot, tool-wise, that will let me get the words out without having to re-enter them – I describe my handwriting as a great example of a write-only storage system. Part of why I like writing by hand is that it slows the words down just enough that I end up being more thoughtful and deliberate – there are fewer superfluous words and I end up questioning what I’m thinking more.

See? That’s 103 words of nattering right there (ok, the WP edit window helps with that 🙂 ) and I haven’t even started on what the point of this post was.

It’s New Year’s Day, 2018 and That Year is over. It was a Bad Year in a LOT of ways but it was actually a pretty positive year for me personally, so I’m feeling guilty about that. But maybe that’s one of the #2018Liberations ideas (h/t Cate Huston) that I should be trying out – not feeling bad about my own successes while there is so much pain in the world. Not gloating about them, not being successful at the expense of others, but learning to be happy for myself.

In early December, I started what might just be my dream job. I’m an Engineering Manager at Buffer, a company that I set my sights on a couple of years ago when I started really thinking about what I value in life and what I want to contribute my few hours on the planet towards. One of Buffer’s values is “Show Gratitude” and wow do the people I work with live that value. It’s a bit of an awkward one for me because I get quite shy when people thank me for things or praise me and I have that impulse common to a lot of people (more so women? I’m not sure) to deflect praise and positive attention. But I think I need to work on that. Not just for myself, but also for others – both people who I can act as a role model for, showing that it’s ok to hear positive things about yourself and accept that gracefully, and for the people offering that praise. It’s not a great feeling to have tried to show gratitude to someone and to feel like that’s not appreciated, so I think I might need to get over my discomfort there 🙂

I am not much of a goal-setter. Some people are really motivated by setting goals but I tend to end up demotivated by them because as soon as I ‘fail’ to complete exactly whatever the plan I came up with for myself, I give up. Jean Hsu’s description of

being mostly effortlessly high-achieving through high school and college, and never really developing a great deal of grit and persistence.

resonates a LOT with me (not high school, because I was completely disinterested and didn’t even try then, but in university). I don’t think I have grit. I tend to give up easily. ESPECIALLY after I’ve failed to meet some arbitrarily strict standard I set for myself.

So that’s my goal for this year – to keep getting back on the horse. To work on building habits – to keep re-starting when I stop or don’t think I ‘measured up’. The habits I want to work on are:

  • moving more – I’m intrigued by the “217 in 2017” that the folks over at Fit Is A Feminist Issue blog did last year. I particularly appreciate the definition of what ‘counts’ as a workout that they provide – anything outside of their normal day. Bill and I have started going swimming midday on Tuesdays and Thursdays (thanks for the flexibility, Future of Work!) and that would cover a good number of a potential 218 in 2018 🙂
  •  writing more – This is a first start, but I’d like to ‘ship’ a post per week. Hopefully some of the other habits I’m working on can help provide inspiration for some of the things to write about, but I’d also like to write some fiction.
  • reading more – one of the amazing perks that Buffer offers employees is free e-books. Like, for real, you say “Hey, I’d like this book” and they give it to you. Unfortunately, the first one I picked is a bit of a slog so far and I’m really not enjoying the author’s tone, but at the same time, that’s a good lesson for me on the writing side – if your audience feels insulted or lessened by what you are writing, they’re going to put your work down sooner than they otherwise might. I do actually have a goal here – I want to finish one book a week. I know that some of them (like the current one) will take more than a week to get through so I expect to supplement completions with fiction/humour (too bad I devoured the whole “The Broken Earth” series in one week in September. Credit for three books in a week! (see what I mean about goals being a problem for me? 🙂 )) I mean, technically, I finished John Hodgman’s “VacationLand” today, which could count as finishing this week, but since it was a re-read, I don’t know if that’s cheating.
  • serving more – I want to find ways to help make the world a better place that involve more than just giving money (although I want to do more of that, too) but involve me actually doing things that have an immediate positive impact on people.

And more self-compassion. I’m going to fall down on these goals. That’s ok.  The real habit I’m trying to build is starting again after I ‘fail’.

Giving people the chance to say goodbye

I am thinking today (as so many Canadians are) about the final Tragically Hip concert that will start in  a little over an hour. One of the articles I read mentioned how unusual it seems for the very private Downie to publicize his diagnosis and contrasted that with how David Bowie handled his.

I found myself feeling very grateful for the opportunity to celebrate, thank, and grieve the forthcoming loss of this person who has contributed so much to the culture of our country. And I thought about some of the ‘farewell parties’ I’ve lately been hearing about – people who have terminal diagnoses participating in the celebration of their lives with their loved ones. There was even one portrayed on “Grace & Frankie.”

Death is hard for us to accept. We don’t like it and we prefer to not think about it or talk about it. But it is coming, for each of us, and despite what we imagine and hope and plan for the future, we don’t know when. By being open with his diagnosis of terminal brain cancer, Gord Downie has created space for us to talk about this most fundamentally shared human experience, and has in some ways held our hands as we look at it – frightened, angry, and sad. In some ways, it feels like another brilliant song he’s written to help us feel things that we couldn’t find our way to on our own.

I’m grateful for the example of a well-lived life. Thank you, Mr. Downie, for inviting us to your goodbye party and giving us the chance to say goodbye.

On Machine Learning and the Ethics of Computation

I was reading a recent post on machine learning from one of my favourite technical writers (Julia Evans) and was inspired enough to comment that I signed up for Disqus under my own name for a change 🙂
However, it turns out that the post was closed for comments, so I thought that I’d write up my thoughts here.  I’m pretty busy today so I’m just going to paste it as a quote rather than edit it into a more ‘first-person’ writing style.

This is a pretty interesting topic overall – I have largely avoided machine learning b/c of a lot of concerns about how it’s used (and its results assumed to be ‘normal’ or ‘correct’) but recently decided that that’s the wrong approach. Instead, I’m going to learn more about it so I’m in a better position to critique how it’s used and point out implicit assumptions and biases. To that end, I’ve signed up for the Stanford course that just started.

Even in the first lesson in that course, I saw some interesting examples that made my skin crawl. I think the biggest issue I have with it is (and I am JUST starting to learn) is that there’s an implicit assumption that all relevant information is externally observable and that conclusions drawn from objectively measurable data/behaviour will be correct. I’m fine with that when it involves some kinds of events, but I get very uncomfortable when we’re applying it to humans. So much of human motivation is invisible/intuitive that leaning so heavily on machine learning (which necessarily relies on events that are can be observed by others & fed into algorithms) leads to things like, as you say, the Target pregnancy issue. There are many other ‘positive feedback’ effects of assuming that reinforcing/strengthening conclusions based on visibly available data that are detrimental – gender-segregated toys is a primary one. “65% of people buying for girls bought X, so when someone is shopping for a girl, we’ll suggest X. Look! Now 75% of people shopping for girls bought X – we were right! MOAR X for the girls!” [eventually, the ‘for girls’ section is nothing but X in various sizes, shapes, and colours (all colours a variant shade of pink)]

Another ML issue that came up for discussion when I was working at Amazon was: some people consider LGBTQ topics to be inappropriate for some readers, so even if someone had actively searched for LGBTQ fiction, the recommendation engine was instructed to NOT suggest those titles. That has the effect of erasing representation for marginalized people and increasing isolation among those who are already isolated. In fact, one could argue that one of the things that ML does best is erase the margins (obviously, depending on how it’s implemented, but in the rush to solve all problems with it, these types of questions seem to be ignored a lot).

I mentioned positive feedback loops before. The analogy I have in my head is: ML type algorithms (unless you build in randomness & jitter) amplify differences until you end up with a square wave – flat and of two polar opposite values. Negative feedback loops lead to dynamic yet stable equilibriums.

I mean, it’s obviously here to stay, and it clearly has some very significant beneficial use cases. But there are a lot of ethical questions that aren’t getting a lot of attention and I’d love to see more focus on that over the technical ones. Thank you for mentioning them 🙂

The more time I spend in this industry, the more I believe that the one Computational Ethics course I took back in my CS degree wasn’t nearly enough, and that we could really use a much broader conversation in that area. [To that end, I’ve also signed up for some philosophy courses to go with the ML one ;)]

Is it obvious?

I was in San Francisco yesterday, interviewing for a job with my ideal company. In the first interview, which was a more technically focused one, I noticed that I often prefaced what I was saying with “well, obviously” or just “obviously”. When I noticed that, I commented on it out loud: “hunh, I’m not sure why I’m saying that – I don’t know what’s obvious to other people – it’s all based on individual experience and familiarity with things.”

The fact that I thought “why am I saying that” led me to re-read Nick’s post “Why am I saying this?” and to really reflect on what the word ‘obviously’ means when I say it and what it might mean to others hearing it. When I was saying it, I wasn’t really meaning that what came next was necessarily obvious to anyone – myself included. It’s a verbal tic that I developed at some point along the way, and probably an inherently defensive/self-protective one. I don’t feel like delving into all the subtle biases and one-upmanship that often happens in tech, and how people who don’t look like what everyone thinks of when they think of someone in tech learn coping habits, but I suspect that’s where my ‘obviously’ comes from.

So let’s walk through what it means to me and what it might mean to others.

What is going through my head when I say ‘obviously’ at the beginning of a sentence?

  • “Oh, shoot, I wasn’t thinking – I know the answer but still needed a cue to pick up on it. Dammit, they probably think I’m an idiot now!”
  • “This feels like a trick question…” [the answer to this question can’t possibly be the obvious one (to me), so saying ‘obviously’ is a way to prompt them to provide more hints/details]
  • “…” (i.e. nothing at all) – the word can be just a linguistic space-filler or habit. I have a few of those & I’m trying to identify and remove them (‘definitely’ is definitely top of that list)

What goes through my head when I hear ‘obviously’ at the beginning of a sentence? (putting myself in the listener’s place)

  • If I didn’t know what was being said: “Oh shit, I’m the only person here who didn’t already know that. I should have known that. I’m horribly under qualified to be here!” [Depending on how they said it, I might also think they were a bit of a jerk who wasn’t supportive of people with different experience and knowledge.]
  • If I did know: That depends on how they said it. If it was neutral/verbal tic, I might not even notice the word. That’s the best case. In the worst case, I’d probably think they were a bit of a jerk who wasn’t supportive of people with different experience and knowledge.

So where’s the upside in using ‘obviously’ word to introduce a statement? The only value seems to be protecting my own identity/ego. And since I’m working on not doing things to protect my identity/ego because that protection leads to lack of real communication and connection between people, any upside to me is heavily outweighed by the potential downside to others. Allowing myself to be vulnerable, and to be wrong, and to be seen being wrong is an important growth goal for me.

In fact, there seem to be a lot more obnoxious ways to use the word ‘obviously’ than helpful ones and I’m going to work on purging it from my spoken usage *. Even if something does seem obvious to me, what value in stating that? How does that help anyone with anything?

* I was trying to think of genuinely inoffensive ways to use the word and the best example I could come up with is play/stage direction notes and narrative:

  • “Kara was obviously moved by the story she heard”
  • “Michel was obviously upset with the situation”

But for first-person usage? I’m not sure it’s ever a good idea. [Maybe in cases where defensiveness is actually warranted (Barty Crouch has just accused you, Harry Potter, of casting the Dark Mark, I guess?)]

 

 

Going on record with my Jon Snow theory

Before we get to the next season of Game of Thrones, I want to get my personal theory about what’s going on with Jon Snow published so I can point back at it and gloat later.

Much as I adore Joanna Robinson and her crew at Cast of Kings and her other crew at Storm of Spoilers, I have a fundamental difference of opinion from them regarding Jon Snow.

They all seem very convinced that what’s going to happen in Season 6 is that Melisandre will resurrect Jon Snow from his vicious murder by Ollie (a la Thoros of Myr resurrecting Beric Dondarrion). See, me, I don’t buy it. Not because I think Jon’s gonna stay dead, but because I don’t think he ever died in the first place.

GRRM’s text left it hanging, the same way he did when Arya was blinded, when Tyrion was supposedly drowned by the Stone Men, etc etc etc. Sure, Jon was stabbed. A lot. And in the show, sure, that was a pretty big pool of spreading blood and Kit Harington’s lovely blue eyes were open and staring up at the sky, unblinking. But y’know what keeps you from bleeding out so fast? Motherfucking freezing temperatures. I actually know this firsthand from an unfortunate slip & fall when I was in grade 1 in Saskatchewan. I had a pretty harsh cut on my little head that stayed frozen and contained until I got home and inside when it really started bleeding.

See, we know that sometimes, they come back wrong. Beric didn’t, but he didn’t come back fully right, either. Lady Stoneheart came back wrong (although, in my opinion, she wasn’t that right when she was alive either – her predecessor falls in the “Ron Weasley” category of fictional characters for whom I have very little sympathy). And if Jon is going to be the hero I think he will be, as important to the show/series as we all think he is, then it’s important that he is fully human, not a shade, not a zombie (whether an ice zombie or a fire zombie or whatever. A slush zombie). It’s crucial that he not have died.

So my money is on him walking up to the brink of death & not stepping off that cliff. Melisandre may help keep him from dying. But I unequivocally do not accept him dying & being resurrected. That breaks a fundamental part of what makes him a compelling character – he needs to be OUR hope, which means he needs to be human, like we are.

Nope.

Building SelfControl from [REAL] scratch

As someone who is easily distracted by brightly coloured shiny things, which is great when scuba diving in the tropics, but not so great when working on a pretty Retina Display Mac with all sorts of bouncing icons, infinite browser tabs, etc, I use the tools available to remove obstacles in my way. Or indeed, the ones NOT in my way but off to the side of where I want to be going but that are so tantalizing. One such tool is the open source Mac app SelfControl.

The basic functionality of SelfControl is that you set up either a blacklist of sites you don’t want to allow yourself to access for some amount of time or you go hardcore and set up a whitelist of sites that you WILl allow and ban the rest of the world as unacceptable distractions. [Aside: an anti-spam/anti-virus company I used to work for preferred the terms ‘blocklist’ and ‘allowlist’ instead of ‘blacklist’ and ‘whitelist’ for a variety of reasons, some cultural, and where I need to use them, I’ll be using those terms as well.]

With SelfControl, you  decide how long you want to focus for, set the slider for that amount of time, and press ‘Start’.

The way it blocks sites is by modifying the Mac’s hosts file (and firewall) so it needs to use admin privileges, which is why you have to enter your password. For many, that’s a decent way of it asking “Are you sure?” because the average user isn’t going to know how to undo the changes manually – that’s part of why it’s effective.

And that’s a perfectly helpful use case: person says “I need to focus for 2 hours straight, and I’m my own worst enemy, so block distractions RIGHT NOW”. But it’s not the one I’m most interested in, personally.

You see, when there’s something that I’m particularly avoiding starting (usually writing), I won’t necessarily even get to the point of starting the app. There are different tiers of self control and what I’d like to do is set myself a regular schedule with blocks at certain times of day. There’s an argument to be made that if I can’t even boot the app & click the button, I have bigger problems to sort out, but if there’s a way to make the process more structured and automatic, I’d prefer that. And I’ve heard from others that they feel the same way – they think scheduling would be useful.

There are a number of things that I’ll need to work through to get that going (not least of which is figuring out how to automate the privilege escalation on a scheduled basis – maybe cron?) but the first hurdle I had was getting the app to build at all.

I had tried to do this about 8 months ago, with NO success. I haven’t been a Mac developer at all and until fairly recently, I hadn’t been a developer for over 10 years. A lot has changed, y’all! And one of the biggest changes has been the burgeoning mass of package managers to simplify installation of apps, libraries, etc. Although I use Homebrew to install apps on my Mac, I hadn’t heard of CocoaPods and didn’t know there was a required step to run ‘pod install’ to get the required prereq libraries installed in the build directory. [It’s useful to run your build instructions past true newbies to find the steps that are SO familiar/basic that it doesn’t occur to you to write them down].

At the Recurse Center, I learned about a lot more package managers, and that there’s at least one for every platform. I already knew about npm & gem, but not pip, and definitely not pod. So I realized that there was a missing step in the SelfControl instructions – one that would be so automatic for Mac app developers that they wouldn’t consider it missing, but for someone who wanted to start their Mac OSS development with SelfControl, it was pretty crucial. Now, I don’t want to suggest that I don’t know how to search for solutions to issues, nor that you don’t. But when you run up against something where you don’t have a reference point for what’s missing, the amount of the unknown is completely unbounded. You have no idea how far away the finish line is, and if your drive to do this is hobbyist-level, you may bail, like I did last summer.

So, armed with this new knowledge, I tried again to build SelfControl from scratch. I got a bunch of failures (including the promised code-signing ones) but some of them are due to a recent Ruby change that apparently breaks CocoaPods. This post is getting long, so here’s a link to how I got through ’em. It’s ALSO long but that’s largely due to a bucketload of screenshots.