Setting Up a Second Ubiquiti Unifi Site

To finish out my misadventures in home networking, I wanted to capture the process to add a second site and setup the site-to-site VPN. It was less than obvious.

Preparing Your First Site

The first thing one needs to do is prepare the first site. This involves enabling Multi-Site Management and then configure the USG to expose the needed ports for the controller.

Enabling Multi-Site management can be accomplished using the following steps:

  1. Configure your controller to use the New User Interface.
  2. Open Settings
  3. Open System Settings
  4. Expand Controller Configuration
  5. Expand Site Configuration (within Controller Configuration)
  6. Make sure your first site has a name
  7. Check the Multi-Site Management dialogue to enable it
  8. Apply these settings

Now, in the upper left under the Ubiquiti logo, you will see a circle with an abbreviation of your site name in it. This is how you switch sites. Click on that and you can add a second site.

Once you have added that, go into the second site, open Settings, and create your Network and WiFi networks. Note: You must configure a different subnet than your current site. (E.g. If your current site is the default 192.168.1.x, you should configure for example 192.168.3.x.).

Upon completion, it is time to configure the USG. See Ubiquiti’s knowledge base article and create port forwarding rules for everything in the “Ingress Ports required for L3 management over the Internet” to point to your controller.

To make things easier, it is probably easiest to setup a DDNS service to make it easy to find the controller from the second site.

At this point, it is time to move onto configuring the second site.

Configuring the Second Site

All Unifi security gateways by default are on the 192.168.1.x subnet. Because this is a second site, it will have to be configured differently. You will need a laptop connected via Ethernet to the LAN port of the gateway to do this. For the sake of this blog, we’ll assume the second site is 192.168.3.x. The steps required are as follows:

  1. Connect the laptop into the USG LAN port.
  2. Setup a static address on 192.168.1.x network – any address is fine other than the default of 192.168.1.1. Set 192.168.1.1 as the gateway and a public DNS server such as Google’s at 8.8.8.8/8.8.4.4.
  3. Open in a browser https://192.168.1.1/.
  4. Change the address to the new subnet (192.168.3.1) and apply these changes. Ensure that the WAN connection is active/valid.
  5. Change your laptop’s IP to the new subnet.
  6. SSH into the USG using the default credentials.
  7. Enter set-inform https://yourddns:8080/inform/
  8. Wait a few minutes and the device should show up in the Unifi portal at the first site. Adopt the device into the second site and this phase is complete.

Once the USG is adopted, other devices can be setup and adopted accordingly.

Configuring the Site to Site VPN

Once both networks are online, setting up a Site-to-Site VPN is very easy. In the Unifi portal, go to the Networks section in either site. Create a New Network. Pick Site to Site VPN and select the other site – and that’s literally it.

My own experience is that occassionally it will get disconnected and the easiest fix is to simply delete and re-create the VPN network.

******

Hope this has been helpful!

Weekend Project: Using a Nest Hub Max to Access GSuite + Control a Nest Home

One of my long weekend projects was to be able to use a Nest Hub Max to access my GSuite work calendar and reminders as well as control my smart home utilizing my personal GMail and Nest Account. Google has said that this is supported for a while, but it took quite a bit of trial and error to actually figure out how to make it work.

Note: For this to work you must be on the same Wifi network for all of the steps.

Step 1 – Get the Nest Hub Max Working on GSuite

From an out of the box/factory reset perspective, the first step is to set the Nest Hub Max up with your GSuite work account. I opted in to enable the device preview program. I also configured a Voice Match and Face Match and configured personal results to always show proactively. This allowed my work calendar to pop up reminders and show upcoming meetings proactively and that I could join Google Meet by tapping on the display.

Step 2 – Unlink But Do Not Reset

The next step is somewhat orthogonal. Go into the Google Home application and select the Nest Hub Max. Go into Settings. Then select Remove Device. This will remove the device from your GSuite account’s Google Home so that you can add it to your personal account’s Google Home where your Nest devices are installed.

Step 3 – Adopt the Device Into Your Personal Google Home

The next step is to switch accounts in the Google Home application to choose your personal account. You should see the Nest Hub Max as a local device; select it, go into Settings, and add it to a room. This will add it to your household.

Step 4 – Configure the Assistant Settings

In your personal account’s Google Assistant settings, remove voice and face match from any of the Nest Hub Maxes that you wish to use with your work account. This will ensure that there is no confusion.

