Archive: December, 2016

2016 Review: Personal life

posted by Jeff | Saturday, December 31, 2016, 12:30 PM | comments: 0

I've been writing these year-end retrospectives now for a very long time. At some point, I started asking the fundamental question about whether or not I end the year in a happy state, and this is the first year where I addressed that long before December rolled around. (Spoiler alert: Yes, I'm happy now, but I wouldn't characterize this as a great year.)

Career

It's often helpful to look back to see if you are getting along to the place that you want to be. Moving to Orange County in 2013 was easily one of the best decisions we ever made, and from a career standpoint, it was even better than that. My contract year at SeaWorld Entertainment was a lot of fun, and gave me more of the administrative and technical experience I wanted. That set me up to a great 2.5 years at AgileThought, where I was able to run development teams and kick ass from a delivery standpoint. I've had some time to think more about my departure from AT for awhile now, and while it was still the hardest decision ever (easily more difficult than leaving Microsoft, and that wasn't a good decision), it makes a lot of sense.

Really it came down to two things. The first was my relentless pursuit to make sure I was heading toward a bigger world with more responsibility. I've known since 2008 that my sweet spot was to build teams that build awesome things and #WINNING. I was doing that at AT, but it wasn't consistent. I started the year in what was essentially a staff augmentation role, and while the client loved me and I delivered, I wasn't running anything. I had two amazing projects with mounds of praise after that, but then I was headed back down the staff aug path. It was clear that the agency model of the company made it hard to advance into a more permanent role that involved leadership and long-term delivery accountability.

Second, I think a part of me was starting to see that the first thing I needed is better served in a company that builds software-as-a-service (SaaS) products. AT has done some product work like that in the past, but it's not the core business. This realization frustrated me to no end, because I adore the people there, and I miss working with them every day. But I've made the mistake of letting career happen to me instead of making it happen for too long, and I had to resolve that.

The new gig is pretty intense, there's a ton of work to do, and being small means that in the short term I need to rely on myself a great deal. That's OK. It's a lot of fun, the product and business has enormous potential, and I'm enjoying it. The anxiety of leaving the previous job and the people will certainly fade over time, but it's hard to leave something you loved for the uncertain promise of something you will hopefully love more.

Health

This was a challenging year for us. Diana struggled through much of the year with migraines, which means she wasn't entirely her normal self. One medication worked at first, but faded over time even with higher doses. Then a different med was prescribed, and we're hoping it has more long-term success. It's a strange condition, because it's not that she wasn't functional, she just wasn't always her "normal" self. I haven't known many people in my life that were as awesome and switched-on as her, and to see her even fractionally less than that was hard.

I addressed my own health in two ways this year. First of all, I finally did an annual diagnostic, after three years. The results were pretty much what I expected. My cholesterol and triglycerides are just over the normal range. This was also the first time I've ever had blood pressure just high enough to be outside of normal. While not at risk tomorrow for hypertension, it's a pretty clear sign that I have to stop neglecting myself in terms of weight and activity. It was another year of neutral weight gain/loss, but I'm no closer than I was a year ago to dropping another 20. I don't have any valid excuse as to why I haven't done it, I just know it hasn't ranked very high in my priorities.

I also took the time to see a therapist for the first time in about a decade. By late spring, I was just feeling... off. I don't think I was unhappy, but I wasn't feeling like myself and found that I was often anxious. There is a lot of depression in my family, and I owe it to myself and my family to head that off if I'm at risk for any kind of hereditary depression. Once I got over the guilt associated with the "my life isn't so bad and I shouldn't complain" thing, it was super productive. I learned a few core things about where my head was. The first was that the work situation, regarding long-term goals, was real. I was feeling comfortably trapped, and that's probably where most of the anxiety came from. Making the change was hard, but there was a weight lifted when I did. I also wasn't doing enough of the things that I liked, and likely over-emphasizing my provider role. I resolved to do more for me, because it really doesn't detract from my obligations to my wife and child. Parenting didn't feel like it was going well, and maybe that was a lack of perspective with the rest of life feeling like a challenge (or struggle). Finally, I was directing too much energy to things largely outside of my control, causing me stress. It really started with the Pulse shootings, and continued through the summer with the toxic politics of the election. I think I fooled myself into thinking that racism, xenophobia, homophobia, misogyny, etc., were all things from the fringe of our society, but it turns out they're not.

I wrapped up the therapy in the late fall, and it made a huge difference. I don't know why we stigmatize this sort of thing. It's the third time in my life I've seen a therapist, and I've come out better from it every time. We take care of our bodies, but it's every bit as important to take care of our heads and our hearts.

Epic vacations

About a year ago, we committed to doing a cruise to Alaska. By that time, we had logged seven voyages with the Disney Cruise Line, and you could say we have a cruise problem. As I've said before, the appeal of cruising for me is the inherent ability to unplug and have everything taken care of for you. No (useful) Internet, no cooking or responsibilities. Applying that care-free approach to travel with a more exotic locale seemed like a pretty good idea, and Alaska looked pretty epic. We started the year with a "local" cruise that our Seattle family came down for, and on that cruise, they signed up to go with us to Alaska. This worked out really well, because as it turns out, flying to Vancouver was going to be way more expensive for us, like $250 more per person, so we flew to Seattle, had bonus days with the family there, and drove up to Vancouver with them for the cruise.

I won't rehash the trip (see here and here), but calling it life changing would be only slightly dramatic. I got to see two glaciers and ride in a train up to almost 3,000 feet. It was one of the most stunningly beautiful places I've been, second only to Hawaii. We want to do more of this, though we're a little torn now because of Simon's age. Yes, we should do some trips without him, but most of the time we like having him around. (Alaska was a mixed bag in that respect, actually.) I hate that I still haven't been to Europe, and I'm sure not getting any younger. Also, we've achieved platinum status with DCL, so my OCD desire to collect certain things is satisfied.

Weddings

I don't know if it's just our age or what, but we don't end up going to a lot of weddings anymore. Prior to this year, the only one we've been to for years was a couple of friends early last year, and a lot of that had to do with the fact that two dudes getting married only recently became a legal thing. This year, we had my mom remarrying in July, my father-in-law and our neighbors in October, and my best friend in December. And finally, I got to be in a wedding as a "bridesmaid," or "bridesbro" or whatever you want to call it. One of the great things about that last one is that it reminded me of the quality and diversity of my friends. I admit that I don't engage socially as much as I would like to or should, but when I do, I love the people that I hang out with.

Parenting

This has been a challenging year. I love that little boy and the beautiful personality that's coming together. But man, there have been days where I just don't feel like I can get it right. Of all the things I'm self-aware of, and hyper-critical of myself for, being Simon's dad is at the top.

I don't have any specific revelations to share here, it's just a general recurring feeling this year. I guess it's just what parenting sometimes is. It's less the ASD or developmental challenges now, and more of the typical 6-year-old things. I don't feel like we've set up expectations for an on-demand and absolute world, but many of his issues revolve around inflexibility when he doesn't get his way.

2016: Shit show

Putting aside my own challenges this year, I think we can generally agree that 2016 was a total shit show of a year. The weather, with a serious hurricane, along with fires, earthquakes and volcanos took countless lives, police were ambushed and killed, black lives are still less important, and we witnessed a tragedy unlike anything else here in Orlando when a homophobe killed 49 people. If you live here, it's likely you were not further than one degree separated from someone who died in Pulse. OK, so maybe I'm generalizing, but in our circle of friends and acquaintances, it didn't take long to find those connections. We live in a very diverse county. A number of friends still aren't sure what "normal" looks like, but they've worked hard to bring the community together. Six months later, the thing that disappoints me the most is how quickly the rest of the world seemed to forget.

The biggest shit show was of course the presidential election. Reality was simply unimportant, as was policy. The nation elected a fascist, racist, xenophobic misogynist. It's not so much the election itself that disappoints me, as much as the people who voted for him. Not one can rationalize the thing I keep coming back to: If you did any of these things at your job, you would most certainly be fired. He has publicly done things that would disqualify you from minimum wage jobs, or suitability as a mate for your daughter. We have erased the dignity of the office completely by electing an attention whoring reality TV host. There's no universe where that's OK. Hillary Clinton would have been the status quo, at best, but that would have been far preferable to a man that panders to hate. The idea that there is, or ever was, some kind of moral equivalency is intellectually dishonest.

We lost an extraordinary number of our artists and pop culture icons. It was jarring. Maybe it's partly just the shock to the system that us Gen-X folks would eventually feel, but it was a brutal year. It went right to the end, with George Michael and Carrie Fisher.

I can't say that the year was without joy, but between the death and destruction, and everything else, it was a suboptimal year.

Technology, my shelter

It's not news that I enjoy thinking about, learning about and using technology. This was a great year for it, even though I didn't really buy any outside of a last-minute phone purchase. Technology is where I put my head when the world around me seems impossible. I genuinely look at my phone as a thing of wonder. If I could show myself this device ten years ago, just before the original iPhone was announced, I would have certainly considered it science fiction. This was a time when that Mac Pro on my desk, with a massive 2 GB of RAM, was state of the art. My Pixel phone has twice that amount of RAM.

I also had a streak of commitment to start porting my forum app to the newer frameworks, and I really enjoyed it. It's still not in any kind of release state, which is lame, but it's hard to dive in when you're writing a lot of code in your day job.

This was a great year for Tesla, and as the owner of an electric space car, I was blown away at the progress the company made in terms of manufacturing capacity, energy products and the acquisition of Solar City. The sustainable energy future is coming, and we're getting close to the point where you just can't get that cat back in the bag. Entire islands are now going solar, and distributed generation is becoming a thing. Florida defeated a messed up amendment that would have thwarted efforts for net metering and distributed generation. Oh, and it looks like we're now qualified to get a free Tesla Powerwall 2, a 14 kWh battery for the home, because of customer referrals. If we had solar, it would offset some or all of our night consumption, but until we go down that road, it's the ultimate UPS and backup during an extended power outage.

Am I happy?

The answer is yes, absolutely... now. There were times throughout the year that I wasn't, for all of the reasons above. It's funny, because I think I spent a lot of time trying to outsmart myself with the typical, "Relative to x and y, life ain't so bad!" arguments. But you know, relative to the last three years, this was at best an uneven year, with extreme highs (Alaska, weddings), and serious lows (Pulse, the election). As I sit here now, and look at my darling wife and child, in my warm home, stoked about the work ahead at my job, it's smile inducing.


2016 Review: The business

posted by Jeff | Saturday, December 31, 2016, 10:55 AM | comments: 0

My 16-year-running side business this year suffered, because I hit a historic low in time spent maintaining it. What can I say, other than I was distracted by the rest of life. This doesn't mean it was all bad, and in fact it was "profitable" this year. I use that term in quotes, because when it takes a loss, it's generally because I bought stuff like computers, cameras and such to support the business. This year, I did none of that.

I did some real work though, just not very much. First, CoasterBuzz and PointBuzz went all-HTTPS this year, something I've wanted to do for a year or two but just didn't follow through. Mind you, posting or reading a deep commentary on the pros and cons of virtual queueing probably doesn't need to be secure, but why not? Now it's not just the logins and credit card entries that are encrypted. There's allegedly some potential Google-juice to gain from this at some point, but that's hard to measure.

The other thing I did is finally ditch Chase Paymentech for a merchant account. It was a total rip off. While I process a fair number of transactions in the spring for club memberships, some months in the fall and winter there may be three or four at best. The fees were $35 per month before charging a single credit card. There are a ton of great options now, and Stripe had the best tooling and fee structure. Now, I pay $1.03 to process a $25 CoasterBuzz Club membership, which is 2.9% + 30 cents. Chase was 3.79% + 25 cents per transaction, minimum $25 per month, plus another $10 for the payment gateway. I waited way too long to switch.

We also brought back PointBuzz Premium, after I started using Stripe. It doesn't make a ton of money, but it's a little something for the biggest fans of the site, kind of a tip jar, if you will.

The only other thing that I spent time on was the PointBuzz database for Cedar Point history. And when I say I spent time on it, I mean I wrote the bits of code to apply Walt's design and a place for him to compile the lists. It's massive.

As for the traffic, PointBuzz had essentially flat visits, but fewer page views. Summer was soft because apparently there wasn't that much to talk about, but it picked up in the fall as people endlessly argued about what would happen with Mean Streak. CoasterBuzz actually had slightly more visits, 3% more unique visitors, but page views were down in May and September. I can't really explain that.

Club memberships took a serious hit this year, for reasons I always understood: It was tied heavily to the Coastermania event at Cedar Point. This year's event limited the number of attendees and charged for it (I'm surprised this didn't happen years ago), whereas it used to be free and unlimited. If I had to guess, this dropped memberships by around 50, so I missed out on about a grand. Coaster events in the general sense aren't what they used to be in terms of volume and popularity, so I imagine that the club will eventually filter down to the people who mostly support the site. That's OK, but those years where you had Cedar Point, Kings Island and Holiday World all doing free-for-alls were lucrative years!

I want to complain about ad revenue again this year, but the truth is that it's... changing. Google's AdSense is the first in the chain, and two remarkable things happened this year. The first is that the CPM's in general are higher, and that led to a 70% increase in Googlebucks even with about 400k fewer page views between the sites. The other thing is that Google's fill rate, the percentage of times where they actually fill the spot on the page with an ad, went from 25% to 40%. This is important because the CPM and fill rate have been going down for years. It's the first positive thing that I've seen from ads since 2010 (that was a really good year).

Unfortunately, while Google looks like it's staging a comeback for my ad revenue, we completely lost an ad provider that has been with me since the start. Burst Media was, at one time, paying out more than a grand a month. At some point it was purchased, and it paid less and less, until this year it stopped entirely. This is particularly bad on the PointBuzz side, because for whatever reason, it always did really well there (and terrible on CoasterBuzz). We've got a lot of unfilled inventory right now. I've experimented with a few providers, but they almost universally serve the worst, spammy crap, tripping Google's malware warnings. I have taken time to research replacements in the last week, but it's slow going because of the holidays and lack of choice.

At the other end of the balance sheet, it's important to note that I've reduced a ton of expenses. Moving to Azure a few years ago has cut hosting costs in half. Ditching the merchant account for Stripe was a big one this year. I'll also save on cell phone bills (I write them off as an expense since I need to be able to monitor the sites), because I recently moved from AT&T to Project Fi. Sometimes you can make money by spending less of it.

While not strictly a part of the business, I did spend time working on POP Forums a bit, porting it to the new .NET Core platform. Part of that effort has been to work on making it scale across multiple nodes. The truth is, it can pretty easily scale up a long way before it needs to scale out, as I found out with some basic load testing earlier this year. The new framework is so fast, and being able to handle 2 million requests per hour on a single box is fantastic. I'll take that! This week, I got Azure search indexing working, too. It's a great tool, but priced too high for what I need, so I probably won't use it.

It was a decent year, considering how little I cared for and fed the hobby-business. I hope the ad situation gets better. Yeah, this is all for fun, and I know that time investment in it goes in streaks, but it wouldn't be that fun if it was all without some kind of compensation. Content is a terrible business to go into intentionally. If I were to start something new, it would be something that asks people for regular, recurring revenue.


The very slow move of POP Forums to .NET Core

posted by Jeff | Friday, December 30, 2016, 11:47 AM | comments: 0

I started to work on migrating POP Forums to the new ASP.NET Core more than a year ago, but as the framework and tooling changed a bunch of times, I kind of got tired of trying to keep up, and I let it just hang out for a long time. As I've been engaged at various levels of deep coding at work (usually 0 or 100 mph, never somewhere in between), so goes the mental bandwidth for my little open source project, which has existed in one form or another for more than 16 years. The progress was in spurts, but there was progress. Heck, I even have a CI build now! Here's the timeline:

  • In June, I switched over to the RTM bits for Core.
  • August was about getting rid of all of the full framework references, which I had kept at that point to handle email sending (SmtpClient) and image resizing (WPF). At that point, I was able to defer mail to MailKit, and resizing to ImageSharp (which was previously called ImageProcessor Core), so the whole thing runs on Core now.
  • I also moved some of the unit tests over, but I don't have the controllers covered yet. There are two reasons for that, one of which is that I haven't decided where the controllers should live, and also because they're the messiest part of the app. They desperately need refactoring.
  • The background tasks are all safe now to run across many instances. The email, award calculation and search indexing all work on proper queues now. Session updating doesn't, but it's transient data where concurrency is unimportant. For the moment, these processes still run in the context of the web app itself, but they don't have to. It should be easy enough to drop them into a WebJob, service, worker role, whatever. They also now report in with a heartbeat to the database so you can see in admin when they last ran, and from what instance.
  • In September I started going deeper into the authentication and authorization bits, now that we're free of FormsAuth and all of that. I'm not entirely sure that I'm "done" there, but because you can now wire up claims auth by default, you can have more than one identity in an ASP.NET app. (You could before, but the mix of various frameworks made this world difficult.)
  • I also wrote a new Redis cache provider in the AzureKit project, and it's modeled conceptually at least after what StackOverflow does. I use a 2-level cache where the local instance will check for the data in memory, and if it isn't found, go to the central Redis cache. To invalidate across all instances, the local instance will listen to the Redis messaging for invalidation signals. Redis is pretty awesome.
  • I started, but just finished, new search plumbing to use Azure Search, also in the AzureKit project. It was pretty easy to swap out a few parts via dependency injection to replace the old, works-just-barely SQL-based search I wrote a billion years ago. Azure Search is awesome, but I'm not sure I'll use it in my own sites. It's way too expensive, priced the way they used to do SQL Azure... based mostly on storage instead of throughput.

That's the year in review, but what's next?

  • SignalR needs some attention, because the Core version isn't done and it's still a somewhat moving target. I also don't have it piping in to a backplane so it can message to other instances and their respective clients, so it won't work multi-instance yet. There is no real-time updating of the Q&A style forums yet (Q&A as in StackOverflow), so that needs to be added. SignalR provides the messaging to inform a reader of new posts. Everyone loves SignalR, but sometimes it seems like it's the neglected step-child of the .NET world. I hope that's not the case.
  • I desperately need to refactor the controllers in the app, as well as the unit testing. I imagine that this will be easier than before, since a controller isn't nearly as coupled to HttpContext as it used to be.
  • I've already laid the ground work for the email all users functionality to reference a single instance of the email, instead of writing out the email times number of users.
  • There are a number of other miscellaneous optimizations in the backlog.
  • Still waiting for the dust to settle on the .csproj vs. .xproj thing, and then Visual Studio 2017.
  • I'd like to explore some way to simply add a reference to the forums, and bam, you have the area.

The goal for Core was always to have functional equivalency, and position the codebase in a broader sense for improvements and new features. For example, I'm sure there's a case to be made for the use of a modern client framework, in the admin area at the very least, and probably around posting. There's room for innovation there. I don't have dates for any of this... but I want to use the new version in one of my sites this year.


The 2016 playlist

posted by Jeff | Thursday, December 29, 2016, 9:41 PM | comments: 0

While 2014 may hold the title for longest playlist ever (54 songs), I figured that 2015 would be easy to beat (29 songs). With some of the albums I expected to be released, it just seemed like it was time. But it ended up being only 32 songs, despite a strong start. Here it is...

  • "Your Loves Whore" - Wolf Alice
  • "Clearest Blue" - Chvrches
  • "Genghis Khan" - Miike Snow
  • "Light Up" - MuteMath
  • "Water" - Ra Ra Riot & Rostam
  • "Wild Horses" - Bishop Briggs
  • "River" - Bishop Briggs
  • "Conqueror" - Aurora
  • "Kiss This" - The Struts
  • "Destruction" - Joywave
  • "Giacometti" - Blue Man Group
  • "HandClap" - Fitz & The Tantrums
  • "Free" - Broods
  • "Empty" - Garbage
  • "If I Lost You" - Garbage
  • "So We Can Stay Alive" - Garbage
  • "Take It From Me" - Kongos
  • "Spirits" - The Strumbellas
  • "Something To Believe In" - Young The Giant
  • "Ophelia" - The Lumineers
  • "You Don't Get Me High Anymore" - Phantogram
  • "Run Run Blood" - Phantogram
  • "Welcome To Your Life" - Grouplove
  • "Life Itself" - Glass Animals
  • "Move" - Saint Motel
  • "Higher" - The Naked And Famous
  • "The Runners" - The Naked And Famous
  • "Rotten" - The Naked And Famous
  • "Blood In The Cut" - K. Flay
  • "Sent Them Off!" - Bastille
  • "Shine" - Mondo Cozmo
  • "Alexander Hamilton" - The Broadway cast of Hamilton

There are a lot of returners from 2013 and 2014 here, but the follow-ups were not as strong. I really expected more songs, and as you can see, a lot of them are from the same artists. It ended up not being the strong album year that I expected.

Garbage really delivered with Strange Little Birds, and did so in an unexpected way. It was so industrial and moody, but it still sounded like Garbage. The Naked And Famous delivered Simple Forms, and I panicked a little at first, because it didn't grab me the way their last album did. However, after more listens, I loved it more. It doesn't beat In Rolling Waves, but that thing was epic.

Then there were a number of artists that put out stuff that was just OK. Grouplove's Big Mess is pretty good, but I was expecting the greatness of the last two albums. I love about half of it, and I'm "meh" about the rest. Phantogram's Three is really good, but it's just so damn short. I like Aurora's All My Demons Greeting Me As A Friend, but it's one of those things you just have to be in the mood for. Young The Giant turned in the biggest disappointment with Home of the Strange. I can't put my finger on what it is that causes such indifference, but it's not Mind Over Matter, which was completely brilliant. I haven't listened to Bastille's Wild World enough yet, but I'm leaning toward a pretty good effort.

Of course, the thing I can't not mention is that we grew to be pretty serious Hamilton fans at Puzzoni World Headquarters. It's not something that you just listen to for a song or two... you have to invest the two and a half hours to really listen. There is so much going on in that show, and it's brilliant. It pays homage to so many genres of music, especially 80's hip hop, and yet it's something totally original. My perceptions about it being gimmicky prior to actually listening to it were totally wrong. It's huge, it's going to stay huge, and I think it will have the commercial staying power of Phantom (and even without seeing it, I think it's better). We're going to have to try and figure out a way to see it next year, if possible.


