Wednesday, July 2, 2014

After-Action Report: The Asus PB287 4K Monitor

Sometime about two weeks ago, I mentioned I had asked my desktop group to get me a 4K monitor.  Now that I've been using it for two whole days, I figured I'd say a word or two on this monitor, since I know some other people are considering getting one.

First, the slightly less important stuff:  Thanks, Asus, for including multiple HDMI cables.  Also, thanks for having this thing attached to a monitor stand that tilts, rotates, and moves up and down -- It's a nice enough stand that if I wasn't committed to having everything off my desk (and using a monitor arm), I'd be very tempted to keep it.  Nice call.

More important: HOLY COW LOOK AT THE DESKTOP.  The amount of desktop space available on a 4K monitor is the sort of stuff that makes me -- having had to work on 17" 1028x768 monitors not all that long ago -- giggle madly.

Sure, sometimes in order for something to be easily read by me (remember, old guy with glasses here) I have to increase the font size.  But not always -- for example, right now I'm writing this in whatever the native font size Chrome uses.  I also seem to be able to code well with the standard font size.

Minor downside: In the absence of a Thunderbolt hub, I now have to connect three, rather than two, cables to my laptop -- power, USB, HDMI.  So far it's not a huge drain on my productivity and happiness.  If it becomes such ... well, for one thing, First World Problem[tm].  For another, even if I end up spending another $200 on a Thunderbolt hub, that's still going to land me at $850, about $150 less than the Apple Cinema Display (ACD).

So, final verdict: Is this profoundly, amazingly, materially, better than the ACD? Maybe not.  It's maybe trivially better (for me).  But it's also 2/3 of the price.  What would I get if I was buying a monitor for home? Definitely the Asus PB287 rather than the ACD, any day of the week.  I *heart* this monitor.

Thursday, June 5, 2014

IT and Standards: A Love Story

Chances are that if you work at a reasonably-sized organization with an IT group, there'll come a time when you ask for some equipment that IT has not yet certified for use in your company.  What happens then?

A long time ago, I worked at a place where all they had certified were 17" LCD panels (this was back in 2007, when 17" LCDs were already considered small).  I asked for a 19" display (same brand, just slightly different model) and was declined, because it was non-standard.  Which is pretty much what I've come to expect from IT at a large organization.

Fast-forward -- my setup here at Netflix is a Macbook Pro attached to a 27" Apple CinemaDisplay.  Pretty nice, but I'm interested in more screen real-estate, so now that 4K displays have dropped in price, I submitted a request two days ago for an Asus 4K display.  Totally outside the spec -- I haven't seen a single other 4K display on anyone's desk here (aside, of course, from 4K displays we've been testing streaming on.  We're Netflix, after all).  Here's the helpdesk ticket.  "CTS" is Client Technology Services, our desktop folks:

05-30-2014 08:53 PDT - Roy

received from:
May I please get an Asus PB287Q (4K display, should be about $650) at my

05-30-2014 11:59 PDT - Willie
Forwarding to IT-Purchasing to order. Please assign ticket back to me to deploy when delivered. thanks, Willie
(order information redacted)

05-30-2014 13:37 PDT - David
Hey Jenny,
Please order a second unit for CTS to test with.

So to recap:

I asked for a new monitor, which wasn't on our desktop support group's radar.  The response was to modify the order -- one for me, one for them to test.  It's worth noting, BTW, that the monitor was ordered prior to the desktop support involvement, because they don't play an approval role for equipment purchases.

How do your IT people deal with your non-standard requests?

Wednesday, February 20, 2013

Comparing Separation Resistance Between Magsafe Options

As I noted in my last post, I recently replaced my older Macbook with a new Retina Display Macbook. Apple changed its power adapter format on the MBPs to use the slimmer adapter format it previously had on recent Macbook Airs, which means that you have to either use a tiny little $9.99 adapter to use your old power supply or use a new power supply.

Searching the internet there's consensus that the new Magsafe-2 connectors seem to be much less securely attached to the laptop; in conversations internally at work, there was a suggestion that old (Magsafe-1) power supplies with the $9.99 adapter seemed more securely attached than the new (Magsafe-2) power supplies.  So I got curious and conducted an informal experiment.

The laptops
For a Magsafe-2 laptop, I used my own recently-purchased Macbook Pro Retina Display.  For a Magsafe-1 laptop, I used a coworker's 17" Macbook Pro, about a year old.

