One year and counting

biohazard warning

It’s crazy to think that as of this week, we (at least inside our house and at our respective companies) have been working from home for one year now. I don’t think that even in our wildest or scariest dreams, we thought that we would be doing this one year on.

In hindsight, it makes perfect sense, because of course. Of course no one would listen to social distancing guidelines. Of course wearing a mask would become a way to definitively predict your political preferences. Because, of course.

It’s interesting to go back and read through some of the emails our company had sent, giving us some guidance on our updating and ever changing work from home policy in the early days of the pandemic.

March 1st, 2020:

As you’ve most likely seen, Coronavirus, COVID-19, became more of a concern over the weekend as additional cases were reported. To date, there are more than 60 cases in the United States, including new cases in the Seattle area.

Our plan is to operate our business tomorrow (and for the foreseeable future) as close to normal as possible. It’s important to stress that your health is of utmost concern.

March 4th, 2020:

Based on local risk factors and active conversations with peer organizations, we are taking extra precautions around Seattle and the San Francisco Bay Area. We are encouraging employees to work from home (WFH) where possible in these offices through at least this Sunday, March 8, at which time we will re-evaluate. This guidance is voluntary. There are no plans to close any of our work locations at this time.

March 5th. 2020:

However, based on local risk factors and active conversations with peer companies, we are extending our guidance of encouraging employees to work from home (WFH), from Seattle and San Francisco to all other California offices. We are also extending the time-frame until next Friday, March 13. Going forward, we plan to update WFH guidance each Friday through the end of March.

We are also increasing limits on work travel to and from Seattle. Please do not travel to or from Seattle for work.

March 8th, 2020:

At this time, there continues to be no confirmed cases of Coronavirus among our workforce. However, out of an abundance of caution and ongoing monitoring of local situations, we are extending our guidance of encouraging employees to work from home (WFH) to our New York City and Phoenix offices. This is in addition to our continued WFH guidance for our California and Seattle offices. This WFH guidance is in effect until this Friday, March 13. We will update our guidance each Friday through the end of March.

March 10th, 2020:

However, based on the rate at which we’re seeing this unfold and recommendations of the CDC and other health organizations for ‘social distancing’, the Senior Leadership Team has decided to expand ‘encouraged work from home’ to all our offices starting tomorrow, March 11 through March 20, 2020. I want you to feel empowered to do what is best for you and your situation.

All of our offices will remain open and employees who feel comfortable coming in are able to do so. We will also continue with our increased, proactive cleaning protocols. During this time, we have advised teams to discontinue large group meetings and all employee lunches will be cancelled. Our offices are being cleaned regularly and are open for business when you need to be there.

March 16th, 2020 at 11:00 AM:

Based on recommendations from the CDC and other health organizations for ‘social distancing’, SLT has decided to expand our ‘encouraged work from home’ recommendation through at least April 10. Local conditions and school closures play an important part in our decisions about extending WFH guidance. With schools and businesses closing rapidly, we know this might impact you on a very personal level. Let’s work together. We all need to be flexible and understanding with each other right now.

Our offices remain open with elevated cleaning protocols, but we want to continue supporting guidance of ‘social distancing,’ so please only come into the office when necessary.

March 16th, 2020 at 1:49 PM:

As I’m sure many of you have already seen the article in the Chronicle asking folks in the Bay Area to shelter in place starting tomorrow Tuesday, 3/16 at 12:01AM. I want reiterate in light of COVID-19 concerns, we are encouraging our employees nationwide to work from home. The safety and well-being of our employees, customers and partners across the country is our highest priority, and we are closely monitoring the guidance of the Centers for Disease Control and Prevention (CDC) and local authorities.

April 1st, 2020:

We are going to extend our WFH direction until at least May 1 for all office locations. We made this decision based on recommendations from health authorities, school closures and to continue to do our part around social distancing. Some schools will be closed beyond May 1 and we know this will impact many of our employees with school-age children. We will continue to support you by extending WFH options until you have access to reliable and safe child care. We’ll continue to monitor the Coronavirus situation across the country and will update our direction as needed.

April 24th, 2020:

Our decision to re-open offices will depend on a number of factors, including the safety of our employees, the public health situation in each local community, and being flexible based on the type of work and productivity of teams and individuals. While we hope to officially reopen offices over the coming months, we don’t see a scenario in which large groups will be able to return at once – we expect any opening to be gradual.

Given these considerations, we have made the decision to give you the option to work from home through at least the end of 2020. We want you to have flexibility to navigate this situation and do what is best for you and your family. We know some would prefer to work from the office as soon as possible whereas others might prefer to alter living arrangements to be more comfortable and productive.

