Monthly Archive: August 2014

Dreams, Decisions and the Subconscious

I dreamed of work. Not in a good or bad way, more as an alternative to what-is. I woke in the early-morning light, thinking, “Again?”

Be aware that if you make a major change, this will happen. The other will come calling when you least expect it. The decision not made.

I know why I dreamed of work this time. I ran into someone I know from that sphere — something that happens fairly often. I enjoyed our conversation. Now my subconscious is spinning, assessing the weight of different platters and decisions like items on a restaurant menu. Artichokes or linguine. Sushi or Thai curry. Neither better or worse, just different choices.

This dream wasn’t driven by dissatisfaction. I had an immensely successful week. I presented my first software to spontaneous applause and a flurry of questions, once to peers and once at a popular meetup. It was the reaction I’d hoped for and imagined. There is something there. I’ll keep working on it. I’m making progress and learning.

Who knows how the brain works. Maybe that was the trigger, the achievement of something, even if it’s a first something. I don’t feel as if I’m done with my sabbatical. But sometimes the decision not made drifts up at odd times, on a gray morning during a holiday weekend that doesn’t mean anything because holidays are irrelevant now. Maybe that’s it.

Regardless, I slept eight hours, and now it’s time for breakfast, code and laundry.

Keep Thinking. Go Faster.

I’m staying in a loft in Dumbo. It’s beautiful and furnished in a midcentury style, just under the Manhattan Bridge that rushes trains over the East River. It’s a dynamic, shifting place. Sometimes the apartment shakes when trains pass.

It reminds me of Hawaii’s Big Island, where I slept in a hotel room built on rocks near the ocean, which shook at night with the waves. I left the balcony door open and let the noise in.

Three weeks ago, I was living in Brooklyn Heights on a street with shops and restaurants. Climbing stairs to a view of roofs and balconies in utter quiet.

I prefer this, the moving and shifting and change in Dumbo, at least right now.

I have a pet again too, am enjoying the company of a small dog who runs to greet me and plays fetch and watches me jump on the trampoline in the apartment (which is amazingly awesome).

I work in my room at a white desk with a painting of a wave on the wall, or in the main loft at a long table that occasionally hosts dinner parties held by my roommate/host.

One of the great joys of my recent nomad-ness has been living with roommates again. It’s forced me out of my comfort zone and into contact with people who have adventurous lives different from my own. It’s made me more productive and imaginative, and I’ve made new friends as I explore new neighborhoods.

It’s like turning New York up to 11 — extending its influence right into my living space, which is usually a haven and a refuge from the noise and motion.

Amid this chaos, I am thriving. I have few belongings. I don’t do housework. I eat well but simply. I minimize everything that’s not waking up and working on interesting problems and learning things. Exploring new places and ideas.

Sometimes I feel scared by all the new things I’m doing. I feel like I’m on a train I don’t really know how to drive, staying on the tracks but pushing the accelerator harder and harder. On purpose.

“How does that feel? Terrifying? Great. Take it from 60 to 80.”

At least for right now, it feels like the right place, at the front of a speeding train, figuring out how things work. It’s what I needed. The purpose of these two years is to do as much as possible, and as many things that scare me as possible.

I remind myself I won’t get stuck if I keep adapting. If one approach doesn’t work, try another. Repeat until satisfied. Keep thinking. And go faster.

In the meantime, there’s a dinner party.

Day 89: Victory

I cannot begin to describe how happy this makes me:

Terminal output from Xcode voice recognition plugin

And this:

Xcode voice recognition plugin

I went back to the voice recognition plugin. I thought about it differently. And it works.

It’s not perfect. Far from it. But the key bottleneck is broken. This basically means everything I want to build, from a functionality perspective, I’ll be able to build.

I’ve never actually experienced this in coding before. I always just had someone help me through the hard parts, which was good for productivity but meant I never really learned to work through a tough problem in code. It’s awesome.

Referencing the “Day 89” in the title of this post, it’s Day 89 since leaving my job. Day 31 of Hacker School.

Ebola and Unbounded Risks

The Ebola virus is probably the biggest news story in the world right now. Not because it takes up the most bandwidth — it’s often drowned out by the Mideast conflict, Russia-Ukraine or the stock market. And not because it’s the biggest current threat to most people on the planet. It isn’t.

It’s the biggest news story because there is a potentially unbounded risk.

When Probability Is Fairly Meaningless

Whenever a potentially unbounded risk exists, you should do everything you can to avoid or mitigate it. On an individual level, one example would be buying a “dream house” with a buried oil tank in the yard. Chances are, you’ll be fine and removal will cost a few thousand or at most a few tens of thousands of dollars — and you’ll gain a dream house for a below-market price. But there is a tiny-yet-non-zero chance that you’ll strike calamity and end up spending $500,000+ to remove something from the ground that originally came from the ground anyway.

