My switch to Android, one year later

posted by Jeff | Monday, October 24, 2016, 10:40 PM | comments: 0

I was looking at my phone today, a Nexus 5X, and realized that I've had it for a year now. It seems like I bought it more recently than that. Of course, I had my previous phone, a Lumia 920, for three years, so I suppose it is relatively "new." At the time I bought the Nexus, I was thinking it would mostly be a little experiment while I waited for a new awesome Windows Phone. But after just a few days, I realized that it was more than good enough. Either that, or I now consider phones the way I have most cars, most of my life, that good enough is good enough.

Some of my criticisms from my v7 review are still valid, even with the newer release, but none are that big of a deal in the bigger picture. Actually, now that the camera app starts almost instantly, my only real complaint is that it won't read my texts to me in the car and let me reply via voice. Maybe there is something that does that, and I just don't know about it.

My concern now is that Google has brought to us the Pixel, while ditching the Nexus brand. By every account, the Pixel is an amazing, premium phone, and it's priced like an iPhone. That's a bummer, because the Nexus I bought last year is an extraordinary value at $400. Simply put, even the newer iPhone (and the Pixel) is not $250 better. My phone may be plastic on the back, but the camera is objectively about as good and the screen I would argue is actually better, or higher resolution at least. With the days of contracts and subsidized phones gone, and the real price up front and obvious, the price matters now. I think $650 is too much for a phone.

For now, it doesn't matter, because I'm fairly content with my phone, but a year from now, or if I have an accident with it, I'll certainly be looking. I'm fairly content with Android, but only if it's updated in real time and not by the whim of carriers or manufacturers. That means it's Google or nothing. I'm hopeful that the prices come down in the next year.

Getting back to the OS itself, for a moment, I'm actually thrilled to see apps adhering to Google's Material Design standard. It's a pretty good standard from the company that brought us the ugly mess that is Gmail. Seeing more apps adopt the look is a win, and it has even bled on to the web in some cases. That's all good. I can't say that I've been as thrilled with the iOS evolution (as seen via our iPads), especially the design language that makes buttons all look like text. I really despise that. Facebook continues to defy that, fortunately, with buttons and links in bold. Plus iOS still doesn't have the equivalent of live tiles or widgets that sit inline with the launcher. What year is this?

I'm surprised that I'm satisfied, but I imagine that's largely because all of my previous Android experience was with earlier, crappier versions of the OS, covered with extra crap from carriers and manufacturers. At its core, it's a pretty solid OS. I still think Windows is better, but it doesn't matter since the half-dozen apps I've grown to use don't exist there. And that's saying something, because I still contend that the browser is the most important app.

Review: Simple Forms by The Naked And Famous

posted by Jeff | Friday, October 21, 2016, 6:41 PM | comments: 0

Maybe it was just the joy of the transition of moving to Orlando, working for a theme park company, and finally being rid of my first house, but 2013 was an incredibly epic year. And while it was awesome for those reasons, it was one of the best annual playlists I've ever built. It was the year that The Naked And Famous' In Rolling Waves came out, an album that is easily one of my favorites of all time. I really liked their first, Passive Me, Aggressive You, but I was struck by the way Waves instantly pulled me in, start to finish. It's so flipping good. Having to wait three years for this year's Simple Forms was torture. By the way, they're also amazing live.

The new album didn't immediately grab me. To be fair, I love the band so much, and had such high expectations, that there's no way they could easily top an album that I consider "best ever" among my collection. The truth is, Simple Forms is really good, just not as good as In Rolling Waves. It's interesting that the leads, Alisa and Thom, apparently broke up during the making of this album, or maybe before it, so you wonder what effect that had. What's different? It's probably a taste thing on my part, but the songs pay more attention to melody, and spend less time with electronic production and texture (and wonderful noise). That makes sense in a lot of ways, because both singers are quite frankly much better than they were in the first album. They make smooth pop vocals seem effortless. This seems to result in shorter songs though, as the album is only 10 songs clocking in at 40 minutes. Waves was 13 songs at 55 minutes, and Passive was 13 songs at 49 minutes.

Like I said, it's not a bad album, it's just different while still sounding like the band, which is something that I like about all of my favorite bands (Garbage comes to mind). "Higher," the first single, immediately pulled me in (which may have also affected my expectations for the album). It's classic T/N/A/F. "Backslide" is the signature male vocal track of the album, with fantastic percussion. "The Runners" actually invokes the sound of "Punching In A Dream." The album has the kind of strong finish you hope for in what I consider the strongest song on the album. "Rotten" slowly builds with one of Alisa's sweetest vocals so far, and it has one of those wonderful moody textures underneath that I love the band for. It hits the bridge, then builds several rounds of vocals layered in with noisy guitars, and it's glorious.

It took a few listens, but I love the album. It may not be as good as the last one, but that's OK. It's still really good.

Ten cruises

posted by Jeff | Thursday, October 20, 2016, 7:08 PM | comments: 0

Last weekend, we did our tenth Disney cruise. It was a very nice, if somewhat short, retreat that I desperately needed. Ten cruises means we're officially platinum Castaway Club members, which comes with a few nice perks (chief among them "free" dinner upgrades to Palo, concierge check-in, first crack at booking extras and new itineraries, merchandise discounts and officer receptions). When we booked our first one for early 2013, I wasn't even sure I would like cruising. But here we are. My concern prior to that first one was the expense, because it's not cheap, and I wasn't sure I got the value. Maybe others still wouldn't see the value in it, but I'm hooked.

We finally got off to an itinerary that wasn't the Bahamas this year when we went to Alaska. I may describe that trip as life changing, but all of these trips deliver on the thing that I most want out of a vacation: Blissful disconnection and lack of responsibility. Seriously, people tell me where I need to be to eat and do stuff, and aside from posting a few photos on Facebook via a few megabytes of crappy satellite Internet, there is no outside world. I'm able to be completely present and with my darling little family. It's awesome. I'm sure that there are less expensive ways to achieve this, but this really works for me. As a father and husband, I happily accept my obligation to be a provider, because I love my little family, but having others completely take care of me in every way is a welcome thing to enjoy sometimes.

And despite some periodic difficulties with being a parent, even on cruises, we've been able to make some fantastic memories. Even on this one, our beach day got rained out, hardcore, around 2 p.m., but we had some great laughs about it. Cruises for us have been a great environment to remember to laugh more.