Then, switch accounts to your GSuite account.

Go down to Voice Match, select Add a Device, and select the Nest Hub Max. This will get your GSuite account linked to the Nest Hub Max.

Then, while remaining signed into your GSuite account in Assistant Settings, go into Face Match. Hit the “+” icon to add a device, and then select the Nest Hub Max. Then you can configure Personal Results under Devices in Assistant Settings while still signed into your GSuite account to show proactively or show upon face match (which is what I have chosen).

Then, whenever you are in front of your Nest Hub Max, you have access to your work calendar AND can access all of your Nest Devices and other Google Home functionality under Home Control.

This is the best of both worlds, but it unfortunately took a lot of research, trial, and error to figure it out. Hope this helps!

A Summer of Photography with the Canon 1DX Mark II

Well, summer is over this week officially. And so is Sitecore Symposium and MVP Summit 2016 and the mad rush that goes with delivering multiple enterprise software releases and producing content for events like that.

Likewise drawing to a close is my first season with the Canon 1DX Mark II. I can unequivocally say this is the best DSLR I have ever used. It requires a firm knowledge of how to use its features, but it pretty much does everything I want. It is a worthy upgrade from the 1D Mark IV; skipping a generation seems to have been a good ROI especially as I bought the 1D Mark IV late-cycle. I’ve mostly focused at landscape and aviation action with the EF 200-400mm with 1.4x teleconverter and EF70-200mm 2.8L lenses.

To learn the camera, I focused on interesting scenes from around Lake Washington:

Interesting Lake Shots #8

See more at: https://www.flickr.com/photos/rdonovan/albums/72157668138083295/with/26291311203/ 

To get better at action photography, I decided to photograph my wife’s Washington Dulles->Seattle flight, as the approach path to Sea-Tac Runway 16 would take it right over the house:

Intercepting United 389 #5

See more at: https://www.flickr.com/photos/rdonovan/albums/72157670122946550/with/28371395245/

One of the funnier moments was the Seattle Children’s Hospital’s Park-to-Park Swim, where people swim from Matthews Beach Park to Denny Park. The morning of the event I woke up to yellow buoys drifting in the lake. It seems as if they ALL got loose, creating quite a bit of chaos for the event organizers and the police. After rounding them up, the boat towing the buoys broke down…and had to be subsequently rescued by the Seattle Police.

Buoys on the Loose #32

See more at: https://www.flickr.com/photos/rdonovan/albums/72157672888371252/with/29660947052/

To experiment more with optical filters and Lightroom post-processing filters, I decided to take advantage of the fact the sun sets within my field of view during early September. First, a semi-cloudy sunset:

Sunsets September 2016 #1-1

See more at: https://www.flickr.com/photos/rdonovan/albums/72157672843964940/with/29145970524/

And, then a perfectly cloudless sunset. I think I actually prefer the contrast the clouds add!

September Sunsets 2016 #1-26

See more at: https://www.flickr.com/photos/rdonovan/albums/72157673965154446/with/29774144985/

I hope you enjoy viewing them as much as I enjoyed taking and processing them…

An Almost 50-year Old Bentley and the RROC Fall Tour

Driving 1,200 miles in a week in a British car that rolled off the production line ~49 years ago may seem like a crazy thing to do. But it’s not considering the car – a 1966 Bentley T1 – and the event, which was the Fall Tour of the Rolls-Royce Owner’s club – held throughout British Columbia in late September 2015.

