Recurse Center: week 2, day 2

Got in even earlier and spent some time reading Learning Python. That book is a beast, but I don’t feel as threatened as I usually do by gigantic books.

Meditation group is the best.

I think I spent almost an hour post-check-in spinning my wheels, but I did make a couple cups of green tea & got my Pinhead key registered (that kind of “important, not urgent” thing that’s so easy to put off forever). I’m blaming this on my check-in statement that “yesterday was a day of really good focus, so I want to just continue that today.” Welp.

Went back to LPTHW (went through exercise 3 yesterday), got interrupted by (i.e. interrupted myself with) everything (including this excellent article that came up in chat:

Had a short lunch (I had leftovers! I brought bonus food from home!) followed by an unintentionally long visit to Muji downstairs, which is downright magical. Whoops! On the plus side, I finally have some good little paper flags, which was what I originally went in for. On the downside, I now covet a bunch of beautiful functional things I don’t technically need…

Went to Tom’s terminal whispering talk, and took several moments to notice that something seemed familiar, and a lot longer to realize I had actually literally been to his talk at PyCon on, uh, terminal whispering. Regrettably, this meant I spent most of his talk falling down internet rabbit holes, but I did ask for some help resolving an error afterwards. Turns out something has to be running for a socket to connect to it.

Described a whole lot of Trip Island to Sam after she, well, tripped on a bunch of cords that are around the couches/one of the standing tables. It’s actually a metaphor that extends beautifully. There’s a beach. There’s a snake meadow.

Got through LPTHW exercise 14, swapping in `.format` stuff (still) instead of the older %s or %r formatters. (If you’re curious, you can dig around here:

Then headed out to Puzzled Pint in Brooklyn, which I knew sounded familiar, and it turns out it was because a friend used to be involved (see the very bottom). Of course Matthew was the puzzler. I will always wish I’d gotten to know him better, but I like doing little things to keep people’s spirits close at hand.

Recurse Center: week 2, day 1

Got to RC in time for late-kinda-reading-Learning-Python, but that’s the earliest I’ve ever made it in so far. Practice.

This DID mean, however, that I was here in plenty of time for morning sitting!

Dove right into Learn CLI the Hard Way, for the second time (I did a bit last week, but didn’t feel focused about it). Amazing how much faster it goes when I already know most of it. There are still a few things I want to really drill so they’re just available in my brain if I think about them, but there aren’t many. Rad.

Spent too long looking for where to get lunch today (got a bunch of awesome food this weekend and planned some lunches; left it all at home). But settled on Wild Ginger, which has the advantage of being SUPER close.

`find` is the freaking coolest thing I have learned about on the command line. Also, using our friend `>`, I made a list of all the photos on my hard drive containing the word “soon” as part of their name. Eee.

Too much post-lunch time yakking, but I made more tea (becoming a daily habit here) and talked about the generalities of What Is Agile Even (among many other things) with Wes and Panya.

Broke my brain reading man-pages for things like `find` and `less` (which 1) is huge, 2) has all kinds of hilarity to me, like the environment variable LESSSECURE, and the env variable LESS_IS_MORE, which makes `less` behave more like `more`, which just sounds giggle-worthy)).

Actually finished running through LCLItHW (or however it’s abbreviated), which felt good. I finished a thing! Even if it was going through a thing, and that feels like a cheating version of “finishing” something to me.

Finally got my system-wide (i.e. “not virtualenv”) IPython updated, which is something I’ve been putting off for months, if not longer (I went from v. 2.1.0 => 3.2.1). Got an error that I tried to google:

OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/IPython/'

And TRIED to avoid sudo-ing the upgrade of IPython, but I eventually gave in. And the upgrade worked beautifully.

Picked up Learn Python the Hard Way again. I’ve worked on it a couple times before, but never finished it. I am going to finish it this time, and then see where I’m going from there.

The less I focus on what other people might think of what I’m choosing to work on, the more I get done.

Recurse Center: week 1, day 4

End of the official RC week! Whoo.

Actually got to morning sitting on time! Made essentially zero wrong turns on my bike ride in, which was a first. (Not being able to turn left on a one-way that *does* go that direction was the only semi-exception.)

Zulip (which we use for internal chat) helpfully told me that there were “infinity” new messages, which I of course felt like I needed to read. But I learned a bunch of things, like how the blog aggregator works, and soon I will figure out how to add my blog there.