Our quiet Christmas

posted by Jeff | Sunday, December 25, 2016, 6:12 PM | comments: 0

This was the first year in a long time where Christmas day was just the three of us. We visited my family yesterday, and Diana's parents were here for Thanksgiving (and we met up with everyone in October for their wedding). Diana was on neighbor housesitting duty this week, too, so it made sense to hang out.

Morning was pretty low-key. We continued our desire to not go nuts with Simon when it comes to gifts. We're not cheap or stingy, we just learned early on that he keys in on very specific things, and going beyond that is just excess (and perhaps setting some poor expectations). This year, after finding a video of it, we knew he was all about the Hot Wheels Ultimate Garage, and that was his "big" gift for the year, along with a number of smaller things. It was a huge hit. Diana and I didn't get each other anything at all, because we take a lot of epic vacations, enjoy theme parks almost weekly, and we get the things that we enjoy throughout the year. It's often gadgets and music for me, quilting materials for her.

Diana made a bone-in turkey breast for dinner, brining it as usual, and it was completely fantastic. That woman can cook a bird like it's her job. And of course, her mashed potatoes are amazing, too. We had a nice, quiet family dinner. That's totally OK... we've had a lot of time with family and friends in the last month. I imagine we'll have some neighborhood folks over for the new year next weekend too (provided we invite them!).

