Today in computery things.

Success! I sorted out a git merge problem all by myself and it worked! And wrote some unit tests in Xcode, thanks to Natasha The Robot!

Fail! My mac had two kernel panics today. The first time I suspect Xcode because it had been a bit crashy, but it wasn’t running the second time. So I’m now side-eyeing Spotify and vagrant.

Neutral, followed by hilarious! I thought of a Zulip feature I wanted to add that I thought would be pretty quick to do because there were examples in other parts of the system for all the required ‘chunks’ (display sublist over here, find all PMs over there – should be a pattern matching exercise. And it was, at first, as I added code and tested it in the Chrome dev tools. (Have I mentioned how freakin’ ecstatic I am to have access to a proper debugger in a browser? I learned about it two weeks ago and I still catch myself giggling with delight). Then all of a sudden Zulip completely stopped working. So I undid my most recent change. Still busted. Undid the previous one. Still busted. Here’s where I start shaking my fist at dynamically typed/interpreted languages that don’t have compiler errors. I worked on it for a while and finally sent up a flare, asking for anyone who knew python well and the Zulip codebase at least a bit.

A fellow Recurser came to my aid and I started walking him through my code, talking pretty quickly until I saw the look of confusion on his face. I asked him what wasn’t clear and he said “I thought you said you were having trouble with python. This is Javascript.”

He was, of course, correct. I had been working in Javascript all afternoon (c.f. delight for the Chrome debugger above – bit of a tip-off, eh?). I just had been so used to working in the Zulip back end, which is written in python, that my brain had set WORKING_LANGUAGE=”python”. I mean that context was well and truly set, to the point where I had looked up the best way to determine if a python Dictionary contained a key and written some code in that format. But I had deleted it before saving & running it because I’d realized I didn’t need that check.

I don’t know if it’s a good thing or a bad thing that I can work in a language without knowing which one I’m in (in truth, I tend to base so much of my coding style on the style of the code that I’m modifying that it’s not terribly surprising) but I’m guessing it didn’t boost my credibility very much 🙂

At any rate, I have fallen back to what all of us with more than a couple of year’s programming experience do when we hit these types of errors-that-can’t-be-possible: copy all my changes somewhere else, grab a fresh copy of the pre-modified code, and reapply each tiny change one by one, testing & committing after each change. Same as it ever was.

Advertisements

It has been ‘a week’ (wait for it – there’s an upturn at the end)

Of the 6 subway trips I have taken (so far) this week, the first 4 had major issues: train taken out of service, “sick passenger” at a downstream station (which I truly hope is not a euphemism for someone on the tracks), track situation (based on the MTA ads, likely a track fire due to litter (people, pick up your litter!)), and just an unknown ¯\_(ツ)_/¯ delay. Each was 30 minutes minimum. I didn’t mind much: the out of service was the day I took the J, so I was above ground & got a lovely view of early morning sun, the ‘sick passenger’ was no doubt having a MUCH worse day than I was, the track situation one I was on the train with a friend who I enjoyed talking with, and for the ¯\_(ツ)_/¯ I was listening to a Pema Chödrön track I had somehow not heard before!

The thing that had bothered me a bit was that I finally gave into the pressure to drop off my laundry instead of doing it myself and that.. did not go well. I stopped to drop it off Monday morning (including pyjamas) on my way in to the Recurse Center with the expectation that it would be done for pickup that evening. It was going to be $8! Less than it cost me to do it myself! But… apparently it would be done Tuesday evening.

That’s not what I had been led to expect. ALL my clothes were in there (like I said – even pyjamas!). I asked if there was a way to pay more for express service and the gal behind the counter looked slowly over her shoulder. As I gazed along the wall of bags of laundry, I knew what the answer would be. No. Ok, that’s fine, I hate sleeping in clothing anyway – it’s only b/c I’m at an Airbnb that I even bother. And I have either some summer capris or some fancy clothes I can wear on Tuesday. [Note: this was before the first of the Train Events so I didn’t know what was coming.]

Fast forward past a lotta train stuff to me stopping by Tuesday evening (7pm) to pick up my laundry. When I dropped it off, I tried to pay for it but the credit card processor wasn’t working (shoulda been a tip-off). The woman gave me a receipt anyway (which confused me because I hadn’t had any coffee yet – it was for my actual laundry pickup as opposed to a credit card slip) and told me to call to make sure it was done. In a fit of optimism (and because the laundromat is only 2 blocks from my place) I stopped by without calling.

Yeah. Not only was it not done, it wasn’t started. And when I asked about it by the receipt number, it wasn’t in the job log. The only reason she found it was that ‘black mesh bag’* was written on the slip (and the fact that I could see it as one of the foundation blocks in the new laundry wall and pointed at it). Here’s where it was a blessing that the CC didn’t work because when I said “Can I just have it back?” she asked “Did you already pay?” Since I hadn’t, she gave it to me. (I assume that she’d have given it to me anyway if I was willing to forfeit the $8, but clearly there was no way to give a refund).

So today, the day when the trains didn’t turn on me, I left RC early to do laundry. [It was windy & rainy enough today that an RC-er from Seattle went to buy an umbrella. Remember how I have a mesh black laundry bag? It’s technically a scuba fin bag which is great for letting wet fins drain and not so great for protecting freshly dried laundry from the rain] I loaded up the Stanford iTunes U Swift course on my iPad, grabbed the noise-cancelling headphones, wrapped the mesh <smdh> laundry bag in my trenchcoat & headed out.

The laundromat actually didn’t require the noise-cancelling headphones that early (by comparison, when I stopped by last night to pick up my clothes, there was a kid literally racing around the place on a razor scooter and three others screaming and hunting each other. At least I assume it was hunting. It didn’t look like playing) and things were going well. When it was time to change over to the dryer, I had to go get one of those baskets to move my clothes. I was overloaded with raincoat, trenchcoat, annoying mesh bag, backpack to protect iPad & headphones, iPad & headphones, laundry soap and dryer sheets. I dashed over to get the rolling basket & came back & piled all the stuff on the clothes, loaded & started the dryer.

Then I went to check my email on my phone.

So, I didn’t mention my iPhone above b/c it’s usually attached to me. iPad is extra, headphones extra, backpack extra, etc. iPhone is in pants or coat pocket. But this time, because all clothes are in the laundry (and coats are piled on the laundry) I’m wearing running tights & an exercise shirt and have no pockets.

Hm.

Thus began a 14 minute panicky search for my phone. Is it somehow in the dryer? (IS IT MELTING?) No. Is it in the coat pockets, all wet? No. Is it on the washer I just left? No. Is it in the laundry soap bag? No. Is it … wait. There IS nowhere else. Is it over by the rolling baskets? No? The dryer? (yes I checked again) No. The coats?? NO. THE WASHER? NO. THE???? NO!

I started looking at the three other people in the laundromat panically. I went to the front and asked “did… did anyone turn in a white iPhone?” No. (I mean, of course not, right?)

So. It’s gone. Given the way the week had been going, this was almost to be expected, right? I mean, there are a couple of other things about the place I’m staying that I didn’t mention (but were in my mind) that just made me feel “oh, so THIS is what the week was building to”. And yet…

I wasn’t angry. I was barely even sad. I mean, it’s just a ‘thing’, right? The only part I was really upset about was that I was chatting with Bill and was worried that he’d be concerned about me and I needed to wait for the clothes to be done before I could got home and tell him what happened. The only other bit that pissed me off was that I wasn’t even supposed to be doing laundry b/c I had dropped it off and that was supposed to have worked. Anyway. I took a deep breath and did some walking meditation (I credit a lot of the buddhist stuff for my fortitude and equanimity on the trains this week) and there it was. On the top of a dryer (that I had looked at before but not seen due to panic).

I was so elated that I went to tell the woman at the front – I thought “I want to share this happiness with other people”. She was very happy for me (as was the ~70-yr-old woman doing her laundry who had tsk-tsked when I asked if anyone had turned it in), but very sincerely warned me to be careful because “some people aren’t nice”. This was a lovely young woman, max 22 years old, working at a laundromat in NYC who was really genuinely concerned for me because she thought I might not be taking enough care. (Which, partly true, but still…) That was so sweet and kind that I found myself wondering if all the shenanigans that had occurred up to then, including the laundry fail, were just a set up for me to experience that moment of faith in humanity.

[j/k, I don’t believe in serendipity or fate or superstitiony things, but I do believe that meditation practice, and certain kinds of emotional and mental practice can help you find this kind of grace when it happens rather than not noticing it]

I think I am going to move

I’m staying in the farthest east part of Bed-Stuy and it’s about a 1 hr commute door-to-door to the Recurse Center and as a result, I’m not going to some events in town in the evenings because I feel like I have to go home.

I’m nervous about it because I’m worried about upsetting my Airbnb host. Because I have an overactive loyalty gland. One that trumps market realities, apparently! There’s a 30 day cancellation period, so I found myself thinking “oh, is it really WORTH moving for just one month left at the end?”

Well, duh. I brought ONE suitcase. I can move in 10 minutes. I HAVE moved in 10 minutes in the past, while traveling, out of pure need/fear. So it’s silly to have hangups about moving – I should move every week!

[Update. Not moving, and here’s why 🙂 ]cat on bed

[Update to update. Moving. But not until mid-late Nov]

Recurse Center, Day 4

I’ve been doing the Stanford iOS development in Swift course for the past few days (as well as attending talks and doing a bit of C pairing (I apparently remember C! Huzzah!)) and I’m feeling a bit… static. Lots of other people are already writing code and I’m just doing tutorials. I do want to write a couple of iOS apps, so I want to get through that course, but I think that I might be using it as a procrastination tool. So I’m going to mix that up a bit today.

Here is a list of things that, as a programmer, I basically nopetopus away from:

nopetopus gif
Nope to ALL of these:
  • UTF-8, Unicode, any of that sort of thing
  • Cryptography
  • Bash/shell scripting
  • Audio, video, general media formats/manipulation

I’m sure that list will grow, but in the spirit of diving deeper into understanding and moving closer to things that make me uncomfortable rather than avoiding them, I’m going to spend today (and possibly tomorrow) working on the Matasano crypto challenges. And I’m going to try to do them in  Rust (learning that language as I go). Wish me luck!

Placeholder for things to come

I’m in NYC for the next 3 months; I arrived at Newark on Friday at 5pm local time and have been pretty slammed since. I’m here for a few reasons, but specifically the reason for NYC is that I’m attending The Recurse Center (Fall 2 batch) to reboot my software development skills. After I left Amazon, I spent about 8 months supposedly doing that, but mostly what I was doing was purchasing online courses about how to be a web developer/etc and not completing them because they always started at way too basic a level. I also realized that I work better with others and that I was unlikely to ever make progress on my own. The Recurse Center is not a software developer bootcamp, but more of a programming ‘retreat’ where people go to become better programmers (and boy, did that stump the border guard). So I think the odds of me actually making progress here are much greater.

But that’s not the only reason I’m here. I’ve fallen into a lot of bad patterns and habits at home, health & well-being wise and the plan is for this to be a bit more of a traditional ‘retreat’ as well as a programming one. I have goals to meditate daily, eat vegetarian, exercise 5 times/week, stretch and roll out my bad muscles daily, and not drink any alcohol. I also plan to write and reflect a lot more. To that end, I’m spinning up two new sites (one is a relaunch of a sadly abandoned venture but I actually had it printed on business cards this time, so you KNOW it’ll happen 😉

I’ll be launching learnwithkara.com and beupstry.com next Monday.

LWK will be a journal and writeup of all the stuff I’m doing at the Recurse Center as well as a writeup of that site’s creation overall (unlike this & the other, I’ll be using a static site generator at first and then gradually migrating that to hand-coded). It’ll also include host any projects I actually manage to complete that are web-demoable.

The Beupstry will be, as originally intended, a place where I reflect on becoming a happier, better person and talk about the things I am learning about how to think differently, how to react differently, and listing the resources I have found helpful in doing that. It’ll probably be pretty heavy on lay-buddhism and self-awareness and self-compassion.

But right now, it’s 9:51 EDT and because I have to get up early and exercise before going to the RC, I am going to sign off now (as noted in this Beupstry v0.1 post, sleep is critical to mental and physical well-being). Have a fantastic day!

The Newest Member of the Spice Girls: Breakfast Spice

Green Smoothie
Photo by Joanna Slodownik / CC BY

I hate leafy green vegetables. They’re boring, largely flavourless, and my lips inadvertently purse into a weird scowl when I have to buy them at the grocery store (fun fact – this appears to be not entirely psychological, since apparently my brother & uncle have the same reflex, but they LIKES them).

I’ll eat an interesting salad (ideally ones with spices nuts & some sort of strongly flavoured cheese crumbled in) but it’s always an effort of will. Which is Bad, of course, because leafy green vegetables fall clearly in the Good category.

A couple of years ago, on a lovely hot summer day, I was walking around trying to decide what to have for lunch. I wasn’t very hungry and I definitely didn’t want anything cooked. I decided to try a green smoothie at (what is now) LeafyBox.

It passed the first test: I didn’t go blind.

It ALSO passed the second test – it was actually quite pleasant! But I have no idea what they put in it, and I wouldn’t swear that it didn’t have a lot of sweetened juice in it as well.

[two years passes]

About a month ago I was at Costco with a friend and saw some GIANT bags of spinach. Me: “I should eat more salads!”. Cut to a week later and a bunch of very limp spinach in the drawer at the bottom of the fridge. I had a LOT of ginger in the freezer from Sunrise Market and thought “well, maybe that would make it more interesting.”

It does! I’ve now tried them with and without LOTS of ginger and the ginger makes a big difference – it’s fun to drink instead of just a slog. So here’s my new daily breakfast. Give it a try!

Kara’s Spicy Green Smoothie
  • 4c baby spinach & kale mix (~40 cal according to the bag, ~80 cal according to MyFitnessPal)
  • 1/2c regular yoghurt (100 cal)
  • 1/4c coconut milk (~80 cal according to MyFitnessPal)
  • 1c carrots (~50 cal)
  • 2c frozen fruit (~120 cal)
  • 1/2c ginger (~50 cal – I keep it in the freezer, which will affect when it goes in the blender)
  • ~1c water

Start by  blending the yoghurt & coconut milk with the greens until they’re well mixed.

Break the carrots into thumb-sized pieces & blend them in (‘chop’ is fine – we’re not going for ‘fully liquid’ yet.) If your ginger is not frozen, add it now.

Add the frozen stuff SLOWLY. I use the ‘crush ice’ setting on my blender, but if you put it all in at once, the liquids freeze and you end up creating a cave at the bottom of the blender that nothing falls into. If you add the frozen stuff in batches, you don’t have to poke the contents down into the blades as much. Add the water in batches as well when things start freezing together.

Once it’s relatively smoothly blending, step up the levels until you get the consistency you like. Me, I like ‘liquify’ – there’s always going to be a bit of fibrousness left from the ginger, but not much.

Makes about 2.5 SOLO cups of smoothie. So, that’s… what, 40 oz? And you’ve started the day with probably all the vegetables & fruit you need. I’ve now had more leafy green vegetables in the last month than I have in probably the previous 6 months. And it doesn’t feel like ‘work’.

The Natural Voice

Go listen to this first. No, I haven’t listened to it. I am a woman who runs on headlines, not articles, you think I have time for that kind of thing? A podcast? psshah!

Done?

Back when I went to university the first time (The Original Series – TOS) I was studying theatre. That, in retrospect as a woman in computing science/tech, is fucking weird to reflect on.

So! Much! Emotion!

So! Much! Bodywork!

Masks! (no, seriously, Masks!)

One of the assigned textbooks was “Freeing the Natural Voice” (I’m not linking to Amazon, you can’t make me!)

Wow. I mean, just… wow. In a fit of purging a few years back, I got rid of that book but I was sad every day afterwards. (Aside: I need to go back & do those exercises. The more time I spent in offices in software, the tighter and clampeder my throat and voice got. I can do better. WE can do better)

As mentioned in my last post, I’m attending a Shambhala meditation retreat. The director is a prof of dance and theatre at Western Washington University and man-o-man, is he speaking with his natural voice!

Despite the fact that 2.75 hrs is TOO DAMN LONG for us newbies to sit/walk/sit meditate without more lead-in (especially us oldies!) the relaxation in his larynx, his voice, his manner, reminds me of where I started out (duh, theatre, dance, voice, c’mon: you should know that by now) and makes me melancholy for where I am now. I’m searching for human feeling and the more time I spend talking with my old-tymey actor comrades, the more I wonder if that’s where my heart lies.