This is not a risk you want to take, and most real estate buyers have realized this by now, which is why you can’t sell a house with a buried oil tank.

The Window of Unscripted Outcomes

So, back to Ebola.

Everything is probably going to work out over the next several months. World health authorities probably have the capabilities to contain the virus, they will chase it down wherever it pops up or transfers via airplane, and as a bonus we’ll finally develop a vaccine or cure for this terrible disease.

In the meantime, though, the sharply increasing number of cases doesn’t paint an optimistic short-term forecast. And as we wait for a long-term positive outcome, there is a tiny-yet-non-zero chance that something will happen that is not in the script.

That is the unbounded risk.

A Decent Strategy: Overreact and Look Silly

Revolutionary moments, not incremental moments, are what direct the course of history. The leap, the shift, the eureka. It’s often good (from our perspective) when humans make these leaps: discovering fire, agriculture, gravity, antibiotics. It’s not always so good (again, from our perspective) when organisms like bacteria and viruses do it.

In this case, with Ebola, we should do everything we can to avoid an unscripted outcome, which probably means doing things that look like overreacting now. Back in March 2014, it would have looked like overreacting to speed up development of promising treatments, get more health experts to the center of the epidemic, and get more protective supplies to health workers, but those steps would have been exactly what was needed. No one doing those things would have gotten enough credit for stopping a disaster, but the point is not getting credit. The point is stopping an unbounded risk, which is almost always worthwhile.

It’s much better to overreact early than to try to stop a rainstorm with a tarp later.

Name-Calling and Emotional Chaos

A few years ago, I realized there’s a phrase that consistently unnerves and upsets me when people use it as a weapon: my name.

Not like in an email greeting, or an in-person hello, or a, “Hi, my name is…”

I mean when my name is used to express frustration, to call me on the carpet for a perceived slight or shortcoming, to treat me as if I’m five years old being scolded by my parents. I react badly. It’s an instinctive, id-brain reaction that leads me to shut up, shut down or walk out. I simply lose the capability to conduct a rational argument, and sometimes end up in tears in a bathroom stall.

If It’s About the Work, It Works

On the other hand, I’ve taken plenty of criticism at the professional level that stayed at the professional level and was completely acceptable and even productive. Conflict is good in a war of ideas, bad in a war of egos. Criticism of the work is fantastic; criticism of the person who made the work is evil.

Names have power. And often the person using the name knows this. It’s unprofessional to let conversations devolve to the lowest common denominator simply to win or make a point. The best managers know this and rarely if ever do it.

Consider: If you hired a person because they were brilliant and productive and friendly, why would you take an action that strips those characteristics away and replaces them with upset and resentment, based on ancient evolutionary chemical reactions? It’s not logical.

Name-Praising Instead of Name-Calling

Another action we can take to stop name-calling is to start name-praising. Have you ever noticed that when telling someone they did a good job, the phrase is usually, “You did a great job on that, thank you.” It’s almost never, “Stephanie, you did a great job on that, thank you!” Or, from a friend, “Stephanie, I’m so happy to see you!”

Most of us mostly hear our names when we’ve done something wrong.

Over time and thousands of interactions, this usage pattern builds up emotional “muscle memory” that’s hard to undo. It’s worth undoing, though, to reclaim our names and make them sources of joy, pride and love — which is what they were at the beginning and really should be.

Things Accomplished versus Distance Covered

I’m in week four of Hacker School.

It’s awesome. But I’m struggling with a dilemma: balancing the tough problem and the maximum ground.

I view Hacker School in terms of two metrics: Things Accomplished and Distance Covered.

Of course I want to accomplish some things. I have a whole list of things I want to accomplish, some while at Hacker School and some afterward.

But the whole point of doing Hacker School, for me, is to learn the maximum possible amount in the time given, so that I become a much better programmer for whatever comes next.

This means I also need to keep an eye on the Distance Covered.

It doesn’t mean I will abandon tough problems forever; but it does mean I don’t want to spend the entire 11 weeks on one problem without any guarantee that I’ll solve it in that timeframe.

Asking the Right Question

So I’m forced to balance things. The right question is not, “How long will I spend on a particular project?”

The right question for me is, “Given the rate of progress I am making, the amount of code I am writing, and the amount of learning going on, how long will I spend on a particular project at Hacker School?”

That’s why I’ve decided to set the voice recognition project aside for now and continue forward with my Hacker School plan by turning my attention to Swift for the next two weeks.

But I Love Tough Problems

I wasn’t too happy about this decision, because my experience has been that the projects and problems I delve into tenaciously and refuse to let go until I’ve figured them out always produce my greatest successes and joy. It was true with high-speed trading risk controls at my prior job. It was true with health issues that I defeated.