I know it's Thanksgiving that you're supposed to take stock of all of the things that you're thankful for, but as I sit here on the patio, 75 degrees, with Simon next to me, train whistles singing in the distance, I can't help but think about how fortunate I feel to have this wonderful little family unit. It's been a challenging year, but I have a healthy little boy, an out-of-my-league lovely wife and co-parent, a comfortable place to live, and a good job. I feel pretty good about life right now.

I hope all of my family and friends can experience similar joy and happiness this week.


Pixel and Project Fi mini-review

posted by Jeff | Wednesday, December 21, 2016, 10:00 AM | comments: 1

Following my strong desire to buy something, I decided to just jump in and buy a Google Pixel phone, the smaller one, just because I wanted something shiny. We also decided to drop AT&T give Project Fi, Google's proxy wireless carrier, a try.

Pixel

First, the phone. It's shiny, it's metal, and it's pretty. Mine is also blue! I'm a big fan of colored phones, and I loved the red Nokia 920 I carried for years in part because it was red. I haven't had a metal phone since the original iPhone, which I replaced with the iPhone 3Gs in 2009. The metallic sheen is great, but of course I can't not put it in a case, so it's not as pretty as it could be. As I did with my last phone, I bought a clear case with rubbery edges to protect from falls, so you can still mostly see it. The upper third on the back is glass, so it's extra pretty. Surprisingly, I like the front having a white bezel, as it frames up the screen in an unexpectedly pleasant way. I'm grateful for having the headphone jack on top, where it belongs. And yes, headphone jack. (Suck it, Apple.)