July 29th, 2020:

We won’t continue to announce temporary extensions of WFH. Until COVID-19 is no longer a threat, we will continue to encourage WFH as we are today. In addition, ‘post-COVID’, our new flexible working arrangement categories (outlined below) will enable ongoing WFH options for the majority of our workforce – indefinitely. This means that the majority of us will not be expected to return to work at an office full-time, save for a few hundred employees in heavily regulated or office-specific roles.

What a surreal period of our lives. Hopefully, hopefully we are turning a corner on this thing and we can visit with our coworkers, friends and family again.

Fixing rendering issues with React and IE11

Happy April Fools’ Day. This post is no laughing matter because it deals with IE11. 🙀

Awhile back, we had an issue where visitors to our site would hit our landing page and not see anything if they were using Internet Explorer 11. The skeleton layout would appear on the screen and that was it.

Debugging the issue using IE11 on a Windows box proved to be difficult. Normally, we open up the inspector window, look for an error stack and start working backwards to see what is causing the issue.

However, the moment I opened the inspector, the site would start working normally again. This lead me down a rabbit hole and I eventually found a relevant post on StackOverflow: “Why does my site behave differently when developer tools are open in IE11?”

The suggested solution was to implement a polyfill for console.log, like so:

if (!window.console || Object.keys(window.console).length === 0) {
  window.console = {
    log: function() {},
    info: function() {},
    error: function() {},
    warn: function() {}
  };
}

Interestingly, we didn’t have console.log statements anywhere in our production build, so I figured it must be from some third party library that we were importing. We added this line of code at the top of our web app’s entry point to try and catch any instances of this. For us, that was located at the following path: src/app/client/index.js

After rebuilding the app, things were still broken, so the investigation continued.

We eventually concluded that the issue had to do with how our app was built. Our web app is server side rendered and we use Babel and Webpack to transpile and bundle things up. It turns out, Babel wasn’t transpiling code that was included in third party libraries, so any library that was using console.log for one reason or another would cause our site to break.

(The fact that IE11 treats console.log statements differently when the inspector is open vs. not is an entirely separate issue and is frankly ridiculous.)

Knowing this, we were eventually able to come up with a fix. We added the polyfill I posted above directly into the HTML template we use to generate our app as one of the first things posted in the head block. The patches console.log so that it’s available in any subsequent scripts (both external or not) that use it.

<!doctype html>
  <html>
    <head lang="en">
      <meta content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0" name="viewport"/>
      <meta charSet="UTF-8"/>
      <script>
        if (!window.console || Object.keys(window.console).length === 0) {
          window.console = {
            error: function() {},
            log: function() {},
            warn: function() {},
            info: function() {},
            debug: function() {},
          };
        }
      </script>

After that, everything started working again in IE11.

#TheMoreYouKnow

Working extra hard for those steps

20130507-223030.jpg

I love my Fitbit. It’s easily one of my favorite gadgets that I own. It’s unobtrusive, the battery lasts forever, and its presence subconsciously reminds you to get up and move around a bit more.

In my previous jobs, I’ve been lucky to have the option to walk to work instead of relying solely on public transit. This gave me a chance to get some extra activity in at the beginning and end of each day and reach Fitbit’s lofty goal of 10,000 steps per day (equivalent to about 5 miles). It’s something that I always enjoyed striving for.

With my new gig, I walk around the corner to BART, take that to my stop, hop right onto a shuttle and then get dropped off right in front of our office. This means I lose out on having a built in opportunity to get some activity each day. (The walk from the BART station to the office is a little bit longer that one would want to walk — about 5.5 miles each way.)

Fortunately, our campus has a free gym with some nice equipment. On days where Kerry and I don’t go to the gym in the morning, I try to go here after work and get in those much needed steps. It’s a bit crazy how hard you need to work for them. After a full day in the office, I’ll run 3 miles on the treadmill and feel extra accomplished. At least until I pull out my Fitbit and it says I’m short by about 1,500 steps. Wow.

So, I’ve been trying to make a conscious effort to get more steps each day. Make sure I go to the gym in the morning (and / or evening). Do a lap around our campus at lunch time while calling my parents. Walk to the grocery store in the evening when I get home. (Interestingly, recent studies seem to indicate that walking and running have nearly identical health benefits.)

It’s pretty crazy how much I’ve taken things like my simple morning walk to work for granted. But I’m happy that I’ve been able to make a conscious effort to do healthy things.

An ngnomo’