The power supplies
I used three power supplies: The classic power supply with a chicklet-looking connector, the more modern power supply with an L-shaped/barrel connector, and the new Magsafe-2 chicklet-looking connector.  The older power supplies were tested with the Magsafe-2 adapter (on my new Mac) and without (on the older 17" MBP); the new power supply was obviously only tested on my new Mac.

The tests
I taped a little paperclip about 3" from the connector end of each power supply, then used an RCBS Trigger Pull Scale to measure how much force it took to cause the power supply to separate from the laptop when pulling away from the laptop in three directions:

  1. Straight left from the laptop
  2. Straight away from the laptop (and away from the user)
  3. Up from the plane of the laptop
The results
Up Left Away
Old chicklet 0 3 lbs 1.25 lbs
Old L-style Off the charts .75 lbs Off the charts
New chicklet 0 3.5 lbs 2 lbs
Old chicklet with adapter 0 3.75 lbs 1.375 lbs
Old L-style with adapter 1 lbs 1 lbs 2.75 lbs

"Off the charts" in this case means more than 8 lbs, the maximum capacity of the scale.

Notes and Opinions
It's clear that overall, nothing beats the old L-style connector for attachment strength, though I'm not certain this is a good thing -- at more than 8 lbs, if you pull hard enough on the cord you'll be taking the laptop with you, potentially causing an accident as it falls off the table.  That said, it's important to note that in this testing, I was slowly increasing the stress on the cable; in a real life accident, what we'd see is a quick shark jerk and it's more than likely that the connector would require less of a tug to separate.  

What you take away from the results depends on your particular use case, i think.  In my case, where I have the laptop on a bed or a couch, the biggest concern for me is the ability of the connector to stay in place in the face of pressure up from the uneven surface; in that case, I'd definitely prefer the old L-style with adapter option (1 lbs) to any of the other Magsafe-2 options, which were so weak in the face of upward pressure I could not measure how much force was required to separate the connector from the laptop.  

Saturday, February 16, 2013

When IT's On Your Side

This post is about the IT group in my current company (Netflix), but I want to set the context (and contrast) by first talking about a previous IT group with which I worked.  I'll leave the previous company anonymous.

A long, long time ago, I worked for a large company.  Their desktop support group and the purchasing group working with it loved standards.  I know, desktop support people usually are fond of standards -- that's a sane approach, because it can vastly simplify supporting and managing equipment if you don't have every one of your customers have something slightly different -- but this was on a completely different level, a "if you love it so much why don't you marry it?" level.  A few exemplary anecdotes:

  • The organization was using Lenovo Thinkpad T40s at the time (this sort of organization, they're the last who'll come to the Mac table).  When they found out the particular model they were deploying was soon going to be discontinued, they spent over a million dollars stocking up on this older model so they didn't have to change their standard for as long as possible;
  • I had a 17" LCD on my desk.  At some point I asked for something bigger, a 19" or 20" LCD. I was told by our purchasing people that they would not approve any LCD bigger than 17", because as soon as they did the floodgates would open and everyone would want a larger LCD.  As a result, as far as late 2008 we were still buying 17" LCDs at a significant premium over 19" and 20" LCDs because at this point only one company we could find was actually still making LCDs that small.
These examples are probably not normal for our industry -- I've certainly not seen it get that bad anywhere else I worked (though I also never worked for a company as big as the company above).  

I was thinking about how IT interacts with employees this last Friday because I had two interactions with our own IT folks (at Netflix), one direct and one indirect, that felt like the epitome of how IT should be thinking, and what IT should be doing.  Mind you, this is mostly in the area of what you might call employee technology -- supporting employee computing needs -- rather than, say, server upgrade projects.  But I think the lessons apply.

First example: I had an interview to do.  That's not unusual for me -- I conduct probably about ten interviews a month (more on a good month.  I like interviewing).  So I printed out the candidate's resume and ... wait, let me tell you what that actually means.

I brought up the candidate's resume on my screen, then hit cmd-P to print it.  I then went to grab a quick snack.  On the way back I passed by a printer -- not the closest one to my desk -- passed my cell phone near it, and it showed me I had one print job pending.  Printed that resume, walked with it back to my desk.  

See, a few months ago IT installed these little sensors that work with our access badges to log us into the printers.  This means I now print to a printer-independent queue, and then I can whenever is convenient walk up to any printer in our campus, authenticate myself with my access badge, and print my job right then.  From my perspective, it's a huge win: I don't have to figure out what printer I'll be going by, and I don't have to go right now because it's not printing until I show up.  It's entirely possible  that if anyone cares about it, they can actually run accounting reports to see who's printing how much, but ... I don't really care about it.  That, in addition to the fact that in the last year we've been replacing our NFC access badge keyfobs with a tiny little sticker so it's now permanently attached to my phone (no more losing my keyfob) means printing is a delightfully invisible process now.  I don't rush to printers, I don't try to figure out, based on where I'm going, what printer will be closest to me.  Print, go, if you see a printer on your way get your document there.

Second example: Netflix's approach to laptop standards is pretty simple: They have a few standard models, and if an employee wants something different, they'll figure out how much the different model is, communicate it to the employee, and if the employee is comfortable with the price they'll get the laptop.  In my case that means I've been running with a slightly non-standard Macbook with one of them newfangled magsafe-2 connectors.  More and more people are getting them, but we're still a minority.  I have a whole lot of support infrastructure for my Macbook -- about four power supplies, for pretty much everywhere I spend time (living room, bed room, laptop bag, desk), and they're all magsafe-1 power supplies.  So on Friday I asked if I could exchange two of my older power supplies for new, magsafe-2, power supplies.  They weren't in stock, but they were happy to get some for me if I wanted to email the helpdesk as a reminder.  Meanwhile, I dropped by my local desktop support room, chatted with the folks there, and was given two magsafe-1-to-magsafe-2 adapters.  No ticket.  No purchase order.  No approval.  

So what's the point here (other than "Netflix's IT people rock my world")? 

I've been in IT for a long time, and for about as long I've been a customer of IT groups.  From an ITIL perspective, Service Delivery and Service Support are particularly interesting to me, and areas I'm particularly passionate about.   My experience as IT's customer was notable to me by how absolutely invisible IT (and to some degree printers) were in the first case -- my process wasn't printer-centric, it was me/user-centric; in the second case, getting hardware from IT was about as easy as walking to the supply closet and grabbing a highlighter.  And, hell, now that I think about it, we actually have hardware supply closets and I might have been able to just get my adapters or power supplies by just visiting these closets without even talking to anyone.  

That's the way you do it.  When your customer breezes through their day not having to think about how they need to work something out with IT, when print jobs just show up wherever the customer is, or they get what they need because on their way to getting their work done they pass by some place that will just give them what they need (and do whatever process and documentation needs to happen on the back end, invisible to the customer), you become delightfully invisible.  I didn't even realize how happy IT made me on Friday, until hours after my interaction with them.  That's the goal.


Thursday, May 19, 2011

Chatterbox, and the Failure of the Hawthorne Effect

Hawthorne Effect: "a form of reactivity whereby subjects improve or modify an aspect of their behavior being experimentally measured simply in response to the fact that they are being studied..."

I found out about the Hawthorne Effect by reading about Chris Anderson's TEDxSV talk about Living by Numbers.  In it he discusses HE's beneficial effect when you share measurements with a social circle (e.g. all your Facebook friends knowing how much your weight changes).  He's got a point.

The interesting thing about both the original experiment and Anderson's versions of HE in action is that they're on polar opposites of the freedom scale -- the original experiment measured subjects which had absolutely no ability to opt out of being measured; Anderson's subjects explicitly opt in. 

And in the middle of the freedom spectrum ... that's where Chatterbox comes in.

I mentioned Caffeinator in a previous post, where I also mentioned Nominum's very chat-intensive work environment.  At the time, I managed the QA organization, and so was one of the 3-5 managers in the engineering organization. 

At some point, we noticed that some people seemed to be chatting a lot on our chat system, and in some cases having much of that chat be not work-related.  This was doubly an issue because starting lots of idle chat means other people will join it.  At the same time, and probably at least partially because the work/life boundary was extremely porous, engineers were occasionally grumbling they worked many hours (despite basically setting their hours).

This seems suboptimal, and someone suggested we start talking to people we think are doing a lot of idle chatting.  To me, this seemed unnecessarily heavy-handed; not to mention, it would have required us to make some off-the-cuff decisions about who was chatting a lot without information.  It seemed .. lame.  I had a better idea (now's the time to look atop this post and note the name of this blog). 

I had already built a bot which interacted with our chat system.  I figured we'd build a new bot that just kept stats about who was chatting where and would provide aggregates of this information.  I figured we'd post this information publicly and people -- upon seeing the numbers -- would self-manage.  "Oh hey, I sent 450 messages to a non-work-related discussion last week, and only 38 messages to the discussion about my own product."  Makes sense, right?

Chatterbox was pretty elegant.  It did a bunch of aggregates -- per-hour, work-hours, non-work hours, per discussion, for work-related discussions, for non-work-related discussions, etc.  I even got a license of ChartDirector so we could make pretty graphs.  It was great.  I was proud of it, and the other management thought it was pretty cool.  We had high hopes.

And then everyone rebelled. 

We (management) knew we intended to not do anything with this information.  Frankly, the whole thing was created with the express intention that it would allow us to not manage employees around their chat participation.  Employees? Despite the fact Nominum was (and still is) the most laid back company I've ever worked in, from a management/engineer interaction basis, people got incredibly paranoid. 

Overnight, many engineers quit all discussions in protest.  In other cases, private discussions were created as analogs of the public discussions which excluded Chatterbox.  At least one engineer credibly threatened to resign if Chatterbox wasn't turned off.

We tried to address some of those concerns by turning down retention to one week so old information could never be used against anyone.  It did no good.  If I recall correctly, Chatterbox was decommissioned about 2-3 weeks after it became operational. 

I've made worse mistakes in my professional career, but in hindsight, this was probably one of the most interesting ones. 

Silver Linings

This post is relevant to the name of this blog due to the fact that it started with me, today, managing to forget my laptop at home.  this is probably the second time in my career at Netflix (689 days), and feels like a pretty debilitating problem -- I live on my laptop.  Everything's on it.  I back it up, so I'm not too concerned about losing it (there's nothing that's both confidential and unencrypted on it), but being without it for a day, last time, was a pain. 

And yet I'm sitting here and looking at the cloud's impact on how I work and ... I'm loving it.  I got a loaner laptop from our desktop people.  It's a delightfully sexy Thinkpad T410s which is great and ... a completely different architecture from my actual laptop (a 15" MBP). 

In the year or so since I last left my laptop at home, I've made some changes in how I work and where I keep my information.  This included:
  1. I use 1password to keep track of all of my passwords; 
  2. I use Dropbox to sync a small set of data to the cloud.  Dropbox hasn't been hugely integrated into how I work, but 1password integrates with it natively to back up its password cache to/from the cloud; 
  3. When I left the PC platform behind to go to the Mac, one of the big pain points I had was in abandoning Microsoft OneNote for note-taking -- but I replaced it with Evernote, which is 
    1. Free; and
    2. Auto-syncs to the cloud; and 
    3. Allows me to sync notes with various people (e.g. my previous boss)
  4. And of course, my mail/contacts/calendar have never been primarily stored on my laptop, since I work in a corporate environment (whether you're using Exchange or Google Apps, that point remains)
  5. My IM client (Trillian) stores most of its information (and all of the contact info) in the cloud
That means that, today, I spent about ten minutes installing 1password, dropbox,  Evernote, and Trillian.  And once that was done ... I'm basically functional.  Life is good.

I'm digging the cloud right now, for reasons entirely unrelated to Netflix's use of it.

Monday, May 16, 2011

Coffee and its Effects on Feature Creep

Starting in mid-2004 and until the end of 2006, I worked at a small DNS and DHCP software company called Nominum.  These days Nominum offers both software and services, but at its core what has allowed it to be as successful as it has been is the fact that its development group is, singularly, the most brilliant and personally committed to the company group of developers I've ever seen.  Most of the developers with whom I worked had been there from just about the beginning of the company.  It was the sort of environment where my VP was still doing the Costco shopping (though admittedly she enjoyed it), everyone knew every other employee's spouse's name, and we got together to have our dogs play. 

That's less relevant, however.  The two introductory bits of information necessary for this posting are:
  1. Nominum at the time had tons of RPI alumni, and because of this had implemented an RPI-sourced chat system named Lily.  Lily is more IRC-like than Yahoo Messenger-like in the sense that it's largely oriented toward offering multi-person chats (in IRC these are channels; in Lily these are called discussions); you can also send private messages, but it's typically used less often; Lily was very heavily used (one of the earliest lessons I had to learn was that if it was 1AM and my boss just sent me a private message asking me a question or asking me to take care of something, it was OK to say "actually, I was about to go to sleep; I'll deal with it in the morning."  It took me some time to learn this lesson);
  2. We worked approximately a mile away from Starbucks, and we went for coffee every day.
The problem was that the coffee ordering process was just terribly inefficient.  At some point in the day, someone would pop up on the "coffee" discussion and send out a broadcast "coffee?" to all interested parties.  At that point, people would have to say on the discussion what they want (e.g. "I'll have my venti non-fat 180 degrees vanilla  latte with two equals, extra squirt of vanilla, and whipped cream."  No, seriously, that was my drink at the time), the person who was volunteering to go would then write the order down (with a pen and a piece of paper), they'd go to Starbucks where the barista would have to decipher their handwriting, and make the drinks.  Typically, the person who went to pick up would pay for the whole order and then would try to keep track of how much each person owed them (people did not often have the exact cost of their drink available).

It doesn't take too many iterations of this to get a little sick of the inefficiency.

Lily was really easy to interact with -- it was a telnet-based interface, and we weren't doing any encryption.  Writing a bot to interact with Lily proved to be a trivial task.  I called it Caffeinator.

By the end of the first weekend of development (this was, obviously, a rather extra-curricular sort of effort), Caffeinator could see that ordering was opened, then listen to people saying "I'd like X," from which it would create a shopping list which it could post as a web page.  When ordering was closed, the person doing the shopping could visit the web page and print it out.  The order takers were happy.  Starbucks was happy.  Success.

It was still painful to have to say "I'll have my venti non-fat 180 degrees vanilla latte with two equals, extra squirt of vanilla, and whipped cream" every day.  So it was easy to have Caffeinator start keeping track of your favorite.  Saying "my favorite gnfl is a grande non-fat latte," for example, meant you could next time simply say "I'll have my gnfl" and Caffeinator would note you wanted a grande non-fat latte."

In rapid succession, we added the ability for it to optimize ordering for the Starbucks drink carriers (Starbucks drink carriers accommodate four drinks; ideally, all four drinks are similarly sized for balance, but at minimum it's preferred to have two pairs of identically-sized drinks).  We also added the ability to order for other people (so if I'm in John's cube when coffee ordering is open, John could say "Roy will have his gnfl") and the ability to define other people's drinks, if they let you (yes, I implemented coffee drink definition ACLs).  And that was still not that big of a deal.  It all sort of made sense.

In hindsight, it was probably right around the time that I implemented debt tracking into Caffeinator that I should have taken a break from enhancing it and reconsidered whether feature creep had gone way too far. 

Remember the part where someone comes back with your drink and you find out you don't have the $4.15 you owe them? It's annoying.  So after a particularly fun weekend, suddenly debts could be declared to Caffeinator.  Obviously, the potential for mischief when you can say "John owes me $4.15" is high, so the first implementation required people to declare their own debt ("I owe Roy $4.15.").  Of course, I also had to implement debt repayment ("John paid me $4.15").  The next implementation allowed for a proposed debt ("John owes me $4.15," which would result in Caffeinator telling you "John says you owe them $4.15.  If you agree, send me a message including this key: 'xxxasdfasdf325'").   Then, of course, I got curious about the total balance of debt/credit and so had Caffeinator report your TCNW (Total Caffeinator Net Worth) -- your total credits minus your total debts. 

It didn't take long to see some people's TCNW fluctuate way more highly than simply coffee ordering could account for, and realize Caffeinator became the default way in which social monetary debts were being tracked.  Your coworker with Amazon Prime order something for you? "I owe Matt $88.95." 

Once the network of debt and credit became saturated enough, it turned out that most people had dozens of people with whom they carried either a Caffeinator debt or a Caffeinator credit, and I came up with a way to allow people to simplify their credit/debt situation by reassigning debt.  Imagine Jim owes you $10, and you owe Bob $10.  Well, that's easy.  Tell Caffeinator "reassign $10 from Jim to Bob" and suddenly Jim owed Bob $10, and you were out of the picture.  Heck, two people owe you $5 and you owe four people $2.50 each? You can eliminate six credit/debt relationships at once. 

Of course, this being an environment full of mischief, the next thing we had to deal with was people gaming the system just for the sake of annoying others.  Bob owes you $1? Well, declare that you owe twenty people $.05 each, then reassign $.05 of Bob's debt to each of these people.  Suddenly, these twenty people find Bob owes them $.05 for no particular reason and Bob's really unhappy with you.

My last enhancement to Caffeinator was to allow people to opt out of debt reassignment.  That seemed to stop most of the gaming.

And that's how I set out to simplify ordering Starbucks and created an internal banking system.