The screen is 1080p, with a staggering 441 pixels per inch. That's higher than anything else I've ever had. Sure the iPhone and a number of other phones have lower density, but I doubt you can really tell the difference. The annoying thing is that the default color space is extra saturated to make that AMOLED screen pop, and it made known reds look bright orange. Fortunately, you can enable the developer options and force the sRGB color space which is far more normal.

The camera is fantastic, which was one of the reasons I wanted to upgrade. Mind you, it's only marginally better than my Nexus 5X from last year. It seems to do a slightly better job with night cityscapes, balancing the exposure, but it seems to be biased a little more toward slower shutter speeds in low light. I learned this the hard way at a wedding this weekend with the flash off and blurry people. I don't understand the mindset that thinks 1/10 of a second is OK instead of a noisier and higher ISO, and you can't change it in the default Android camera app. Outdoor is a little sharper than what I had last year, especially around the edges, and you can pull off shallow depth of field (electronically aided, I'm sure) with people a couple of feet from you. The other thing is the video stabilization, which is shockingly good. It can record 4k video (I'm not sure why you'd want that), and at 1080p, I'm guessing it has a lot of extra pixels to spare and pull off the stabilization.

Performance is great, which for some reason surprised me. I haven't had a most-current phone in a long time, as my last one was slightly eclipsed by faster CPU's. Everything is even more responsive, and with the great screen, it really shows off how far along Android has come in terms of UI, typography and animation elements. As was the case with the Nexus, it's the latest possible Android version, because there are no carriers or manufacturers that need to update their own fork of the OS. I don't think I would buy a non-Google Android phone because of this.