What's next? We're not really sure. We've been in the continuous cycle, since our second cruise, of having advanced booking placeholders set (refundable). They take a little of your money, and you get 10% off the next cruise, plus an onboard credit of $100-200 depending on the length (maybe more for longer trips, I'm not sure). That's no joke... we saved about $800 on our Alaska trip. We've got two in the queue, because often the time periods overlap when you book way out. We're considering finally doing a long one in the Caribbean next year, hopefully one with San Juan if it works out. We'd like to do a short one on the Wonder this winter, which I think for the first time will sail out of Canaveral instead of Miami. That's the ship we did Alaska on, and it's in dry dock right now getting a massive overhaul and a new Frozen stage show.

I feel fortunate for being able to do this, and I hope I'm teaching Simon not to take the opportunity for granted. He's a lucky kid.

The burden of being emotional

posted by Jeff | Tuesday, October 18, 2016, 8:44 PM | comments: 0

Of all the things that worried me about Simon's ASD diagnosis, none were worse than the idea that he would not be emotionally engaged in an outward way. Fortunately, that isn't how things went. He might be socially awkward in some ways, but he is definitely very emotional and has a lot of love to give. As much as I compare myself to him at that age, he is far more outwardly emotional, but at least equally intense.

In that sense, it's amazing how upset he can get, often in unexpected ways. Over the weekend, on our cruise, we saw Pete's Dragon, and there were several parts in the movie where he completely went into sob mode. On our last night, as I was tucking him in, I asked if he had fun on the cruise, and his face turned to a frown, Tiger covered his eyes, and he began to cry because we had to leave the ship. Conversely, we coincidentally cruised with the family of Simon's best friend from school, and the intense joy in his face when we encountered them was amazing.

Simon's intense emotions I'm sure will be a mixed bag for him, as they have been for me. What I do hope is that he has more room for intense interpersonal relationships, an area where I have serious limits. My romantic relationships have all been super intense, along with a handful of other friendships, but beyond that I've simply never been able to commit to lesser, more trivial interactions (something I'm sure has been interpreted as an aloofness).

Being emotional is arguably the thing that most makes us human, and as much as I wish I could reduce it to brain chemistry, it's what makes us alive, if sometimes miserable. Therapists love to talk about "emotional batteries," and where our limits lie before requiring recharging. I hope my little guy has large batteries.

Our second significant EV road trip

posted by Jeff | Monday, October 17, 2016, 8:18 PM | comments: 0

The weekend before last, we took our second significant EV road trip, the first one being for Thanksgiving of last year up to North Carolina. By "road trip," I mean driving any kind of significant distance that involves staying overnight. I suppose technically that would include my work holiday party last year, which was in Clearwater, but having to stop for five minutes at the Brandon supercharger doesn't really make it an extended drive.

This trip was also to NC, for my in-laws' wedding. They live west of Asheville a bit. The tricky thing this time was some last minute changes to the itinerary. Originally we were planning to drive up the I-95 corridor, stopping in Santee, SC where there's a supercharger across from the hotel. The timing would have put us about 12 hours ahead of Hurricane Matthew, and in the middle of the mass exodus from the coast. That obviously was not going to work. So instead of leaving that Thursday morning, we left Wednesday night and went up I-75 toward Atlanta instead, well out of range from the storm. We stopped in a little town called Perry, GA, and got kind of lucky. It was sold out by the time we got there, as evacuees were even making their way that far west/north without a direct line from the coast. I guess I wasn't entirely surprised, because I couldn't find much of anything in Atlanta, either.