Due to downsizing and restructuring, last week was my last week at DeNA San Francisco (formerly ngmoco). Past ngmoco alum have a special saying for this type of thing: “I’m an ngnomo’!

The past year or so has been a blast! I met so many great people and I know we’ll cross paths again. We did a lot of great work together and had a lot of fun in the process, plus we learned a lot and taught each other a lot too.

Anyway, I’m excited for new opportunities and even bigger and better things to come. Stay tuned! 🙂

A look back at the last year:

It’s been fun!

Gdgt office

Hey folks,

Today is my last day at gdgt. It’s hard to believe that I joined the team almost 3 years ago. Time flies when you’re having fun! It’s been a wild ride, but it’s time for me to pursue some new opportunities in 2012!

I want to thank the gdgt community for making my job an absolute blast and helping create something awesome! It’s been a fun experience chatting with everyone on gdgt, on Twitter, and even in person at our gdgt live events. I’ve met a countless number of great people, and for that, I’m super thankful.

Thanks for the fun times and happy memories!

Until next time,

-Dave

Missed gdgt live in SF? Watch it on TWiT!

Part 1 – (Fast forward to 1 hour and 39 minutes in the video, that’s when the coverage starts in this particular video):
http://www.justin.tv/twit/b/273782240

Part 2 –
http://www.justin.tv/twit/b/273789393

Part 3-
http://www.justin.tv/twit/b/273796620

Civ V and OS X – A mark of desperation

I’m currently somewhere over New York state, flying Virgin America back from Boston (where we had our gdgt live event last night). I only brought my iPad with me on this trip. Which is painful, because Civilization V is currently out!

So, I wanted to see if it was even possible to play. Are you ready for this mark of desperation?

Civ V running on Windows 7. In a Parallels for OS X virtual machine. Via a VNC client on my iPhone. What?! So, what happened? Screen shots below!


Yes?


Yes.


YES!


NOOOOO!

My biggest environmental consulting fear

More drilling
My old office

In what seems like another lifetime, I used to be a geologist for an environmental consulting company here in the Bay Area. One of my biggest fears was drilling through a gas line.

We were often in the field, supervising remediation projects or gathering data in preparation for a remediation project. This often involved gathering soil and rock samples while drilling a series of boreholes that ranged anywhere from 3 feet in depth to around 100 feet in depth.

Before we ever drilled on a site, we consulted numerous maps and hired a company to carry out a USA (underground service alert) survey. The objective of a USA survey was to detect any utilities (gas, water, electricity) and mark them on the ground so that any drilling or excavation work wouldn’t impact said utilities.

This is what all the crazy markings you see all over a sidewalk or on a street mean.

usa.jpg

While working on a project in Ukiah a few years ago, we marked a series of spots to drill and had a survey company make sure our spots were clear of any subsurface obstructions. Then we had a drill rig come out and start putting down boreholes.

Midway through the first day of drilling, we were sitting at our logging table when we heard a loud rushing sounds followed by frantic shouts. We looked up in time to see a 30 foot geyser of water shoot up through the top of rig’s tower and the workers scrambling away from the site.

We promptly contacted one of the property owners who turned off the water. After surveying the mess (a lot of muddy ground and a very wet drill rig), it turns out we had drilled right through the middle of an old asbestos cement water main about 6 feet below the surface. It never appeared on any site maps nor did the company conducting the USA survey detect it.

Since the pipe contained asbestos, special care had to be taken to clean up and repair the main, which involved masks for air filtration and disposable Tyvek suits.

Fortunately, it was only a water main (and not a very big one, at that), but it’s something that I was extremely paranoid about in future drilling operations that we conducted.

What if, through sloppy work, unmarked maps, or some other coincidence, it was a gas main? It’s a thought that still scares me today.

The moment it happened

Skip to about 40 seconds in to see the action. The vocal urging, frustration at Dempsey’s miss, then pure elation when Landon scored were exactly the same at the pub I was at in San Francisco. It was an awesome moment that I won’t soon forget.

And they say Americans don’t like soccer.

Sharing your gadgets

my-gadgets.PNG

This week, we rolled out a new feature at gdgt that allows users to embed their gadget lists onto their own personal website or blog. It’s a pretty awesome way to show off what gadgets you have or want, and even foster new discussion about the technology you’re passionate in.

We previously had a flash widget (ugh) that was designed by a third party — fortunately or unfortunately, they’re going out of business and shutting their service down. So, the team took it upon themselves and designed our own widget in house. It uses javascript, is completely cross platform, and looks dead sexy!

Check it out!