Meet SBX2479, a 1966 Bentley T1 I purchased in spring of 2013 while rejoining the ranks of classic Rolls-Royce/Bentley owners after a hiatus of several years. I’ve been an enthusiast of these cars since the mid-1990s. After a disastrous flirtation with a 1967 Jaguar S-Type, I ended up with a 1979 Rolls-Royce Silver Shadow II, which provided tens-of-thousands of miles of trouble-free enjoyment (after having rejected the first 16 examples I looked at, the first of which was coincidentally another 1967 Bentley T1.

16872510536_983e3130eb_o

Representing less than 1% of Silver Shadows produced, a proper North American-specification Left Hand Drive (LHD) T1 is a very rare car. My own estimates suggest there may be only a dozen LHD original series 1965-67 examples around the continent. These early cars, although quirkier in some ways than later examples, feature the beautiful wood-trimmed interior and full engine power output that was missing on later emission gear equipped cars.

Now, for the event itself. The Rolls-Royce Owners Club is a wonderful organization. Some of their national events are driving tours, which combine great company, interesting sightseeing, and some good exercise for one’s motorcars. This event, hosted by the BC Region, was no exception.

I drove up early to join the Fall Meet between the BC and Pacific Northwest regions of the club, which was held the day before the national tour. The meet consists of several contests of absurd driving skills coupled with other fun and games (such as faux sword fighting).

22117324188_ccf78fc196_k

Although the event was wrapped early due to persistent rain, the Northwest Region was this year’s victor, resulting in next year’s meet being hosted in Washington state versus British Columbia. Participants moving onto the national tour then spent the next day getting from Abbotsford to North Vancouver for check-in and the opening reception.

For the RROC Tour itself, each day started with a briefing and was followed by an alternating course of driving and sightseeing. Most (though not all) days also had an evening event.

22316644201_ce47a766f3_k

On the first day, the initial stop was the British Columbia Museum of Anthropology. Here we had a chance to get a local immersion in the history of the indigenous peoples of British Columbia and see many amazing First Nations and Chinese artifacts.

22308881935_af214bd5db_k

22308840485_617a204abf_k

For lunch, we stopped at the Salmon House in North Vancouver, which was opened especially for the RROC tour participants. The weather cooperated and we were treated to a magnificent panorama of the Vancouver area – along with some extremely delicious Northwest cuisine.

22119888438_8dc49f5c86_k

After lunch, we headed up to the Capilano suspension bridge and requisite nature park. The bridge is definitely not for those afraid of heights – and several participants took a pass. After that, several of us headed to the optional waypoint of Cleveland Dam to see it prior to heading to a Chinese dinner nearby.

22309720295_168220942c_k

The second day of touring started with a drive up to Whistler. En-route, the group stopped at the Britannia Mine, which at the peak of production was one of the world’s largest volume producers of copper. Once arriving in Whistler, everyone had a few hours to spend on their own until an evening dinner event.

22156069790_eb74037c71_k

Day three began with a trip to Shannon Falls on the way to Fort Langley in Surrey, British Columbia.

22354806501_b6e50f2835_k

Once at Fort Langley, the group got to learn about the history of the first major Hudson Bay Company trading post in the British Columbia region as well as see re-creations of life from several hundred years ago.

22318307936_abdec323c5_k

The evening wrapped with a lovely time at the Vancouver Club, after a quick shot across the water from North Vancouver to downtown Vancouver on the Seabus.

22331700852_61abe65fd6_k

Day 4 saw the group off to Vancouver Island. Our first stop was the Cowichan Cultural Center, just south of Nanimo, British Columbia. Here the group was treated to a guided tour of local tribal legends, a delicious salmon lunch, and an amazing performance of tribal dancing. They day concluded with some time to see Victoria and a reception at a club members home, featuring the guest appearance of John Lennon’s Rolls-Royce Phantom V.

22331773592_a808c446da_k

Day 5 began with a trip to the Royal BC Museum in Victoria. The featured exhibit was “Gold Rush – El Dorado in BC” which offered many unique insights into the history of gold mining within the province. The afternoon saw the group end up at Hatley House, which is probably best known for its appearances in the X-Men movies. Besides being a popular film venue, Hatley House is also the home of Royal Roads University. Prior to that, it served as a military training facility after being purchased by the government from the Hatley family. The day concluded with a lovely BBQ at another member’s home just outside of Victoria.

22355947291_e0e48e3364_k

Day 6 – the final day – saw the longest day of driving yet. We took a long, circular route spanning Cowichan Bay, Lake Cowichan, converted logging roads down to Port Renfrew, then up to Sooke, and finally back to Victoria. Day 6 also included a Trivia challenge, where tour participants were supposed to find highly obscure facts at the various destinations along the way. The tour concluded with a closing dinner at the club of the University of Victoria.

Cars on the tour ranged in age from a 1926 Bentley 3-liter (whose top was last seen in the 1950s) to 2010-era Bentley Continental GTCs, Azures, and Brooklands models. And just about everything in between was represented. Thanks to excellent logistics, mechanical support was available for the handful of issues that arose. People came from as far away as Pennsylvania, with several participants bringing their cars from as far away as Missouri and San Diego.

The social activities are fantastic; I know I made several new friends as well as reconnected with people i have not seen since the late 1990s when I was far more heavily engaged in enthusiast events. For those that have not done an event such as this, it’s absolutely worth it on all fronts – socially, driving, and sightseeing. And my hat is off to the RROC and our BC Region hosts in particular for absolutely flawless logistics and support. I can’t wait until the next event…

Misadventures in Home Networking (or creating house-wide 2.4 GHz and 5 GHz coverage)

One of the perils of having a large square footage house built in the 1980s is that it is impossible to get WiFi coverage from a single access point. And there is no Ethernet wiring in the walls. This is the tale of how I actually got this problem reliably resolved such that there is decent WiFi coverage in the house and on the two outdoor patios.

Resolving the Cable Backbone (or lack thereof)

Short of pulling CAT6 through the walls, there represents two technologies to create a virtual cable backbone. Powerline Ethernet (which as its name implies uses the electrical wiring) and MoCa (which uses the coaxial cable for TVs). Both offer several hundred megabits of capacity.

MoCa seemed the ideal solution – except that I was unable to get it to work due to IP address conflicts with the neighbors (seriously!). Turns out (from a very helpful upper tier tech at Comcast) that I probably need a MoCa filter as the cable enters the house – and these did not exist in the mid-1980s.

Instead, I used PowerLine networking with hubs/access points in strategic locations going back to my office, where it is patched into a Gigabit Ethernet switch, which in turn is connected to my router. I plan to go back and revisit MoCa once I can source and try a filter.

WiFi Hardware

For the routers themselves, I went with the Asus RT-87 and am using the open source Merlin firmware. The main one is configured as a router, the second and third as access points. IPs are managed by redundant DHCP Servers running on Windows Server 2012 R2. DNS and WINS are both local, though DNS forwarding is going to Comcast’s DNS servers. The reason I went with this approach is, beyond having greater control, DNS is automatically updated so it makes it easy for other devices to find each other on the network. The other custom setting besides WPA2 AES encryption I enabled was dropping signals if less than -70 to force devices to switch access points while traversing the house.

The WiFi Channel Config

Getting the three access points to play nice with other is no mean feat. The reason is that if they are all configured identically, they will be overlapping with each other. So the 2.4 GHz and 5 GHz radios each need to be configured to not broadcast over each other.

The 2.4 GHz Channel Configuration

2.4 GHz channels can be configured to use one of a handful of channels and 20 Hz, 20/40 Hz, or 40 Hz channel widths. 20 Hz channels should be selected unless one only has a single access point, in which case 20/40 Hz should be selected. 40 Hz likely won’t be compatible with many devices. If any 40 Hz channel width is selected, effectively the entire spectrum is then consumed. So, with three access points, the only channels that don’t overlap are:

  • Channel 11
  • Channel 6
  • Channel 1

– making the choice quite simple, with a cap of 3 semi-overlapping access points.

The 5 GHz Channel Configuration (and where it really gets complicated)

5 GHz channels are a bit more complex, as you can configure 20 Hz, 40 Hz, or 80 Hz channel widths along with respective fallback. Using 20 Hz channels makes little sense, as you’d be unable to leverage the higher bandwidth of the newer WiFi standards. The latest AC standard requires 80 Hz channels.

Using a 40 Hz channel width, you can get Channels 36, 44, 149, and 157 on most access points – none of which will overlap. This means you are limited to four access points. If you want to use 80 Hz channels, then you are limited to two access points – on Channels 36 and 149 only.

The other wrinkle is that the 1xx channels are not visible to devices several years old. But since everything here is new enough (2012+ or could use 2.4 GHz), I went with 40 Hz channel width and Channels 149, 157, and 44. At some point, I may explore enabling 80 Hz frames on Channel 149 for the main floor access point (and most used) and then using the other two at 36 and 44.

Parting Thoughts

This was far more complicated to get right than I ever envisaged. at this point, if I need more coverage, I’ll have to get repeaters given channel saturation. And there is not a lot written on how to set this up. Commercial grade WiFi solutions make this easier – such as a Cisco Meraki system – but those cost far more than anyone would reasonably be willing to invest in home WiFi. Eero looks very promising – but is not yet available. So hopefully this helps you if found in a similar situation.

Home WiFi Misadventures

The point of this post is to hopefully save any reader the aggravation I just went through over the last several hours coupled with the years of missed performance.

The Topology:

The main access point is an Apple Airport Extreme 802.11ac access point connected to a Comcast cable modem at 1GB/s. The access point is connected to a 600MB/s PowerLine network via Gigabit ports and a Gigabit switch for local hardwired clients. There are two Apple Airport Express 802.11n access points connected via the PowerLine network for the upper and lower floors of a three floor home, respectively. Everything was auto-configured using Apple defaults.

The Symptom:

I just purchased a Surface Pro 3. And discovered that its WiFi speed was 3MB/s. After resolving several Microsoft-related issues, I boosted performance to a whopping 15-20MB/s. Not settling for this, I spent several hours researching…

The Problems:

I discovered several issues upon troubleshooting everything:

  • The out-of-box defaults use a single SSID for both the 2.4 GHz and 5 GHz band. It turns out that a number of Windows systems do not like this configuration and will end up on the 2.4 GHz band. Based on anecdotal testing, I may have had some Apple devices in this category as well. 
  • Out-of-box defaults left no control over channels. Clearly I had some channel overlap between the access points going, which explained why performance degraded when devices were active across more than one access point.

The Solution:

  • Configure a separate SSID for the 2.4 GHz and 5 GHz ranges. Point any 5 GHz capable device to the 5 GHz SSID. 
  • Manually configure the channels for the 2.4 GHz ranges
    • Channels 1, 6, and 11 were used – as they do not overlap. Note: You can really only get 3 2.4 GHz access points in a given location before you start getting channel overlap as the spectrum used per channel overlaps with its neighbors (e.g. – Channel 1 overlaps with 2, 3, 4, and 5).
  • Manually configure the channels for the 5 GHz ranges
    • Channels 36, 40, and 44 were used; there are varying reports that these would slightly overlap but no issues were seen in routine testing

Now, 5 GHz devices routinely get 100MB/s+ from the Internet when on the main access point and 50-60 MB/s when on a remote access point going through the PowerLine network. 

Hope this helps!

Sitecore Commerce lives (in between many travels)

I realize I’ve been far quieter with respect to blogging than I had intended. As I get ready to head off on another trip (because 101.5K miles flown this year isn’t enough), my long layover at Chicago O’Hare gave me a chance to reflect on just how fast the last few months have gone since Sitecore acquired Commerce Server last year. 

Sitecore Commerce is a comprehensive product portfolio aimed at providing a commerce solution for all enterprise needs. It is much broader in charter and scope than Commerce Server ever was, as what I had been working on constitutes just a component in the overall strategy. But, the sheer amount of work to get integrated and getting this to market has obviously required a considerable amount of time, focus, and cone of corporate silence. 

It’s been a phenomenal journey. And with the product and strategy now in-market, the proverbial cone of silence can be lifted. So expect to see a bit more on here. 

And, for a recap: 

Sitecore® Introduces Industry-First Enterprise .NET Experience Commerce Platform (Press Release)

Sitecore announced an early access program for Sitecore Commerce, powered by Commerce Server, the first enterprise-grade .NET customer experience management solution with fully integrated commerce functionality. The new offering enables marketers and merchandisers to deliver personalized and relevant digital shopping experiences from initial customer acquisition through online transaction using a single, connected platform.

  • Sitecore Commerce Unveiled: The First Enterprise-Grade eCommerce Integrated .NET CXM (CMS Critic)
  • Sitecore Marries .NET Customer Experience, E-Commerce (CMSWire)
  • Sitecore Fully Integrates e-Commerce into Experience Platform (Digital Tech Diary)
  • Sitecore Adds Commerce Solution to Its Experience Platform (DM News)
  • Sitecore Adds Editing and Asset Management Capabilities for E-Commerce Sites (The Hub)
  • Sitecore Premieres Sitecore Commerce (KM World)

For some additional information, check out Mark Floisand’s and my blog posts:

And with that…I have a plane to catch – onto corporate headquarters at Copenhagen for the next two weeks. 

For US Travelers, EMV Can’t Arrive Soon Enough

Most of the rest of the world has had EMV for years. For example, I had it from the time I moved to Canada in Winter 2008. Just what on earth is EMV? It is the chip/PIN support on your MasterCard and Visa credit cards that allow you to make purchases via PIN versus swipe and signature.

Why is this important? Besides the obvious anti-fraud benefits, it is almost mandatory to make even basic purchases when traveling abroad. Consider my case. I’m working out of our Copenhagen office this week. I went to the local supermarket and went to buy things the TSA frowns upon like razor blades and shaving cream – and Kleenex, which apparently my hotel doesn’t believe in.

And I find myself unable to make a purchase using my Visa or my MasterCard. My MasterCard, which supposedly has a PIN, didn’t work either. Try my debit MasterCard with a PIN? Another fail. Try a different store. Same result. My story had a happy ending. Others might not be so lucky.

I try resetting my MasterCard’s PIN over the phone (which was successful) and go back – it still didn’t work. (And this is after two lengthy calls to my bank.) I call Visa – they were able to setup a PIN, but warned me all transactions may be treated as cash advance. Low and behold, I was finally able to make a purchase. Kudos to the United Club Visa Card and excellent customer service from Chase, who provides the card. They truly understand what world travel means.

But, this required a great deal of patience, persistence, and resourcefulness that the average traveler might not possess. If you’re traveling abroad, beware and vet this in advance. Otherwise, when you get a chip and PIN in the next year or so, rejoice.

 

Lots of Good Stuff from Build and Beyond

So far, Microsoft has done a very good job of impressing me the last week. In fact, I have seen some of the best decision-making out of the company in years. Although a lot of this may be due to One Microsoft and other forces already in play, some credit also certainly goes to Satya Nadella in his new role as CEO.

In short, what I saw that I liked:

  • Office for iPad – The overnight success of this shows that Microsoft has been leaving money on the table, even with a 30% cut going to Apple. Given its a v1.0 and is this polished, I look forward to what the updates will bring. Hopefully they will update it frequently in the style of a true iOS application and not on a Microsoft ship cadence. It has earned overnight status in my daily-use list and is hopefully a harbinger of a lot more to come of delivering great experiences on other platforms.
  • Scott Guthrie – I worked for Scott directly for two years. I would count those as amongst the absolute top highlights of my career. He is a rare mix of technical excellence, but more importantly – customer focus. Including looking beyond the boundaries of the Redmond campus. He is absolutely the right choice to deliver technically innovative products that will do what people want. Congrats to him and kudos to Satya.
  • Universal Applications – This has long been one of Microsoft’s biggest opportunities. They finally delivered. And offered some decent migration strategies to boot. Microsoft built much of its success on developers, but that has gone by the wayside for a while. This felt like the start of them getting their groove back. The Xbox One support is a fantastic touch and key differentiator – and may end up seeing me get one even though I am a staunch anti-gamer in the wake of the discontinuation of Flight Simulator…
  • Cortana – This one exceeded expectations. Microsoft played to its strengths and brought in context from all of the other things they have the ability to touch, such as your inbox and calendar. And gave you the extensibility to teach it (also playing to one of their historical strengths not seen lately). They acted uncharacteristically cool by maintaining the codename from the Halo franchise, using the actor from the Halo games, and hiring screenwriters to make the dialogue entertaining. Now, can we get a desktop and tablet version please? Maybe, unlike Google Now, it won’t think I work at the local QFC (another story)…
  • Mea Culpa on Windows 8 Desktop – The renewed focus on the desktop was great to see. It’s what people fundamentally want. Tim Cook was right on this one; you have to have a device appropriate experience. Which Windows 8 failed to deliver. And coupled with the lack of applications on the tablet side, it turned into a disaster. Giving people the experience they want and a true universal platform gives it hope…we shall see.
  • Free Windows on < 9″ Devices – This was the unexpected one (along with offering O365 via the Apple App Store). Microsoft has long held onto its licensing policies with religious fervor. Seeing them be pragmatic with respect to where they are at in the market was a refreshing change, and one guaranteed to not have happened under the previous regime.

What was unimpressive (beyond Cortana) was Windows Phone 8.1, sans the very elegant dual-SIM support (very key for international travelers like me or those in emerging markets where multiple carriers are a reality). This was a me-too play that should have been there all the way along.

Overall, my expectations have been exceeded. Kudos to everyone in Redmond – and especially all of my friends and former colleagues. Congratulations on delivering some of the best in a very long time and finding some of the right grooves again.

Time for 2014

My New Year’s resolutions (in no particular order):

  • Have fun building awesome products that delight customers and move markets (I’m not going to miss M&A mode – that’s for sure…)
  • More time for hobbies (which have been sadly neglected) – including photography, cars, and writing
  • More quality time with family and friends (also neglected as of late)

That is all. I’ve decided for this one to keep it simple and stick to Steve Jobs’ golden rule of 3s.