I'm upgrading from a Nexus 5X, one of the two phones Google put out about 14 months ago. That's a great phone, and currently a bargain at $300 (it was $420 when it was released). Is the Pixel really $350 better today? Absolutely not. I'll pay the premium because I can afford it and like shiny things, but this is the same complaint that I've had about iPhones. You can spend half as much and get a phone that's 80% as good. The cost is disappointing.

Project Fi

Quite by accident, the Pixel got me thinking about Google's Project Fi, the quasi-carrier they spun up that actually uses the best signal it can find between US Cellular, T-mobile, Sprint and wifi. The phones are sold unlocked, so you can use them on any carrier you like. Google will send you a SIM card and you're on your way with a super simple and excellent online experience to sign-up and transfer your number. The only catch is that you need a Pixel or Nexus phone. Fi works on a pre-paid basis, so you pay in advance, $20 for the first line, $15 for subsequent lines, plus $10 for every gig you want. If you go over, you're charged the difference, if you go under you're credited. Considering how little data we use, this is an enormous win. Internationally, it just works, and there are no extra charges for text (unlimited) or data in other countries, just the same rates.

Diana rarely uses more than a half-gig per month, I tend to use only one, maybe two on a month when we're traveling. Our general use may average under $60 per month. We're coming from AT&T, where our monthly bill was around $140 for three lines and 15 gigs shared. That included a discount on the shared data pool as a former MSFT employee. My BFF was the third line, and as she just got married, she decided to be on a plan with her new husband (the nerve, right?), so our total was going to be around $110, reducing the line charges but no longer splitting the data pool cost three ways. That's insane for two people. I know a lot of people don't like pre-paid data, because they mentally can't not worry about the data usage, but if we're coming in $50 under what we paid before, I'm not going to spend time thinking about it.