Mostly I didn’t feel like I got a lot of things done today, but I DID accomplish some time-consuming/awesome things. We had a keysigning party today, and Alice ran a workshop beforehand on getting all set up with keys and things. And it was the first keysigning party I’d been to! And I’m pleased that it was with my fellow RC folks.

There are a lot of moving parts to doing the whole authentication thing, though. Generate the key. Save it. Send it to a keyserver. Look up people’s keys. Save them. Set levels of trust. Sign things. Send THAT back to the server? I’ve been through little GPG/PGP workshops before, and it almost seems more daunting the more I learn about it.

However, I asked for help, and Greg immediately said he’d be happy to help me, so we walked through signing a key from the command line, which can be kind of an adventure, as it turns out.

Also went to lunch with mostly-different people, and even joined afternoon walkgroup for a little walk.

I did almost no independent programming today, which was a bit of a bummer, but I started reviewing Learn CLI The Hard Way, and did a little bit of morning warmup on codingbat. My friend, the bat.

Recurse Center: week 1, day 3

More bike misadventures; I got to morning sitting even later than yesterday — and it was fine again, of course. Even thought a little about my breathing this time! It’s such a nice way to start the day, and I can see myself doing this almost every morning.

What else?

  • Asked Liz about a book she’d mentioned during morning check-ins, since she said she’d “read a book” yesterday — it’s a nice little book about asking useful data questions, and I look forward to tearing through it at some point. Apparently I inspired her to try a library afternoon yesterday — just, like, go to the bookshelves, pull off whatever sounds good, read it unless it turns out to be boring.
  • Got to Tom’s “first day” tune-up workshop, and finally actually cleared out ALL my `brew doctor` errors, which might not have happened since a few years prior. So satisfying! And really nice to hear people saying “I don’t know” when they don’t know, yet not letting that be a stopping point.
  • Updated all the software. Just. All of it. XCode, command line tools, OS X itself, everything.
  • Longer-than-intended, but awesome, lunch at Buddha Bodai with several folks. Yay vegan Chinese food! Came back to a super-updated computer and more tea.
  • Did a little more .bash_profile/.bashrc tweaking, and whatever else looked good from the RC tune-up doc.
  • Attempted to start connect4, realized my brain refused to stay on task, and did some more codingbat. Might be a nice little code-meditation to do early in the day — I have a really hard time starting to work in the mornings.
  • Spent some time starting in on Learning Python, the glorious beast of a book. My copy just arrived today, and maybe now I will join morning “reading this book” club…
  • Trackpad demons inhabited my computer, prohibiting me from doing things like “moving the mouse as intended,” and facilitator Mary helped me exorcise them.
  • Played with TurtleWorld again — got seriously stuck with what should have been a slight change, since it caused my previously lovely circles to get GIANT and incomplete. After copying the book’s example code to a test file, confirming that it wasn’t the book code that was broken, and then comparing the differences, I figured out that it was due to the angle of each turn being an integer, rather than a more precise float. Had set my “I’m stuck” timer earlier, since the facilitators encourage asking for help after 15 minutes of being stuck (struggle for a bit, but don’t struggle forever), and it had six seconds left on it. Yay!

Recurse Center: week 1, day 2

  • Came early to join morning meditation/sitting group. Decided that sitting still for however long we’re sitting is my goal, and discarded all worries about not “clearing my mind.” Reminded of Buster Benson’s “meditation is doing nothing and seeing what happens.” At least I think that’s how I heard that line!
  • Morning check-in: I didn’t get much done yesterday, and no one finds this unusual or remarkable. Palpable relief.
  • Finished yesterday’s blog post, wrote my 750words for the day. Write all the things.
  • Spent some more time with the RC User’s Manual,  discovering I have previously missed some parts (I’ve read them now!).
  • Pomodoro: 25 min working sprints (“pomodoros”)/5 min breaks, with 15 min breaks after every 4 pomodoros, because that’s the default on my favorite Pebble app
  • Lunch at Butcher’s Daughter — really good vegan grilled cheese with adzuki bacon (???) and basil and and and. Mostly this is relevant because I remembered to eat, and tried something new independently.
  • Came back and finally got back to Think Python — picked up chapter 4 and playing around with swampy. I am actually super delighted by playing with turtles right now, so turtles it is.
  • Collaboratively incited conversation about near and not-near vegan food, and drafted up a wiki page for the RC wiki.
  • Worked through the difference between parameters & arguments again. Parameters are like the Socratic ideal, and arguments are like the actual chicken? Parameters are the class, and arguments are the instances? I’m not sure I have a good analogy yet, but I’m working on it.
  • Spent another late afternoon in the magic library corner, picking up books about Python, but nothing stuck as much as the conversations I ended up having about…something?
  • Went out for dinner with some folks, and then came back for movie night (a bit late, but oh well): we watched A Girl Walks Home Alone At Night, which was awesome.