Our first night had stops at the chargers in Lake City, FL and Tifton, GA. The next morning we made what I consider a safety stop in Macon, GA, which we might have been able to skip if I was comfortable with the unknowns around Atlanta traffic. It turns out that this was a good move, because the traffic was terrible, and the navigation redirected us twice before getting into Atlanta proper, where we had lunch in Atlantic Station, a trendy mixed use deal north of downtown. From there we stopped only in Greenville before getting to Maggie Valley, NC. We did actually back track to the Asheville charger the next day while buying shoes, coffee and bedding at the adjacent outlet mall. That charger wasn't open yet last year, but we could top off and slow charge at my in-laws' house (we weren't staying there this time).

For the trip back home, we decided to stick to our original plan toward the coast. In retrospect, this may have been riskier than necessary, because by Sunday/Monday, parts of the coast were definitely far from functional. My biggest concern was Santee, because on Saturday the charger there was down, according to the car's navigation. Indeed, when we arrived, the hotel said they were without power for a bit. The number of giant trees down in the area was staggering, and I've never seen anything like that. The reverse exodus of people heading back home made I-26 slow, but again, the car routed us around the worst of it.

The second day, from Santee to home, also showed how rough things were in places. Kingston, GA, could be a totally optional stop for us, provided we charged very high in Savannah, to get us to St. Augustine. But we wanted to stop there knowing there were a few decent food options. Turns out they were in pretty bad shape there. Cellular service was spotty to gone for both the car and our own phones (which makes sense, because Tesla apparently uses AT&T in the US). Half the restaurants were closed or serving subsets of their menus due to a lack of fresh produce and I'm guessing water supply issues since none of them had soda, only bottled water. I feel like we were lucky that the chargers were up.

All things considered, the network did not fail us. I'm not sure why, but I expect it to be more fragile. We got to see some interesting new places, so that was a plus. We also got to see a Model X in the wild, which probably made Simon's day. The only real trade-off we've had in these trips in an EV is that we have to be specific about where we stop, and plan for it a bit. We don't stop more or less, just in specific places. Oh, and I suppose we need to have a Tesla, which is only a compromise in that it's too expensive.

Our first hurricane (we weren't there)

posted by Jeff | Thursday, October 13, 2016, 8:28 PM | comments: 0

Hurricane Matthew ended up being mostly an inconvenience for Central Florida, fortunately, but it was close. At one point the odds were about 2 in 3 that the eye of the storm would cross over Cape Canaveral, which would have put 80+ mph winds through downtown Orlando. It ended up sliding about 30 miles east, and that made a huge difference. Haiti and the Bahamas weren't so lucky, and the Carolinas are still recovering from flooding.

Our neighborhood topped around 40 mph sustained winds, with gusts up to 60. Some smaller trees went down here and there, but it wasn't serious. Again, had the storm moved even a few dozen miles west, we would have had a lot more damage even in our area. The thing is, we weren't home. We were up in Maggie Valley, NC for my in-laws' wedding. The difficult thing for me is that the storm was trending toward land right up until the last day, and I felt like I needed to be home for it. We rolled the dice and it fortunately moved east, so by late Friday, I was feeling relieved.

My first real tropical experience was in 2008, when Diana and I were running around the gulf coast near Ft. Myers, shopping for our wedding location. Fay landed on the coast barely down to a tropical storm. It was interesting for sure. No long-term power outage for my father-in-law's house, where we were staying.

Being inland reduces risk, and with new construction, our house is intended to withstand 140 mph winds (the low end of a category 4 direct hit), but I'm not interested in experiencing that. Hurricane Charley hit Orlando directly in 2004, and I remember flying in after and seeing the tarps on roofs. Fortunately that's unusual, but it's certainly possible.

My happy places

posted by Jeff | Wednesday, October 12, 2016, 8:22 PM | comments: 0

Last weekend, we were up in North Carolina, specifically west of Asheville, for my in-laws' wedding. We've been up there for Thanksgiving or Christmas for most of the last four years, and it's a beautiful place to visit in the fall. We only had a small taste of fall color this time, but even with the misty rain, it was a beautiful place to be. I particularly like my in-laws' place, as it's always warm and inviting, though for obvious reasons we didn't stay there this time.

It got me to thinking about what I consider my "happy places," where I'm most at ease, relaxed and happy. I do love where I live, but it's not really somewhere I can retreat to since I also work there. I actually love being in my home office, but as is the case with anyone, there are days where you just don't want to engage with work. So for me, that place in the neighborhood of Blue Ridge Parkway is an annual retreat, and place of peace.

In recent years, I've come to really love being on a Disney cruise ship. Seven of our cruises have been the same itinerary, the 3-night loop to the Bahamas (and one for 4 days, with the extra day at sea). This is admittedly not very exotic, but it's enormously convenient since we're an hour from Port Canaveral. One trip was out of Vancouver to Alaska, and it was one of my best vacations ever. Once onboard, I don't really have to think about anything. People will bring you stuff, you're entertained as much as you want to be, they tell you when and where to eat... I feel taken care of in a way that you can't in everyday life. It's fantastic escapism.

I also love Hawaii, and kind of hate myself for not going back more frequently than my honeymoons. That's one in 2000 and one in 2009. The second time was actually suboptimal because of the ridiculous cold front and rain that hung out there, and I had a minor fever/flu thing going for like 36 hours. Still, it's the most beautiful place I've ever been to. Kauai in particular is nothing short of breathtaking, everywhere. It's not really the cost that has made it hard to go back, it's the distance. I want to go back, maybe in another year or two, when Simon is a little older.

Back in the mainland, visiting Cedar Point is a happy place, more so now because I no longer live close to it. I don't care about the rides really, I just like staying there on the property, and watching Simon do his thing. There are also many opportunities to see great friends that I don't see very often.

Believe it or not, even after more than three years of living next door, visiting Walt Disney World is still special. I still don't take it for granted, and as Simon gradually agrees to ride more things, it keeps getting better. I'm still a sucker for seeing Illuminations at Epcot, getting Dolewhip at the Polynesian, and meeting friends from all over the country as they descend on Orange County.

The hard thing is finding the happy places I haven't seen yet. I'm very intent to travel to more places I haven't seen, but in a minor holding pattern because I have a young child.

I'm thankful for having the opportunities I have to be in these great places. I need to spend more time in my happy places.

Giving in to the struggle

posted by Jeff | Tuesday, October 4, 2016, 7:21 PM | comments: 0

I was talking with a friend today about how it seems like we get into ruts in one part of our life or another, where we seem to fight and struggle against forces on a daily basis. The struggle sucks the energy out of you and you end up being mentally exhausted. I associate it with those scenes in movies where someone is drowning, and finally they just let go and give in to it, and momentarily find peace. (Spoiler alert, they also die, which is a real drag.)

It's not easy to stop struggling, because it's like admitting defeat. Worse yet, our culture has always put a totally strange value in struggle and suffering. It only "builds character" if it doesn't completely bring you down. Struggle is overrated. It should be avoided, not celebrated. And if you have to, maybe the drowning isn't so bad. You know, if you don't die because of it.

I know, this totally sounds abstract, and you might imagine that I, or someone I know, is currently struggling against something. Someone is always struggling, and for the most part, the struggle fades and we move on. But there have been a few times in my life where I finally gave in, stopped fighting. Well, maybe it was twice. Both of those times, I was in a bad place, and I gave up. There was an immediate feeling of relief, followed by a grieving period around the things I felt that beat me. (One personal, one professional issue, at various times, both well behind me now.)

Seeing people struggle is hard, and I certainly don't enjoy struggling myself.

We really needed a good day

posted by Jeff | Monday, September 26, 2016, 5:45 PM | comments: 0

Parenthood has not been the most fun thing since Simon started school. We've had a fair amount of discomfort that involves some of the regular defiant 6-year-old stuff, and some ASD-related stuff to make it more interesting. He has been obsessively playing with the "rides" has has constructed across the playroom floor, and doing anything to break that focus (namely homework) causes him distress. Random routine changes, that flexibility problem, can set him off too. He had a mini-meltdown when a substitute bus driver went the wrong way. He continues to struggle with cause and effect, with consequences.

When Saturday rolled around, Diana spent the day getting her learning on, so that left Simon and I to entertain ourselves. It was a beautiful day, because Florida, and I figured we would go out to Disney's Hollywood Studios, because lately he seems to get a lot of joy from that. I scored Fastpasses for the afternoon, and didn't indicate we would go at all. I wanted to see how his behavior was for the morning. I was spending some time working on one of my projects as well, so there was potential for conflict if he wasn't getting the time he felt he needed from me. He was doing everything I asked and being pleasant, so before lunch, I told him we would go to DHS provided he ate all of his lunch (we've almost got the won't-eat-the-crust thing beat).

Knowing full well it might be a bad idea, I booked our first pass to be on Tower of Terror, or as he calls it, "the elevators." We've been trying to get him on that ride for probably close to two years, as long as he's been 40 inches. I told him about our other two passes... Toy Story Midway Mania and Star Tours... but didn't offer the big reveal until we were on the midway. I calmly explained that he didn't have to ride it, but if he did, I would take him to the Lego Store after we were done, and he could pick any sub-$20 set he wanted. I'm not proud of the bribery, but appealing to his sense of Legolove was a worthwhile strategic risk. To my shock, he agreed.

While in the short Fastpass queue, Simon indicated that he was "getting very worried," and asked if I would text Mommy after to let her know he did it, because she would be very proud of him. I did my best to distract him by pointing out how dirty the "hotel" lobby was, and the stuff in the "basement," and of course his most favorite thing, the ordering of the seats and rows in loading the ride. Yes, you bet the signs and instructions appeal to our ASD tendencies.

Not surprisingly, he loved the ride, and he couldn't stop talking about it. He talked the ear off of a cast member about it over at Star Tours, and I'm so glad that the pixie-dust-snorting people will indulge a kid like that. We had a little ice cream, where he was surprisingly zen about the melting and dripping in the hot afternoon. He got deep into what he saw as the mechanical aspects of Toy Story. He even (correctly) predicted which water fountain would be coldest. Indeed, that he could use a water fountain at all feels like a small miracle not possible six months ago.

He was shockingly flexible about where we sat on the parking tram, another frequent issue, and at the Lego Store, he found the set he identified as a "like" several months ago (I confirmed with the photo, still on my phone), and we quickly got out after he told the cashier all about his ride on Tower of Terror.

That evening, he slowed down a bit, and may have had a minor fever as he began fighting a sore throat, but there was no fighting over getting pajamas on or going to bed. It was, end-to-end, a good day. I don't remember the last time we had one of those.

If I could summarize parenting at this stage, it's the constant battle to both fight and encourage independence, while firmly keeping an understanding that you love your kid. And I know I trivialize our ASD experience as minor compared to those of other parents, but sometimes the singular focus and inflexibility, and especially the lack of empathy for certain social contracts, sometimes makes me think about the dreaded "n-word" (that is, "normal"). Simon is who he is, and that's a smart, loving little boy. Every kid has unique challenges, and I imagine every parent feels a little beat down from time to time. That's why I'm thankful when we have a really good day like we did on Saturday.

Adventures in load testing

posted by Jeff | Sunday, September 25, 2016, 1:33 PM | comments: 0

I'm at a point now where POP Forums is mostly ported to ASP.NET Core, and I'm super happy with it. I've done some minor tweaks here and there, but mostly it's the "old" code running in the context of the new framework. I mentioned before that my intention is not to really add a ton of features for this release, but I do want to make it capable of scaling out, which is to say run on multiple nodes. I haven't done any real sniffing on SQL performance or anything, but I noticed that I had some free, simple load testing available as part of my free-level Visual Studio Team Services account, so that seemed convenient.

I want POP Forums to be capable of running across multiple nodes (scale out, as opposed to scale up, which is just faster hardware). Getting it there involves a few straight forward changes:

  • Shared cache. v13 used in-memory cache only, but swapping it out for something off the box is easy enough. Since Redis is all the rage, and available in Azure, I picked that.
  • Changing the SignalR backplane for the real-time client notifications of updates. When there's a new post, we want the browser to know. Turns out, Redis does pub/sub as well, so I'll add that. It looks like it's almost entirely configuration.
  • Queued background activity. There are four background processes that run in the app, right under the web context. These are email, search indexing, scoring game calculation and session management. Except for the last of those, I had to do some proper queuing so multiple instances could pick up the next thing. It has been a solved problem for a long time, and wasn't hard to adjust.

The incentive to run multiple nodes isn't strictly about scale, it's also about redundancy. Do apps fail in a bad way very often? Honestly, it hasn't happened for me ever. In the cloud, you only need redundancy for the few minutes where an instance's software is being updated. I speculate that I've encountered this at weird times (my stuff only runs on a single instance), when the app either slowed to a crawl or wasn't responsive.

Writing a cache provider for Redis was pretty straight forward. I spun up to two instances in my Azure dev environment, and with some debugging info I exposed, could see requests coming from both instances. I had to turn off the request routing affinity, but even then, it seems to stick to a particular instance based on IP for awhile. More on that in a minute. I've started to go down the road of hybrid caching. There are some things that almost never change, chief among them is the "URL names," the SEO-friendly forum names that map to forum ID's appearing in the URL's, and the object graphs that describe the view and post permissions per forum. I was storing these values in the local memory cache ("long term") and sending messages via Redis' pub/sub messaging to both commit them to local cache and invalidate them. I think what I'm going to do is adopt StackOverflow's architecture of an L1/L2 cache. Cached data only crosses the wire if and when it's needed, but collectively is only fetched from the database once.

The first thing I did was run some load tests against the app in a single instance, using various app service and database configurations, and all of them ran without any exceptions logged. This was using the VSTS load testing, which is kind of a blunt instrument though, at "250 users," because it doesn't appear to space out requests. The tests result in tens of thousands of requests in a single minute, which wouldn't happen for 250 actual users unless they read really fast. If I set up just "5 users," using the lowest app service and database, it results in comfortable average response times of 49ms and an RPS of 35. That's a real life equivalent of 400-ish unique users in my experience.

App Service Database Average response time Requests per second
S1 (1 core) B (5 DTU's) 2.5 sec 261 
S2 (2 cores) S0 (10 DTU's) 2.5 sec 316 
S3 (4 cores) S1 (20 DTU's) 1.5 sec 522

Honestly, these results were better than I expected. That's almost 2 million usable requests per hour, and you can go higher on the database if you had to push more through it. The app service certainly had plenty of overhead to work with.

Next up, I switched to the Redis cache and spun up three instances. This is where things got... not great. The first problem is that I couldn't really do an accurate test, because the load balancing mechanism does not spread the load very well. It appears to route to the same instance based on IP, even when the routing affinity is turned off. When you're using VM's in Azure, the affinity mechanism has three modes, the last of which essentially round-robins the requests, even if they're from the same IP. I am not certain if there's any way to force this with App Services the way you do VM's. The bottom line is that I couldn't really test this across three nodes.

The second problem is that I was logging a ton of Redis timeouts. If the Redis call fails, I catch the exception and let the app read from the database (and further cause issues by trying to write the data back to the cache). I'm using the Stackexchange.Redis client. I left it at the default of 1 second to timeout. As best as I can tell from the exception, it's an issue with the client queuing up more requests than it can handle, because the resources of the Redis instance aren't even remotely stressed. The log entries indicate long queues for the client, in the thousands, even when I set it to allow asynchronous, non-serial responses. I'm still trying to work this problem. It seems strange that the client can't handle a large volume of calls. I can increase the timeout a little, but it still fails, and if you get to two seconds, you might as well be calling from the database. I'm sure going to the SO cache architecture will mitigate this as well.

Performance and scale problems are fun, provided you're working in a solid code base. I'm not sure I would entirely call POP Forums solid, because it really is an evolutionary mess after 15 years or so (from ASP to WebForms to MVC, with a lot of recycled code), but at least the various concerns are generally well-factored. This is all largely academic for me, because none of the sites that I run require enormous scale. I need to find someone to use the app in more extreme circumstances. Maybe I need to see if I still know anyone over in MSDN for those forums. Having worked in that code years ago, I know how much work it needs.

Healthy stages

posted by Jeff | Friday, September 23, 2016, 7:25 PM | comments: 0

I finally went to a doctor this week for what's supposed to be an annual physical. My last one was in 2012, so that's way too long in between. It's included in pretty much all insurance, so it's silly not to take advantage of it. Growing up, I saw a lot of doctors because I had that issue that many boys have where they don't go to the bathroom, and in holding it in stretch out their colon until it just seeps out crap. Nothing like involuntarily crapping your pants until you're 10. That soured me on doctors a bit. In any case, heading toward middle-age, certainly I need to be paying attention.

The good news is that there's nothing particularly unexpected. The blood work came back all normal. What isn't normal is the stuff associated with weight: LDL is a little high, triglycerides are a little high, blood pressure might be a little high (I guess any one sitting isn't a great indicator, need more data). So while my BMI suggests that I'm too short, I can't really move that lever, and I have to move the weight lever. I haven't been very active the last two months. so none of the results are surprising. It has been a combination of work stress stealing brain cycles, Florida summer hotness and generally poor priorities. There isn't any mystery about the changes I need to make.

I've gone through a number of gradual stages in getting where I need to be. The first one came in 2005 with the life crisis of separation, flavored with consulting job dissatisfaction. The good thing that came out of that was "full-time" high school volleyball coaching, because I was burning obscene calories almost every day. I dropped almost 30 pounds that year. The next year or so I put about 10-ish back on. I blame dating. For someone untrained as I was in eating, you get comfortable when someone wants to play with your naughty bits.

Moving to Seattle and having a baby caused a fair amount of stress eating in the '09-'10 winter, but the weight gain was temporary. Moving to Florida in 2013 got me motivated again, because sun, and I got back down to my 2005 weight. I've been up and down from that point since, and only around 4 pounds over that right now.

Each of these stages of being healthier were rooted in long-term behavior changes. Before I ever started to get my shit together in 2005, I stopped eating beef. It wasn't some political thing, I just ate way too much of it, and not eating it at all I associate with feeling better. That was the year that I got portion control down, and to this day I can't eat too much without feeling lethargic. Since then I have over time been able to get certain things in moderation, like soda consumption. I still as a percentage lean too much on carbohydrates, because I love potatoes, but I never have packaged dessert food and rarely buy chips (and when I do, I put a few in a small bowl). I do like to knock down some Pei Wei or Tijuana Flats once a week, but I try to be reasonable.

The exercise side has been harder, because I hate exercise for the sake of exercise. I don't have an excuse. When it's not so damn hot, I will walk a couple of miles in the morning, and that's where I've fallen off the horse a bit. I also like to play tennis, but it's hard to make time for that, or I don't prioritize it. It should be easier with Simon in school. What I just can't do is go to a gym and exercise. It's boring in a way I can't reconcile.

So while my eating is pretty consistent, if not perfect, it's the physical activity side where I have inconsistent habits. The habits are getting better, just not in a wholly sudden way. I'm OK with that. I haven't been the guy wearing 38" pants in over a decade.

My state of coaster enthusiasm

posted by Jeff | Wednesday, September 21, 2016, 5:00 PM | comments: 0

I did a podcast interview at work today. They've been doing a series of these for awhile now, profiling various people in the company, I imagine as a means to build our reputation and brand. I think it's a good idea, because I work with some pretty great people, and collectively I think we're really good at what we do. But it got me to thinking about the podcast I used to do for CoasterBuzz. We stopped doing it about four years ago. I really enjoyed it, in part because it reminded me of the good old (poor) days of working in radio, and mostly because I got to virtually hang out with a very dispersed group of people that I've met over the years that I really enjoy hanging out with.

What I find interesting about that circle of people is that none of us are at the level of roller coaster nerd that we were then. Not that I've surveyed that gang, but I imagine that life has generally changed for us quite a bit, and so have our priorities. Some of us have kids, our interests have changed, and I think there may have been a fair amount of fatigue that set in. I was pretty hardcore about traveling to parks and what not in the early oughts, but as the decade wore on, I think there was a level of sameness. I know people who travel all over the world to hit as many rides as possible, but I'm barely motivated to visit the next state for something not that different from what I've been on before.

Even when we were doing the podcast, we had more fun talking about stuff in the peripheral, about the business and travel and often things that were completely unrelated. The deep fascination with the rides themselves isn't there, because again, sameness I think. When I actually spent a year working for a theme park company, there weren't really any big surprises, having observed them for more than a decade, but even when it's something you're passionate about, it's funny how you don't necessarily want to take it home from work.

The other thing is that the community got weird. I mean, it was always weird, but I'm talking a different kind of weird. When I was all giddy about the construction of Millennium Force in late 1999, I hung out with a bunch of dorks that would meet up at a park, ride a bunch, have some beers and share excitement about whatever was going up. A few years later, all that seemed to matter to people was the perks they thought they deserved as members of clubs, and people counting how many rides they had. Online community was even more weird, and the attention I got for running sites made me uncomfortable in the way that stalkers showed up at my radio appearances back in the day. I never wanted to be the CoasterBuzz guy, I just wanted the site to be a thing people liked to use.

What about the sites? PointBuzz (then Guide to The Point) was something I started in order to share photos and content. Regardless of the time and effort we have to devote to it, I'm sure Walt and I will keep it going indefinitely, with peaks and valleys of improvements (I think our second version famously took five years). That thing has been around for 18 years! CoasterBuzz has shifted in purpose many times. In 2000 I wanted to rule the online community. By 2005, I got tired of generating content, and apparently so did everyone else because the hundreds of niche sites went away. That was the year that ad revenue peaked. In 2010, my interest in maintaining community was probably at an all-time low (I was just-married, had a child, moved cross-country, started working for MSFT and had two houses to sell), but the site was still a proving ground for technology to me. By 2013, my interest returned, but I didn't feel like I could ethically commit to it while working at a theme park company. Today it's back to a proving ground, largely for my open source project, but it sees 50% more unique users than it did in 2010 (go figure), and ad revenue has stabilized, even if it's a third of what it was in 2005. Outside of the software, I doubt I average more than an hour per week maintaining it, so there's no reason to stop.

I still love roller coasters, of course, and I'm hoping that Simon also latches on to more of them now that he's 48-ish inches tall. I can see getting back into it as he gets older. For now, I feel like life is pretty full, in a good way, but not likely to include a lot of coasters beyond Big Thunder Mountain Railroad. I think I got into it for the people, and while the riding may not be as frequent, I still know all of the people.

Food & Wine is our new fall tradition

posted by Jeff | Friday, September 16, 2016, 9:07 PM | comments: 0

While there were not a ton of things that I liked about living in Northeast Ohio in the final years I was there, especially after Seattle, there's no doubt that Halloweekends at Cedar Point was pretty much the best thing ever. Fall Friday evenings at the park were magical in a way that I couldn't quite explain. It wasn't the attractions, per se, but the combination of good friends, the cooler weather, the color in the trees, the decorations and the smells associated with that time of year. We loved it.

Now we're entering our fourth fall in Orange County. I'm sure that I don't have to tell you that Disney does fall stuff as well. A lot of it is the decorations, and they do have a special extra-ticket event in September and October at Magic Kingdom, but we've never gone. The cruise line is also doing Halloween stuff, and we'll do that again this year. What we do enjoy, to an extraordinary degree, is the International Food & Wine Festival at Epcot. This may illustrate completely how my priorities have changed, but the bottom line is that this may be one of my favorite things to do in the fall. This year, the event lasts a full two months!

Weather down here doesn't feel like "fall" in the Midwest sense until late December at best, and that's OK. F&W is obviously mostly about food, but as much as I dislike crowds at theme parks, there is definitely a certain enthusiasm and energy at Epcot during the festival. Much of the food is the kind of thing you can only get at fancy restaurants, and while there aren't a ton of things I'll eat (because I don't eat red meat), there are about a half-dozen main course type foods that I do enjoy. Then pile on the drinks and desserts, and I'm a happy camper. If that were not enough, the music lineup gets better every year. This year there are at least five acts that I want to see, chief among them is Toad The Wet Sprocket, which I have not seen since the late 90's, and they were one of my favorites.

Not only is this year a longer festival, but they've added a ton. There are several completely new pavilions, including one that does exotic chocolate desserts, and the overall drink selection is extraordinary. Way more ciders this year, as well as hard soda floats. There's little question that I will piss away a lot of money this year (pun possibly intended).

One of the best things, and this is how spoiled I am, is that it's a pretty easy lunch outing. With Simon in school, Diana and I can run out there for lunch, and be back in 90 minutes without feeling particularly rushed. When work isn't super busy, it's easy to do this. That's a nice lifestyle perk for where we live.

The delicious hard orange soda float

Chocolate raspberry torte, and nitro chocolate and almond (without the almond) truffle. The truffle is actually chocolate mousse dropped into a vat of liquid nitrogen, then smashed on the plate and drizzled with caramel sauce.

Embracing chaos, letting go of control

posted by Jeff | Wednesday, September 14, 2016, 1:51 PM | comments: 0

"The kind of control you're attempting simply is... it's not possible." - Ian Malcolm, Jurassic Park

One of the great themes of that first dinosaur park movie is one about the conflict of chaos and control. The two things are by definition at odds. Nature and the environment are influenced by many variables, and when you add the input of humanity, it gets even more chaotic. The beautiful thing about complex systems is that it's so hard to predict an outcome, let alone control it.

Life itself is very much a complex system. I've been very contemplative of life lately, something I tend to do every few years, and it's remarkable to think about how one thing or another set off a chain of events that led to where I am. It's even more remarkable to think about how one different little thing may have produced a radically different outcome.

This crazy amount of chaos is one of the reasons that I think it's important to embrace chaos. We all have things that are within our control, but many more that we do not. I think we can get into ruts where we are constantly fighting the chaos to assert control, and we're not really free from it until we let go a bit. I can't imagine being a super Type-A personality, because like Jurassic Park, the kind of control they attempt simply is not possible. I think if I were to generalize about Type-A people that I've known, most are miserable. Imagine if they could embrace the chaos a bit, let go of the control.

Embracing chaos doesn't mean that you simply wander about the earth aimlessly. Just the other day I wrote about mastering your own destiny. What I'm saying is that you might be able to check all of the boxes of what you believed you must achieve, and life will likely still be kind of a messy and chaotic thing. Exerting control has its limitations.

It's probably hard to see how the chaos impacts your life at a young age. When I look at life in 5-year increments, and I've had four since college now, I get it. I could not have foreseen much of the important details of my life five years prior to those milestones. I mean, not even close. Five years from now, I know that I'll be five years older, and hopefully I will have saved a little money, but I can't predict much more than that. It's not for a lack of desired control... I have goals and aspirations... it's just that chaos will intervene.

The old interview question about, "Where do you see yourself in five years?" is total bullshit. It doesn't matter. It won't likely turn out like that, and frankly the reality is often just as good or better.

Robotic pragmatism

posted by Jeff | Tuesday, September 13, 2016, 11:13 PM | comments: 0

Reading the tech sites, I was enduring my annual surprise that people are willing to spend $650 on a phone every year. I commented about it on Facebook, and a friend of mine, who is probably right about this sort of the thing a lot of the time, suggested that I was "developing an almost robot-like pragmatic view on life." I chuckled, because it isn't far from the truth... sometimes.

Sometimes, I say, because given the stupid car that I have and my obsession with cruises, I'm obviously not pragmatic with everything. Come to think of it, the same friend helped me rationalize the car by suggesting it enabled memorable experiences, and therefore does not contradict my "experiences not stuff" m.o. I'm also free wheeling with cash when it comes to charitable giving, buying a friend lunch, tipping high and generally disregarding the cost of any leisure travel. No roboticness there!

But for whatever reason, yeah, there are certain categories of things where I enforce a realistic and largely data-driven view of the world. The phone thing, that's just a perception that it's wasteful, that the annual expense doesn't make life $650 better. That's weird of me to say, because God knows I've been known to have a gadget problem. But if I wasn't driving electric vehicles for science, I'd be content to drive a sensible Prius. I don't need a bigger house, either, even if I could afford it. Ikea furniture is perfectly functional to me. Working remotely is efficient.

I wasn't always this way. I'm pretty sure it's because I messed around a lot in my 20's and made poor decisions, and now I'm trying to overcompensate for that. In my head at least, I've acquired enough data and seen enough to make what I see as logical decisions. I suppose I need to remember that such pragmatism is what put me back in Cleveland, and we all know that was a terrible idea.

Being outside more

posted by Jeff | Tuesday, September 13, 2016, 10:45 PM | comments: 0

Diana was quite literally wrestling a quilt that she's been working on tonight, so I figured it might be a good time to sit down at the computer and continue my recent binge of learning and coding. We had a serious line of storms roll through, apparently associated with the tropical depression that just landed, and without a lot of lightning I decided to go hang out on the patio. Really epic downpours and a nice breeze. The rain has stopped, and when my neighbor's air conditioning isn't on, there's a pleasant sound of dripping and critters. Right now, I'm hearing the end, and seeing the flashes in the sky, of the Halloween Party version of the fireworks at Magic Kingdom. The distant sound of the train whistle I'm sure isn't far behind. It's a lovely night for the senses.

If there is anything I could identify as being a critical quality of life issue, it's the ability to be outside. Living in Florida means that you can do that pretty much all year. I'm not saying you can't go out in places that have real winter, but it's not particularly fun or comfortable, and can in fact be fatal. Yeah, you can ski and such, but I'm talking about leaving your home without putting on a parka.

Sure, summer can be pretty hot. Late-June to early-September, the heat gets a little old by August, and it feels a little gross if you're outside for extended periods. It's still not terrible, and when you're enjoying "jacket weather" in January, you know, because it's just under 70, there's no arguing that the summer hotness is totally worth it. Wear your sunscreen, stay hydrated, and it's all good.

As rainy (or misty, to be more accurate) as Seattle could be in the winter, I have to say that being outside was pretty easy to do there as well. When I worked on the Microsoft campus, the people I hung out with had a lunch rotation among various buildings, and it was never a big deal to get out and walk, all year. Heck, we had walking trails in the "woods" at the edge of campus, and I wasn't afraid to use them any time of year. Of course, in the summer it was 74 and sunny pretty much every day, Poppins perfect even. Being outside generally put you in view of those beautiful mountains, too.

This just wasn't the scene, growing up in the Midwest. Fall was the most wonderful time of the year, with the cool weather, the smells, the colorful trees... and then there was November. It may not have snowed right away, but it was coming. The trees appear dead. The skies turn gray for days on end, and temperatures take a dump. You may finally get a glimmer of warm weather in March, but you might get snow, too. That's a solid four plus months of coldness that forces you inside, and it sucks. I don't know if I could ever go back to that. I did once, and it was awful.

The bottom line for me is that I need to live where I can be outside as much as possible. I'm not even really a big outdoor activity kind of guy (unless you count theme parks), I just like having the fresh air.

Making your future, sort of

posted by Jeff | Monday, September 12, 2016, 10:38 PM | comments: 0

I'm totally hooked on Mr. Robot, that show on USA. It would be a pretty intense show if it was only about the place of corporations and government and computers, but it also throws in plenty of mental illness, deep philosophical questions, sex and strong themes of identity. I'm only a few episodes into the second season, but it's going in the direction of understanding what you want your future to be, and making it happen.

Making your future is a subject that's near and dear to me, because I spent the first dozen years or so of my post-college life kind of meandering and allowing the future to mostly happen to me. I made a few deliberate moves, chief among them changing careers, but mostly I was avoiding any specific action, or even thinking about what I wanted my future to be. I suppose it's because I figured that it would just be obvious, and happen like a Cameron Crowe movie (most of which I've been obsessed with). You'll have a coming-of-age moment, the future will be clear, and you'll be making out with the girl when the credits roll. Seriously, that's how most Crowe movies end.

After I met Diana in 2007, you could start to see the economy go kind of sideways. For the most part, I liked the people at my job, though I couldn't see where it was going. Two and a half years in, when the layoffs started, I kept hearing this theme about how it was an opportunity. I spent the next year or so wading in and out of "opportunities," until I realized that I was falling into old patterns. I was letting life happen to me again. I had to start dreaming and being deliberate in making my future.

It turns out that my future making resulted in a whole lot of moving around. There's no question that I was happier for this action. I made some mistakes, but none of them were irreversible. Making your future requires defining it, and acting on it, yes, but what the last six years have taught me is that you have to be OK with being wrong about your goals and your actions. You have to challenge your assumptions and your normal.

Where am I going with this? I think I haven't been deliberate enough in defining my future lately. I'm comfortable, and sometimes comfort breeds complacency. In those first dozen grownup years, I equated comfort with happiness. I have to better understand what I want to be as a parent, a husband and a professional, and go there.

As a cautionary tale, I have to admit that the future that we get is rarely what we dreamed, even when we are deliberate in our actions. That's a pretty crazy thing to think about. I'm suggesting that you have to make your future in a world where it doesn't go the way you expect. That might be because we're too specific in our expectations. If I split up my life into five-year chunks, I'm never where I thought I would be from one to the next. I look around me today and have a total Talking Heads moment and ask, "Well, how did I get here?" The answer is the actions I took got me here, it's just not the expected "here." I would argue that it's probably better than what I expected. Time, experience, circumstances and maybe just dumb luck have a way of refining your future in exciting ways.

The stuff and the status are not the goal

posted by Jeff | Monday, September 12, 2016, 5:30 PM | comments: 0

There are two groups of people in the US that definitely fall into the "hurting" category, and we hear about them all of the time in this election cycle. The first group are minorities, and African-Americans in particular. There isn't a lot of mystery about why they're hurting given our nation's history of institutional racism, and the socioeconomic problems around it. But the other group, the working poor, is a more complicated problem that I'm still learning about. It's not as simple as a group of people who make poor decisions, and raising minimum wage isn't the simple solution either.

In a discussion on Facebook, a guy I vaguely know online responded to a friend's post commenting that he often wondered why he didn't have a nicer car, or live in a nicer house, etc. His phrasing struck me as interesting, in that he said he no longer believed in "the American dream." I took this to mean that the things he didn't have were the American dream.

That got me to thinking about our expectations, as a culture and as a society. That Americans are characterized as generally materialistic is not surprising. Our rabid consumerism is arguably out of control, and I think it has really screwed up our definition of normal. Maybe it wasn't a "good" normal even when I was a kid. That definition was about a degree, a nice house, two cars, two kids and fat pensions. My suspicion is that it's the nuance in that definition that has changed, because the minimum viable way to live is actually just having shelter, food to eat, healthcare and a job.

I'm probably not the right person to talk about this, seeing as how I drive an electric car and live in the suburbs in a McMansion (is it still called that under 3k sq. ft.?), but external factors aside, I wouldn't be here if I didn't challenge the notion of what the dream is supposed to be. I subscribed to that vision in my 20's, bought crap that I didn't need on credit and tried to adhere to a lifestyle that probably had little to do with what I actually needed. As soon as I had a little money, I rushed to buy a house. When the economy took a dump, twice in the oughts, I eventually learned that maintaining this version of the dream was not sustainable. I imagine the jarring experience of divorce reinforced this.

There is some anecdotal evidence that the classic dream is not the goal it used to be. Many 20 somethings are hoarding cash and living college-style. Small homes (and tiny homes!) are becoming trendy. Some people even, gasp, hang on to their smart phones for more than a year!

Challenging the dream that was defined as stuff and status was something I should have done 10 years earlier than I did, but it has made a huge difference in the quality of my life. I may have been able to course-correct only because I work in a fairly lucrative field. I live comfortably, but I have no desire to live at a more expensive level even though I could. Living expensive is not something to confuse with quality of life. Living expensive as possible should not be the goal.

In fondness of my portable super computer (and other screens)

posted by Jeff | Sunday, September 11, 2016, 8:42 PM | comments: 0

I found myself today trying to explain Facebook on my phone to Simon. I went through the feed, showing posts from my friends in Chicago, some in Seattle, etc. Saw another post from my best friend's mom. I don't think he totally understood it. The Internet, to him, is this abstract thing that's just a fact of life. Heck, I don't think most people understand the Internet at all.

I'm sure I've pointed out before that it strikes me as wholly absurd that he has no context of a life before small electronic devices with screens capable of displaying images and text without seeing the dots that make them up, let alone devices connected to all of the world's information. I was expressing my frustration with this lack of appreciation less than two weeks ago. I feel like I have some duty to teach him how relatively recent this innovation is, and not to take it for granted.

When I'm looking back at my own life, there are some pretty obvious points where screens and the devices underneath had a huge impact on me. Here they are, in order:

  • The Atari 2600. Other kids and families had these before we did, but when my mom and step-dad surprised us with one (I'm going to go with 1983), it was like time stopped. My 11-year-old brain extrapolated these blocky graphics as if I was having an adventure with E.T. or flying through space playing Star Raiders. It was transformative to me. And yeah, I still have that console, 32 years later.
  • The TRS-80. In grade 6, my school, Benjamin Franklin Elementary in Cleveland, had one of these computers, and sometimes we had it in our classroom. I was obsessed with getting time on it, and started getting COMPUTE! magazines from the library with code listings to type in. (A Facebook search indicates that my teacher, who was awesome, died in 2010, which is sad.)
  • The VHS VCR. I think we scored ours shortly before Top Gun was released for home video, probably 1986. Video rentals, and the stores, were already a thing, and it was a special time when we would go to the video store and come home with a couple of tapes to watch. I remember the first store we went to had little key tags on hooks in front of the boxes, so you'd take the tag to the counter to rent your tape. Top Gun was the first to be priced-to-own at $20.
  • The Atari 600XL. I think my dad scored this thing after attending a time share presentation or something. Eventually he gave it to me, and it was the first time I had the chance to write BASIC code, somewhere around 1986.
  • The IBM PCjr. My junior high school had a lab full of these computers, and I got very hardcore about messing around with these. I would write out code on paper, referencing the IBM manuals that the math teacher running the lab would loan me, and then try entering them when I had an hour in the room. I remember drawing lines on the screen as if it were an act of sheer creation. That teacher tried to get me a chance to borrow one of those computers for a summer, but it never worked out.
  • The Apple II+. When my step-dad got laid-off in late 1987, the company gave him an old Apple II+, along with dual disk drives, a green monochrome monitor and a wide carriage dot-matrix printer. What made this fun was that there were actual games I could play on it, and with disks I could actually persist data. To this day, I consider my first "real" software to be a program that I wrote to save and edit Dungeons and Dragons character profiles, and it even printed them out.
  • The original Nintendo GameBoy. My first job, other than the contract work I did for the city for local cable TV, was at Ames, a department store back in the day. The GameBoy was released around the time I started, shortly after turning 16 (that's 1989). I think I bought it before Christmas that year, at the crazy price of $90. At $3.35 an hour, before taxes, that was a lot of money to save! I fondly remember that magical little machine, with its tiny little 160x144 screen and its few shades of gray. It came with Tetris, and I bought a Super Mario game and the external rechargeable battery. It seemed impossible to have that power in my hand.
  • My academic advisor's Gateway PC. There was nothing special about his computer, but connected to Ashland University's network, with Windows 3.1, Trumpet Winsock and the Mosaic browser, I saw my very first web pages in 1994, my senior year. We worked together trying to figure out how to make this work, and it was like magic. Armed with a bottle of Zima, the girly clear malt beverage that was all the rage that year, it was the first commercial URL I had ever seen printed on something, so it was the first commercial site I had ever seen.
  • Various game consoles. The Super NES, Nintendo 64, Sega Dreamcast, the first Sony Playstation, the Xbox, these were all significant steps forward in video games, spanning eight or nine years. Computers weren't making huge leaps, and in those days I upgraded a generic box with parts every year, but the game consoles got more interesting every generation.
  • The Palm V. Personal digital assistants (PDA's) were pretty amazing for being things that weren't actually connected to the network in any way. In retrospect, it was probably this very thing that kept me from seeing the obvious end game of ubiquitous wireless connectivity. (Salesforce seems to be the only company that really could see it, if you look at history.) But I had this little thing that recognized my handwriting on a monochrome screen, and I could sync it with my desktop computer to store my contacts. Oh, and I could play solitaire. It was a big deal for 2000.
  • The iPhone. It wasn't until 2007 that the next amazing screen would appear. Smart phones were already a thing, but they sucked. A bunch of clunky things built on some variation of Windows were kind of terrible, and too expensive. When they announced the iPhone, I had to have one, and I did, the day after it came out. Most screens before then were incremental changes to the universe of computing, but the original iPhone was extraordinary. It didn't have "apps" yet, but it didn't matter. Its interface was obvious and intuitive, and it could access the web over cellular.

Three years later, I wold score the first Windows Phone while working at Microsoft. It wasn't revolutionary, but it was a dramatic improvement in user experience, even if it didn't catch on. In fact, I would argue it's still the best, but it does no one any good if it's no one is supporting it or making amazing devices. Last year I relented and bought an Android phone, a "pure" build from Google, and I've been very happy with it. It's extraordinary what a midrange device can do these days.

So the next time you unlock that little screen, think about how awesome it is before you share that next cat photo or complain about whatever. The thing in your hand is amazing, and impossible a decade ago.

Nobody knows the trouble I've seen

posted by Jeff | Friday, September 9, 2016, 5:00 PM | comments: 0

I was talking yesterday with a friend and coworker about many of the things we've seen in our lives, personally and professionally, and the ways that it all shapes us. It can be striking, the way that the events in our lives, big and small, good and bad, can alter the trajectory of our understanding of the world. For better or worse, it makes us who we are.

That made me very contemplative, on the way home. As much as we get to make choices about how we conduct our lives, these events color every decision. The good things undoubtedly make us better, but the bad things can be so difficult to process and move beyond. Other things may have simply been neutral in their nature, but established a baseline for how we operate.

I think it's safe to assume that most people want to be "better" in some way, improving their own lives, the lives of others and maybe even improve the world. Age seems to make this more possible, but what I observe as people get older is that they either learn to let go of the ugly parts of their lives and be amazing, or they hang on to the bad stuff and become cynical and miserable. I never want to be the latter. I have certainly seen my fair share of pain and sorrow, but I won't hang on to it.

Indeed, "What doesn't kill you makes you stronger," is a silly cliche, but hopefully it's true.