But those projects take years, not weeks.

I don’t have years at Hacker School. I have time to learn a lot about a lot, meet and enjoy working with great people, and build a base for tackling the really tough problems afterward.

The Nights-and-Weekends Compromise

I discovered that the voice recognition project is 100% doable — it just requires a lot of work. More work than I have time to dedicate to it at Hacker School.

So, my compromise is to make it a nights-and-weekends project, while spending my time in the Hacker School space completing my Hacker School plan.

That means Swift for the next two weeks and then a shift to JavaScript and node.js.

Meanwhile, I’ll be mulling the voice recognition project in my spare time, which is probably the best way to tackle tough problems that are at an impasse. I will figure it out. But I will also accomplish other things and cover the distance.

Staying on the Sidelines: A Rant and a Challenge

I don’t want to hear about how I can’t do it.

I believe the reason why so little gets done is because humans are so good at circumscribing our worlds to contain our immediate circumstances and no more. We forget about the entire world of possibilities outside of our little sphere, or choose not to think about them because thinking about them makes us feel sad or scared or angry or resentful.

We are very good — too good — at telling our fellow human beings they can’t either.

If you go out there — if you do that — if you climb that wall — if you look around that corner — the worst will happen. People will hate you. You will fail.

But if you listen, to your own cautioning voice or to others, and you stay on the sidelines in your comfortable little chair? You’ll always wonder what could have happened, if you climbed that wall or stepped outside your comfort zone or did that scary thing. You’ll think about it at night, when everything is quiet, and the small voice that speaks truth inside of you will say, “You could have tried.”

Resentment comes from failing the small voice inside of you, not from failing others or from failing yourself, but from being too afraid to try at all.

“It’s better to have tried and failed” is a proverb for a reason. The greatest regrets are usually the what-ifs. And we are capable of so much, and so afraid of trying already, that the last thing anyone needs is someone else telling them they can’t do something, or won’t succeed. If someone has gotten up the guts to try something we should applaud that person, applaud them for trying, victory or failure, and encourage them to keep trying and keep adding to the world.

If we all tried to add to the world, we’d have a much better world in aggregate. But instead we spend a lot of time telling people why they shouldn’t try, or can’t succeed, when we should be telling them the opposite and supporting them in their dreams and efforts. Real work is done by people taking real risks, not people watching safely from the sidelines, numbing their own still small voices and telling others to stay on the sidelines with them.

So let’s change this dynamic around. If resentment comes from staying on the sidelines, then staying on the sidelines is actually the scariest choice, and leaving the sidelines is lower-risk. Can we encourage people to get up from their chairs, make it the cool thing to do, cheer them on, welcome them back with open arms if they need a rest and some Gatorade, and then send them back out there?

It would be a better world.

Say What? My Voice Recognition Dilemma

I tried Mac Dictation this week. My goal was to get a few simple sentences to appear in a text editor. Initial experiments were not successful. The full sentences I attempted were garbled beyond recognition when they appeared on-screen, so I fell back to word-by-word communication.”Make.” Made. “Maaaaaake….” Mate. No. Try again. “Maaaaaake….” Made. No. “Create….” Create. Aha. Victory is mine! “An.” In.

I progressed word by word, slowly and carefully, and my text editor dutifully showed the words on the screen with numerous errors. This was not production-ready. No one wants to talk as if they’re scolding a recalcitrant pet.

To be clear, I’m not a marble-mouthed mumbler. I’ve recorded books on tape for Recording for the Blind and Dyslexic (now Learning Ally), and I know I can enunciate well. But Dictation couldn’t understand my voice.

I knew that if I couldn’t get text to appear on-screen, I couldn’t complete my project. I’ve started coding the next part and it’s feasible, so I really want this to work!

So, I Googled for my options:

1.) Try to improve Dictation’s performance by improving my computer setup;

2.) Buy Dragon Dictate and hope it runs on my underpowered 2011 MacBook Air and has better accuracy than Dictation.

3.) Abandon OS X entirely and do the project in a Windows virtual machine with Dragon Naturally Speaking for Windows.

4.) Try using OpenEars to build an iOS app that does the same thing.

Only the first two options really get me to my initial goal; the last two are pivots that require adapting to different platforms and approaches.

So, tomorrow I’m buying a USB headset to eliminate ambient noise and provide a clearer dictation experience. I really hope this improves Mac Dictation’s performance by leaps and bounds. If it does, I’ll be off to the races. If it doesn’t, I’ll be installing Dragon Dictate on a machine not made to handle it.

I’m heartened by the discovery that once I get the text on the screen, my goals can be accomplished. I’m discouraged by how difficult it is to actually get the text on the screen. But discouraged does not mean “gave up.” It means I’m thinking hard about the options.