Recurse Center: Day 1

Started at the Recurse Center today. Totally overwhelmed. Somehow anticipating this did not prevent it!

We had introductions in the morning, all the facilitators introduced themselves and some part of RC, we made big collaborative lists of things we’re excited about, and things we’re nervous about, and then, I don’t know, I guess we were unleashed on ourselves? That’s what it felt like for me. There are so many smart, kind people here, with all kinds of different stories, and they are already inspiring me to be better just by existing.

I spent part of the morning thinking about what I might want to work on:

  • Sidewalk stamp mapping/data munging/goodness knows what with all the geotagged photos I have of Portland sidewalk stamps (which show the contractor and the year they were put in). I want to do maps to them. I need to work on some other things before I get here, though.
  • Word science on 5 1/2 years of daily writing (!). One of the recent alums has also been writing there, so we might pair on this some Thursday (!).
  • Pebble app? I’m loving my new Pebble Time, and I keep thinking about how the apps I have could be slightly better, along with considering whether I need anything that doesn’t exist yet:
    • Pomodoro apps, for counting blocks of productive time — there’s the one I like, and the one that’s colorful and not very fault-tolerant. I want to take the best of both.
    • Something more useful for weather: do I need sunscreen? rain gear? is upcoming rain surprising? is the weather very different than it has been lately? New York weather is already throwing me for a loop. How can it be both warm and rainy in a single day? At the same time? It sounds like a fun way to delve into working with APIs (like Dark Sky!).

But also, the morning made me feel like I lost the ability to read words, and I kind of freaked out a bit.

One of the facilitators, Tom, put out a general invitation to ask him for help if we were having trouble figuring out where to go or what to work on — invitations make all the difference for me, so I walked over, we talked through what I’d previously done and what might be some bite-sized ways to get going here (little games, little command-line tools implemented in Python), and he gave me a good bundle of ideas, encouraging me to discard anything that didn’t excite me.

I spent most of the afternoon reminding myself that I do actually know how to program by doing an assortment of Python codingbat exercises. (Paper has been amazing for having an infinite whiteboard that I can carry around with me; I’m finding it helpful to puzzle through boolean pairs by making a non-pea-plant Punnett square. Someone taught me the logic-specific name for this kind of grid yesterday evening; I think it starts with C?)

I also remembered Pam’s comment about the excellence of the reading nook, and retreated to it to read titles and see if anything jumped out at me. I ended up devouring a couple sections of How Learning Works, which swiftly built on things I knew and added new information. I can see myself going back and rereading parts later.

Day ended with game night, and in a move that sort of surprised me, I stuck around and even played Settlers of Catan for the first time. (I lost horribly, but I tied with Nick, who works here, so I guess that’s not so bad.) My suspicion that RCers would be good people to try new things with: confirmed.

31: Follow the fear!

30: Be the conductor
31: Follow the fear

It’s new-number time! And time for a new yearly theme, too. It was pretty awesome thinking about being the conductor as I rode through the age of 30, and I’m looking forward to this new number. 30 was perhaps my favorite year so far, in a lot of ways, though it wasn’t without its hard parts.

The past year has been pretty intense, really. A lot changed, and much of that change was instigated by me. I could list those changes out in bullet-point fashion (and I did, for myself), but it boils down to “stop doing things that make you unhappy” and “start or keep doing things that make you happy.”

This is, unsurprisingly, easier summarized than done.

I moved for the first time in over four years, which would have been intense enough if it involved just the old apartment (which I loved). I haven’t lived anywhere for longer than that, except the house I grew up in, and it was a bit scary to give up the physical roots I’d come to depend on. I’m hoping to put down some new ones in the next year, but for now, I’m making peace with a little more flux. The storm before the calm.