The other plus is the wifi calling, which certain carriers and phones already have. We need it, because no carrier is strong inside the house. Here in Florida, we have concrete block first floors lined with foil, so it's practically like living in a Faraday cage. So, neat trick, you can go into airplane mode, turn on the wifi, and the phone works. Calls and texts come right in. It didn't work at first, because there's a barely documented issue that the wifi voice/text has a dependency on Google Hangouts. If you have more than one account on your phone, as we do (one Gmail and one using our popw.com accounts), you have to make sure Hangouts is logged in on the same account as your Fi account, which should be the Gmail account. This was quickly resolved in a chat session with a Fi rep, and the dude was funny. When I complained that Diana's SIM card was shipped by pony express (because it's taking 10 days), he said he would have a word with the ponies.

So far, I'm happy with the service though. Outside of the house, I get strong signal, and it's good downtown and in Delray Beach as well. Clarity of phone calls while at my desk is very good, and I couldn't do that before.

 


Kara and Sean's wedding

posted by Jeff | Monday, December 19, 2016, 1:00 PM | comments: 0

My best friend Kara got married this weekend to Sean, a guy she met originally a year or two after we did. It's a great story because they worked together at Cedar Point, then went about their lives on separate paths until they met again by chance a few years ago at a Disney run event. The rest, as they say, is history.

I had the honor of being a "bridesbro" in the wedding, which meant I got to see some of the inner workings of bride stuff. I even got to experience what happens when a bride goes to pick up her altered dress and it isn't ready when they said it would be. Yikes! Also, activity in the bridal suite is mostly women sitting around while the others get hair and makeup done. Fortunately, I brought video games so me and my bridesbro Dan could play a bit. A few favors aside though (and some engagement photos), I was there mostly to be supportive and to be a part of their special day. While our friendship was originally borne out of a mutual interest in amusement parks and roller coasters, and the meeting of minds via the Internet before social media was called social media, it developed after that during difficult relationship times for each of us. Despite the difference in age, we offered each other the most simple of things people need: Someone to listen. Later, there would be a lot of professional and career advice, fundraising work together for various non-profits, a few road trips, and yes, more coaster geek moments. After more than a decade, we eventually started living in the same city, and here we are.

I've only known Sean for a few years now, but I can "blame" him for my eventual purchase of a Model S, because his was the first one I ever had the chance to drive. As an EV enthusiast and bigger space geek than I am, it doesn't come as any real surprise that Kara stuck with him. She has to be with someone who can challenge her in the nerdiest of ways.

Simon was also the ring bearer in the wedding, and Diana made a beautiful wall quilt that shows an abstract representation of Corkscrew, the ride that Kara and Sean worked on together all of those years ago. Since the wedding was in Delray Beach, we had an opportunity to spend some time at the ocean, too, which was unplanned, but awesome. The wedding was beautiful, and the band that Kara and I scouted many months ago, Switch, was fantastic. Most importantly, there were turkey burger sliders and fried food about the time the drinks were really starting to have adverse effects on guest judgment. It was an epic night.

A virtual toast to the groom and the bride! Thank you for having us as a part of your special day.


Time is everything

posted by Jeff | Tuesday, December 13, 2016, 10:17 PM | comments: 1

I was thinking today about how the passage of time, and the uncertainty of how much we have, is a popular theme in various art forms. (Can you tell I've been listening to Hamilton a lot lately? I mean, "time" is one of the last few words of the show.) But beyond the arts, time is everywhere in life. I guess I've really felt it the last few weeks as I've been doing the kind of work that makes days seem short. Before you know it, you've arrived at another weekend. And then Facebook is always bothering me with photos of my darling son with chubby cheeks and and those creases in his fat legs that look like tiny butt cracks.

We measure everything in time. We have birthdays, anniversaries, graduations, years in houses, years at jobs. For some reason people default to an hour to schedule meetings. Your Prime membership means 2-day shipping. That project at work has a deadline. You're 30 years from retirement but 12 from empty nesting. Two months until your next vacation. Another year and your car is paid-off. You haven't been able to shit in two days, maybe because you're stressed out about how quickly time is passing. Time is everywhere.

I'm not sure if I'm alarmed by all of this time stuff, because I certainly can't do anything about it, but also because I'm not always in motion. As the storytellers are often fond of reminding us, it's important that we take the time to live in the moment and back away from all of the planning and scheduling. Some people are really terrible at this. If I objectively look at my life, I can say that I have countless happy memories with no urgency about anything. I had lots of them as a child, lying in the camper, completely opened up, as a cool breeze passed over me on a lazy afternoon while I took a nap. I've lost track of how many times I've had with Simon like this, especially in the last two years, when we've been able to sit on the bed and talk about our day. Sometimes you are doing stuff, but it isn't toward any goal or requirement. Diana and I have been fortunate enough to do this, making time for each other over a spontaneous lunch or other activities. Whether it was mundane household tasks or errands or whatever, we make choices to have relatively unstructured time to just be.

There's nothing wrong with having a plan, but for me, I value the moments that aren't driven by the passage of time. There is a finite supply of those.


How leadership is supposed to look

posted by Jeff | Tuesday, December 13, 2016, 2:00 PM | comments: 0

An acquaintance of mine, a smart guy that I get to talk to annually when we speak at a conference here in Orlando, tweeted something that amused me:

If you've worked in technology circles and used LinkedIn, you've seen what he's talking about. Not surprisingly, the profiles found along side these self-stroking summaries don't really communicate how it is they fit the bill, and they infrequently have something to show for it. I don't like people who are braggy or describe themselves in superlatives. They have little in common with the people that I've looked up to as mentors and true leaders. Talk is cheap. (This has a lot to do with why I'm so annoyed with the president-elect, and worse, the people who think that "speaking your mind" is somehow a qualification for... anything.)

Humility is, in my opinion, one of the greatest qualities of leadership. There's a CEO I know that runs a theme park company, for example, and any time I can get even 15 minutes with the guy, I walk away feeling smarter and energized. I'm not exaggerating the effect he has on people. But if you were to try and compliment him or give him praise, he will consistently deflect it to others. He's not interested in credit. That's the kind of leadership that I look up to and aspire to.

Adaptability is another quality that I think is not given enough weight with leadership. One of those personality assessments that I took at some job described me as a "directing motivator," meaning that I generally have goals and direction in mind when I lead, but it's secondary to motivating my team to success. The thing that keeps me honest in that endeavor is the processing of new information, adapting the direction as it comes in. I'm surprised to read many accounts of Steve Jobs, notorious for having an asshole-ish style of leadership, indicate that if you could sell him on a different direction, he would be all-in for it. Not having all of the answers should be a given, and ties into the humility challenge.

Ultimately, you can self-assign whatever masturbatory adjectives you'd like, but our true ability to lead is better measured by our outcomes. I find that our outcomes are better served by humility and adaptability.


I remember buying stuff

posted by Jeff | Sunday, December 11, 2016, 9:00 PM | comments: 0

Back in my buy-stuff-to-feel-joy days of my 20's, I used to look forward to dropping in to the nearest Best Buy, and just spending an hour or two there. I'd start by looking at music, then DVD's, and probably pick up a couple of each. From there I would move through the audio equipment (which, aside from the speakers I bought 20 years ago, that I still use, never resulted in any purchase). Next was the computer equipment, which in part was to fuel the strange nostalgia for working at a CompUSA right after college. After that, it was into video games, which I bought less frequently, but I always had current game systems.

These days, in the rare instance I find myself in a store like that, I can't wait to get out. I absolutely hate it. I can almost always get what I want delivered to me, at lower cost, primarily from Amazon. I don't buy stereo equipment because the only thing you need is a receiver to feed your speakers and switch for your TV between tiny boxes and video game consoles. Physical media is rarely purchased. Ever since I started buying Macs, and they lasted at minimum three years (we have one that Simon uses that's seven years in), I don't really need to update the comprooders.

But I still like to buy stuff. The great irony is that I'm in a better place to buy stuff than I was in my 20's, and yet I'm kind of paranoid about having money saved because of the ugly economy in 2001-02, and again in 2008-09. I've also resolved to vacation like I mean it, which landed me in Alaska this year. This year, my business P&L has no gadget purchases at all, a first since, well, ever. I bought a big closet for my office, but that isn't very interesting. My desktop and laptop computers are solid, so I don't need to replace those. Heck, I even have a Surface Pro 3 that I rarely use in the last two years except to travel. My still cameras are everything I need them to be, even my 8-year-old DSLR.

I admit that I have eyed a replacement video camera, one of the Canon cinema cameras, because they would use my existing still camera lenses, and maybe that would motivate me to shoot more video. I also kind of want a Google Pixel phone, because the camera is amazing, it's a little smaller than what I have now, and one of my friends showed me his and it's blue. I don't really need this either, as my existing phone works fine.

I dunno... I'm sure there's some reason that some shrink could explain about why I get these urges. I don't think it's because my life lacks something else. I have a (usually) darling child, a kind and beautiful wife, I'm enjoying work, and I really enjoy not being around snow this time of year. Life's pretty good.


How Parallels lost a customer

posted by Jeff | Friday, December 9, 2016, 10:39 PM | comments: 0

The thing that convinced me to buy my first Mac, back in 2006, was the adoption of Intel processors. Prior to that, Stephanie had what I think they were calling an iBook at the time, and I really liked it. But switching to Intel CPU's meant they could also run Windows, and they intentionally set up the operating system so you could dual boot between the two operating systems. I was sold. It wasn't long before Parallels Desktop was released, a product that allowed you to run Windows as a virtual machine without leaving OS X. The performance was for the most part good enough that the dual boot arrangement wasn't necessary. For a Windows developer who enjoyed the Mac hardware, it was a perfect arrangement.

I continued to upgrade the product over the years, about once every 18 to 24 months, so I would generally skip a version. A couple of months ago, I upgraded from v10 to v12. In this case, I was looking for compatibility to be at its best with MacOS Sierra, because the disk sharing between OS's was a little wonky (it kept adding broken C-drive aliases to Finder windows). I paid my sixty bucks, and went about my business.

Then an update came with various "fixes." Among them was a "fix" that made sure that my VM could no longer use the 16 gigs I had it set for in v10. You see, they changed the feature set to limit you to 8 gigs of virtual RAM, which is exactly what I don't want on my iMac with 24 gigs of RAM. My VM was crippled, making some of the goofy edge cases I deal in, with multiple instance of Visual Studio open and SQL Server running in the background, very cramped.

Here's the kicker though... I asked for a refund since they broke my VM, but they wouldn't give it to me because it was beyond the 30-day money-back offer. The truth is, I would have asked for my money back if it wasn't for the fact that the "fix" didn't break it until after 30 days. Had the upgrade marketing materials made the change obvious (and none of them did... I have the screenshots to prove it), I would never have upgraded in the first place.

So the dance with their India-based support went like this. First they told me I could basically go fuck myself, then they offered 90% off the "professional" subscription product, which did not have the memory restriction. After some go around, they then offered me 50% off. Yeah, they decreased the offer. After telling them I would actively avoid recommending or licensing the product ever again, they gave me the subscription offer for free, for one year. When they asked me if that was acceptable, I said I would drop them after the year, and switch to VMWare's Fusion at the end of the term. Apparently, I'm not the only one who cried foul, because they made the same offer to everyone who bought the product within a certain time window.

It's disappointing that they went that route. It's obvious that they wanted to me to jump into their subscription-based scheme, but I'm not having it. I get subscription-based software, and I'm OK with it, but only if it's either a pure SaaS product, or there's some significant hosted component to it. Heck, I pay Vimeo $60 a year and barely use it, because I like the service and they do everything right. But pay annually for something that fundamentally doesn't change, has no hosted component and doesn't add significant value? Hell no. That's why I haven't given Adobe a dime since 2011. For the amount I use Photoshop and Premier, I'll skip hundreds per year for that. The Photoshop I paid for five years ago still works.

So yes, I'll switch to VMWare Fusion in a year, and Parallels can suck it.


Cool weather makes it feel like Christmas

posted by Jeff | Friday, December 9, 2016, 10:18 PM | comments: 0

Living in Florida definitely changes your perspective about a lot of things. Politically it's a shit-show, demographically and socioeconomically it's always in conflict, but there isn't a lot to complain about with regard to weather until there's a hurricane. The surprising thing for me is that Christmas feels differently because of the weather. This is our fourth in the Sunshine State.

We're in a little cold spell right now. I actually turned on the heat today in the afternoon, and with the sun hitting the west side of the house (where my office is), it was very comfortable by dinner time. But the real story is that with flannel pajama pants and the coolness, it feels more like the Christmas season. Diana also put up the secondary tree in the front room, which also makes it more festive. I'm wondering if I can talk her into leaving it all up for an extra week after the new year.

What has been missing for me is that I haven't gotten out much. With the new job, I don't go downtown that often, and with no Osborne Family lights at Disney's Hollywood Studios, we haven't seen a lot of theme park Christmas either. We need to fix that, because we've got a week before the 15-day passholder blackout begins. I absolutely love the parks this time of year. I don't even have to ride anything... the lights and the music put you in the mood. It's really fantastic.

The first year we were here, we didn't get a really cold spell until February, down into the 30's. We're otherwise having a freakishly warm December, with a number of 80+ days in the next 10 days, at least 10 degrees over normal. That's a bummer. The cooler weather feels more like what I was programmed in Cleveland to feel like the holidays.


New parenting challenges

posted by Jeff | Tuesday, December 6, 2016, 10:10 PM | comments: 0

A few years after Simon's ASD diagnosis, I feel comfortable that he has had the help to adapt. I think his different wiring may be an advantage in some ways, and beyond the occasional struggle around inflexibility, he's working it.

Unfortunately, there are two more recent challenges to deal with, and they're stressing me out. The first is that he has allergies, and they're pretty bad. He's been snorting for a month now. He's on a nasal spray, which doesn't appear to be having any impact. It's frustrating, because it's hard to even be around him when he's sniffing constantly. He also freaks out any time you ask him to blow his nose, as if it's the worst thing ever. He rolls with it, but he sounds miserable.

Then there's the thing that we've kind of been monitoring and I've been in denial about. He may in fact have an attention deficit problem. The reason I've been in denial is that I've seen him exercise extreme focus for things that he's interested in. He's been heads down for hours creating his "amusement rides" in the playroom. If he gets it in his head that he's going to build something, the rest of the world doesn't exist. (I can relate to this.) But his teacher sent home blank pages of work, and she's observed him drifting off into this own world when he should be working. We've seen it too... while eating, doing homework, putting on shoes (that he still can't tie), showering... he struggles to stay on task.

The bottom line is that there is likely more medication in his future, for allergies and probably the attention issues. For the latter, I'd like to see a combination of therapy and drugs, but we'll see what the doctor recommends.

I'm feeling a lot of parental guilt lately, because it's my perception that Simon isn't getting what he needs from me. I can't really quantify that, other than I feel pretty self-involved with a new job and the strong desire to spend more time looking out for myself. Plus he's growing up at an alarming rate.


The Hamilton phenomenon

posted by Jeff | Thursday, December 1, 2016, 10:34 PM | comments: 0

I have to confess that I'm a closet theater nerd. I minored in theater for a year in college, but was turned off by all of the strange snobbery associated with it (and with art in general... that if you're not a hardcore student of it, you're not good enough to be involved in it). There's something very different about live performance that can deeply affect me. I'm not sure why I rarely went to see shows outside of traveling. I mean, Cleveland is one of the biggest theater markets in the country. Fast forward to recent years, and I married a union stage manager that worked in New York and Cleveland, and now we support the local arts facility in Orlando and see lots of shows.

I still don't pay close attention to "the scene," but I remember hearing early last year about this hip-hop musical about Alexander Hamilton. It blew people away enough that it quickly went to Broadway. At that point, I kind of dismissed it because the rap angle sounded like a gimmick, and frankly I didn't recall anything interesting about Hamilton from high school history (history being one of American education's greatest failings). But a funny thing happened over the last year, in that Hamilton did not go away, tickets were scarce, and it sure did win a lot of Tony Awards. When I saw the Tony performance, it still didn't completely grab me, probably because it compressed the middle of the show into five minutes, but I was intrigued.

At some point in recent months, Amazon added the soundtrack to Prime, and I finally got around to listening to it end to end a few times. It's really dense as it moves the story forward, but it's also not without its big chorus moments. I got pretty hooked, because it's a great story about so many of the things we value in American culture, set in a critical and bloody point in our history. It's tragic, and written in a way that romanticizes the passage of time as a reminder to make the time count before you die. There are a ton of themes that repeat throughout the show, and they bind the whole package really well. It's really brilliant.

One of the more remarkable things about the phenomenon that this musical has become is that it's a vision mostly from the head of Lin-Manuel Miranda, the guy that we were first introduced to by way of Sesame Street. I still hear that bit sometimes when I hear the Hamilton soundtrack. ("Where's it at? The beach! The beach! That's a habitat!") Had I known that he co-wrote a musical inspired by the movie Bring It On, I might have totally written him off, as that's sacrilege. He famously performed an early version of a song for Hamilton at the White House in 2009, and it didn't debut until 2015. That's commitment. I wonder if he's working faster for all of the stuff that Disney has and is paying him for.

Now all that remains is to actually see the show. A second production opened in Chicago, and it starts to tour next year. They've announced two long runs in San Francisco and LA to fill 2017, but I wonder if they're going to run more than one company. So far, Cleveland and Seattle are announced without dates. Nothing in Florida yet, but I'm always looking for an excuse to go to Seattle.