And, of course, it’s much more complex than that. That choice and that moving-time chapter represented the end of a number of different dreams. It was stressful, it was sad, it was hard, and for the cherry on top, it coincided perfectly with a really tough time at work. Emotionally, summer sucked, and fall sucked, too.

But even now, looking back, I am certain that it was the right thing for me to do. And so I made big scary choices, and I’m finding myself a lot happier and calmer for having done so.

I kept going to therapy, which I’d just started a year ago on my own. I’ve been talking pretty openly about it with friends, and a number of them have come to me with questions as they think about how it might help them in their own lives. I’m honored to be trusted by people who I admire so much, and I’m proud of them for being proactive about their overall well-being. I really believe that everyone who has the opportunity to do so should think about doing some therapy from time to time, even (especially!) if you think that everything’s more or less okay right now. It’s like a check-up, and it establishes a useful baseline if things DO get harder later.

I wish I had done it way, way sooner, although it was financially a scary prospect a few years ago.

I’ve had a rollercoaster of technical learning at work, from official on-schedule time doing Python with our ops team (outside of my usual support role), to nothing, to learning outside of work with one of our data team members (and independently). Teachers are important, but so are noisy advocates. I’m really glad to have a coworker who’s good at both, and I’m looking forward to seeing what doors we can open this year.

My partner and I camped and hiked and hiked and camped. We have camping gear now! We use it! I’ve been spending so much more time outside in the past year than I ever, ever have before, and I am so much happier for it. We even started running again (neither of us has run in years), and we ran our first 5k together in April.

I’ve never used the word “partner” with as much intention as I do these days. With him, I feel like I have superpowers. I feel so much more capable of taking on things that seem impossible; a lot of it feels like magic, but I can articulate a lot of the individual components. We’ve talked a lot about how the stories we tell ourselves can be so critical to our future actions. Part of our story is that we always talk about everything, so I never have to wonder whether or not I should bring something up. I just do. And it is stunningly easier than it’s ever been, and words keep turning into action. I am regularly amazed by the ways in which we support and encourage each other.

We’ve been looking at houses, which is fun and scary in turns. We live in an amazing apartment, which makes the hunt seem much less daunting. (The housing market, for its part, makes it seem much MORE so.)

And I’m looking into how I can support my own growth as a programmer. Learning to program is something I’ve been fitting into my schedule in fits and spurts — right now I get up early most weekdays, come into work early, and work independently or with someone else. I told myself a year ago that I’d be in a programming role by now, and I was wrong. I still know it’s work that excites me, but it’s hard to make much progress with that little time. So I’m working on being creative about how I approach this. Is that vague? Absolutely. More clarity as I build it.

For this coming year, I’m taking a page out of my older sister Inara’s (metaphorical) book (although she’s going to have a real one out before long): follow the fear.

I’ve heard her give this advice — when you find something that scares you, go after it — and I’ve seen her live this advice. We’re a northwest family, mostly. And she and her husband sold their Portland house and moved across the country to Iowa a few years ago so she could go work on an MFA. They’ve been back in Oregon this year, but they’re about to move right back to Iowa for a new job at her university. It’s far away from everyone…and it’s as though this opportunity was tailor-made for her. I am certain she’s going to be an incredible professor; her future students are so very fortunate. For my part, too, I’m grateful to have a sister that inspires me to think of huge challenges as possible.

There are a lot of things I want to do this year, and all the interesting ones terrify me. I can think of three big scary things I’m excited about, and I hope to report back next year with “yeah, and I did all of them.”

Thanks, 30, and I hope your new neighbor is just as awesome.

On being 30; on being the conductor

Every day, I write at least 750 words on I’ve been doing this for a while now — well over four years, in fact — and just recently tied the ribbons on my 1533-day streak. (It’s a better way to view it than “I finally broke my streak.”) It’s something I take seriously, and it is not something I share.

I thought it would be fun to do something a little different today. Below are today’s words, minus two lines and my metadata, and sans proofreading:

Here goes.

Today I’m completing my 30th rotation around the sun on this weird little blue marble we call home. This has some interesting implications (e.g. contemplation of one’s unavoidable aging, the Saturn return aspect), but mostly it is one of the things I inexplicably love best: a totally arbitrary clean slate, fresh start, opportunity to redefine things.

This sort of clear, defined deadline has helped me do all kinds of things, although at this point I mostly remember the big ones (like when I decided to go vegan, or when I first tried a taste of vegetarianism).

Much of this gets lost in the shuffle, though. It’s easy, today, to say that I feel so fresh and renewed and lo, I no longer care about what other people think of me (and truly, I have been caring a whole lot less lately, which is something I’ve heard from a number of friends about 30). It’s harder to make that last a little longer. What about in a week? What about in a month? What about on my 31st birthday?

I have a really hard time facing things that I think are difficult, even if I logically understand that they’re not. For some reason, this seems easier at these arbitrary cut-offs.

I put off listening to three voicemails from my car insurance company for months, until I finally decided this morning that I didn’t want to start my 30s with their little notification bubble on my phone. So I listened to all of them, going as far back as last December, and they all said exactly what I thought they would, and now I have no notifications on my homescreen.

A little spring cleaning.

I got a bit of extra money a couple months ago, and realized I could pay down the last $1200 or so of my student loans (I dropped out of college, a bit to my surprise, 10 years ago this month. Partial advantage: I left with a bit over $5k in loans, which I’ve been paying off at $58 a month). But did I? Nope. Too daunting. Until today, when I realized I could look up the information and send them the amount to pay it all off. And off it went electronically, and I’m officially debt-free (well, as soon as the payment posts).

These things are not complicated, and they are not difficult, and what’s more, I am entirely capable of doing them independently. The extra push of a birthday just made it seem more urgent (and urgent things are what get done). And suddenly they’re off my plate.

But I can’t wait to do everything important once a year.

There are the important things, too, that I don’t even consider THIS often. I’ve been meaning to fork Buster’s /public directory on GitHub, because I have a long history of adopting habits or rituals he’s made (e.g. 750words, Health Month, 8:36) to great success. I worry, a bit, about not creating or starting things on my own. But one thing at a time.

Buster’s been doing yearly reviews for his birthday for nine years now, starting on his 30th (see for this year’s). This is especially interesting to me because we share a birthday, so the reminder that I could also do this thing on this one magic day usually hits about a day too late. Even today, I’m supposed to be heading out to meet friends to celebrate a little. And instead I’m writing up things here as well.

So I’m issuing a challenge to myself: set down a few big things today, flesh them out over the next week, and consider that to be good enough for this first crack.

This year’s theme: actually, I’m not quite sure. I made myself a list and I’ve been throwing ideas on it today.

I mean, I’ve been thinking a lot lately about how we (okay, I) accomplish things. Ruminating a lot on the general metaphor of gathering steam, like a locomotive, and looking like you’re doing nothing for quite some time until finally, you push away from the station, and you’re on your way.

I want to be my own conductor this year, and this decade (well, and this life, but I have to start somewhere).

I want to realize that I’m on my own train, and I’m the one fueling it.

If I don’t fuel it, it won’t go.

And if someone or something keeps trying to put out my fire, I need to find ways to block that or put it out.

This is a pretty fine metaphor. (I’ve been thinking about trains a lot lately.)

So okay. The theme for 30? “Be the conductor.”

I think.

And then I’ll work on my /public repository this week. And I will start putting a little more structure into how I conceive of myself (I hope), and how I create my own storyline.

Taming Conference Business Cards with Customer Support Tactics

Last week, I attended the Grace Hopper Celebration of Women in Computing in Minneapolis. It was inspiring, intense, vibrant, and information-rich, and gave me a lot of fire for the year ahead.

Like several other conferences before it (previous GHCs, Open Source Bridge, and unconferences here in Portland), I met a bunch of interesting, engaging people. I also got a bunch of business cards from those same people.

Unlike every previous conference, however, I actually reached out to every single one of them within 12 hours of getting back home.

This made me feel like a wizard, and it wasn’t nearly as hard as I feared it might be.

Overwhelmed by the very idea? You can do this, too. Let’s talk about how.

Continue reading Taming Conference Business Cards with Customer Support Tactics

Invocation for new beginnings

It’s best to start quietly.

There’s plenty of time and space for noisy mistakes soon enough.

As I work on building up my code, guitar, and assorted miscellaneous skillz, the aim here is two-fold:

  1. Document the process of learning something new, or figuring something out, so I have a record of my own history.
  2. Blaze a trail for people who will learn the same (or similar) things later.