Archive: October, 2017

An ADHD parenting adventure

posted by Jeff | Sunday, October 22, 2017, 5:25 PM | comments: 0

The first two, almost three years of parenting were exhausting. Kids can't do very many things on their own at that point, so you're always wiping butts, getting your kid in and out of bed, feeding them, etc. Simon had no real concept of schedule, so it seemed like I was always tired. But before you know it, you get back to some sense of normal, and all of the baby stuff that you labored over acquiring (strollers, high chairs, car seats, changing tables, etc.) become completely useless. Hopefully you bought most of that stuff second hand.

For us, at least, the exhaustion turned from physical to emotional. Simon was diagnosed with ASD, and almost three years after that, ADHD. The ASD diagnosis was something of a relief, because it perfectly explained some of the developmental challenges he was exhibiting (not to mention the style of play that involved lining cars up instead of driving them). It meant that all of the extra intervention and double pre-K effort was validated. While he certainly some personality quirks, not the least of which is an inability to understand sarcasm, I feel like he can generally cope with being "neurally atypical," as they say.

But midway during first grade, it was clear that he was starting to struggle in school, which at first seemed strange because he was obviously smart and understood everything put in front of him. That's when we got him in front of the right doctors and arrived at the ADHD diagnosis. This is a condition that has the perception of being overdiagnosed, but as it's often a comorbid condition with ASD, not easily ignored for us. Frankly, when he couldn't stay focused long enough to get dressed or complete a shower, it's not like we couldn't see examples in front of us where it was affecting his quality of life. I just hated the idea of medicating without therapy.

This is where it gets frustrating from a care standpoint. Diana is worthy of mother of the year because of her attention to detail and the level to which she wants to understand these conditions. But at the end of the day, doctors have to prescribe treatment. We started with one pediatric psychologist who frankly didn't seem to get particularly engaged beyond medication, and wasn't owning any therapy referral either. We switched doctors, and now we're getting somewhere, but it's frustrating. The medication he used last year wasn't working this year, so after switching, he seemed to get worse until we increased the dose. The difference is extraordinary in school, and we saw it last weekend when asked to observe him on it.

If that weren't frustrating enough, he also suffers from anxiety, to the point where the first therapist we talked to wouldn't work with him because it would be ineffective. So he's on a med for that as well. He's 7, and that's heartbreaking.

I've had countless instances where I've lost patience with Simon, mostly when he's not on the meds. He's defiant and quick to meltdown. It's a mess, and it leaves me a mess.

I do feel like we've turned a corner, but just in the last week or two. What's difficult is that when we don't medicate him, his ability to follow the most simple instructions decreases exponentially. This weekend has been a little rough at times because of that. Weekday evenings can get a little tough too as the meds subside, especially around homework, which can crank up his anxiety because in his mind there's no room for doing it wrong. Our wind down at bed time has been a lot nicer than it was lately. He's painfully self-aware of his behavior challenges, so he feels broken.

It's worth noting that this year alone, we've spent thousands in co-pays, deductible and medications on trying to help him. I bring that up because I don't see how any family making less than six figures together can afford to do it. I find that completely immoral. Kids don't get to choose their parents.


Don't be arrogant thinking you know better than your customers

posted by Jeff | Thursday, October 19, 2017, 8:00 PM | comments: 0

Today was demo day at work, but not demo as in demolition, a favorite of HGTV fans. (Though most software developers have worked in code bases they'd like to demolish.) Our demo is for demonstration, where we show what we've been working on to our customers. This release, on the surface, seems less interesting because so much of it was improvement toward the general robustness and durability of the app, but we also dedicated a ton of time to shoring up and revising one of our core features. The reaction from our customers was one of excitement, and dare I say joy. I can say after a lot of years in the business of making software, you don't get a lot of chances to see people be excited about what you built. Demo day is the day that job satisfaction goes up, and on a regular, two-week cadence.

The key to our success so far is pretty obvious, in that we solve the problems of our customers, and we try to do it really well. They're quite literally embedded in our process as stakeholders. What we've found is that customers will look for, and often find, ways to achieve what they want in unexpected ways. We work to understand those problems, and that's where we apply our creativity. The cleverness comes when the problem has been refined and we can act on it with something awesome.

I think too many organizations start with an idea where they thought of a solution to a problem that's so awesome that customers don't even know that they need it yet. How many apps (and especially mobile apps) are introduced year after year that never become viable businesses? Anecdotally, I'd say that it's most of them. It's arrogant to believe you have the answer to a question that no one is asking. Yes, sometimes there are unicorns that appear, backed by exceptional genius. I might even agree that experimentation is good because it's what moves us forward, even at the expense of mostly-failure. However, if your core interests are solving real problems that improve the lives of people encountering those problems, building a sustainable business, making something enduring... trying to be a unicorn is not the goal.

For part of the time I was working in the world's largest software company, I worked in a group that was dreaming up a product that they were certain people wanted. There was a focus group, and the group interestingly came up with some ideas that were tangents to the things our group was pitching. Our leaders decided that we were mostly going to stick to what we were thinking about anyway. At one point, I was directed to take a sub-feature and flesh it out as a wholly defined thing, and then pitch it in a meeting that would easily cost $3,000 in salary and benefits. I objected to this direction, and ended up doing what made sense to me: Define the basics, list the assumptions, and come up with a game plan to validate the assumptions and further refine the feature.

Many of the people in that meeting were dissatisfied with this, and my boss later explained I was going about it wrong. As he put it, it was our job to dream up all of this awesome stuff and get it to market without any of that refinement and validation that I was after. It was that conversation that I knew I had to get out of that group, when he said, "That's how you develop software."

That group never shipped anything.

Frustrating and unfortunate as that situation was, it was a blueprint for what not to do, and I've kept it in mind for much of the last six years since that conversation. These days, I'm reminded every two weeks that the extraordinary satisfaction I get from our customers happens because we apply our "genius" in response to that constant refinement and understanding of the problems we need to solve. Our collaborative team comes up with some really great solutions, but we're not arrogant enough to believe we know completely what they are ahead of time.


Even professional social media never forgets

posted by Jeff | Tuesday, October 17, 2017, 9:03 PM | comments: 0

One of the complaints of social media is that it never lets you forget. What you commit to it has a way of staying around to serve as a reminder or to totally contradict what you have to say today (just ask the president). The weirdest social media of all though is LinkedIn. Everyone is there, but I no one uses it. The only people I ever hear from there are recruiters, usually pitching some totally irrelevant job.

And every once in awhile, you get some totally ridiculous network request from the distant past. The other day it was from the former owner of a company that I worked for just before I got married, just five months. It seemed like a good opportunity because it had a dev org that was in chaos. I remember telling them to let me run a new project my way, agile, and if it went south, they could fire me. I brought in a contractor that I worked with before and just nailed it, on time, on budget and what they actually wanted (not what they thought they wanted). When I got back from my honeymoon, I was ambushed with the news that they couldn't afford to pay me, because they failed to score a new client.

I can't understand why this guy would think that I would want to have any contact with him. He followed one of the best weeks of my life (an expensive week) with nothing to show for great work. That was how he operated, as the company was like a revolving door of disposable workers. I'm not bitter or angry about something that happened eight years ago, but I certainly have no interest in reliving it either.

This got me to thinking about my overall work experience. As much as I'm proud to talk about my successful endeavors, man, I've seen a lot of train wrecks. I can't generalize about the size of companies that have been host to these messes. The only real difference between the big companies and small companies is that the big ones can afford to keep perpetuating the mess for a long time. I think if I were to really generalize about success versus failure, it would usually come down to self-awareness. Companies that are self-aware have a better shot at getting it right. They don't always, but it definitely makes a huge difference.

Thank you for the perspective, LinkedIn.


It's almost time to move again, and I don't hate houses anymore

posted by Jeff | Saturday, October 14, 2017, 11:21 AM | comments: 0

Thanks to Facebook's "never forget" feature ("On This Day"), it's that time of year again when it reminds me of one of my best moves, and one of my worst. The best was moving to Seattle, the worst was moving back to Cleveland. I'll probably never let myself live that stupid decision down. Fortunately, the corrective action of moving to Orange County 20 months later turned out to be a really good decision. Throw in the move while living on Seattle's east side, and from our rental to our house here Florida, and that makes for a total of five moves from late 2009 to early 2014.

Next month we move again, about a mile from where we are now. That's a three and a half year run this time, which for us is almost considered stable. This move is not really out of necessity as much as it is desire. When my BFF built a new house with lots of room, it got us to thinking about the way we were kind of squeezed, especially Diana with her long-arm quilting machine. After more than three straight years working remotely, I too felt like the walls were closing in a little. But in all honesty, we don't need a bigger place, we just want a bigger place.

My perceptions on real estate have evolved, too. Seattle skewed my perceptions about value, where everything costs more than $220 per square foot at least. When we looked at building here, we looked at a 5,000 square foot house as a joke, but at $500k fully optioned, the cost was that of a modest east side Seattle house at a third the size. We stuck with a more "reasonable" 2,700 square foot house, which is still probably bigger than one needs for three people. It certainly felt big when we moved in.

But now, our house is worth 15% more in three short years. That absurdly large house we looked at for giggles? It's worth $600k now. We haven't even closed on the new house, and the appraisal is already $10k over what we'll pay. So for all of my angst and drama around my previous house, right now at least, a house is remarkably like an investment. Sure, it's not as lucrative as a 401k, but you can't live in a 401k.

Hopefully this will be our last move for a while. We learned a lot about what's important to us when we built the current house, and while we're mostly looking for extra space, floor plan and functionality is what we're after. We're not getting more rooms in this house, just bigger, more functional rooms. And I'll admit, some things like the kitchen are more fancy. With all of the HGTV I watch, I'd like to have a little fancy.


My Florida health cycle

posted by Jeff | Thursday, October 12, 2017, 10:48 PM | comments: 0

I'm not sure why I ended up getting my annual physical in the fall, but even as I've skipped years, it seems like that's the rhythm I end up in. That probably wouldn't matter anywhere else, except that in Florida, it marks the end of my lazy phase. Oh, and I'm not really active enough to begin with.

I've told the story before, but about 12 years ago, I weighed about 30 pounds more than I do now. While I should still lose more weight, I've focused less on that and more on how I feel. Moving to Florida, where I can be out and moving around all year, I learned that just staying in motion makes a huge difference in how I feel. I absolutely loathe exercise for the sake of exercise, so lots of walking and occasional tennis is about as well as it goes. If there was anything I hated about winter up north, it's that I would get to February and be tired all of the time, and even get winded going up stairs. I don't get like that anymore.

But I do slow down in the summer. When it's in the 90's every day and humid, it gets to be kind of a drag. You go out in the morning to walk and the humidity is 98% and the temperature is already near 80. It's kind of gross. Here, away from the coasts, the humidity is lower in the afternoon, but it's still really damn hot. If it weren't for the theme parks, I'm not sure I'd move around much, especially as a remote worker.

And that leads me to the doctor visits, where the timing finds me a few pounds higher than I would be in, say, April. Again this year my cholesterol is just a little over normal, as is my blood pressure. My triglycerides were totally high, probably because I had pancakes the night before, and the alcohol from the cruise was obviously not helpful.

The doctor visits are a good motivator to get off my ass. I probably need to take the weight a little more seriously with the slightly high blood pressure. It has been harder this year because I'm not going into an office, optional or not, twice a week the way I did at my previous job, which makes my activity level go even lower. I admittedly prioritize work over movement, too.


Yes, Windows Phone is still dead

posted by Jeff | Wednesday, October 11, 2017, 9:20 PM | comments: 0

Last weekend, there was some unceremonious news that Windows Phone was in fact dead. I guess it's weird that there really never was a formal announcement about this, but even among the faithful, myself included, we knew this two years ago.

I worked at Microsoft, in Redmond, when Windows Phone launched. At that time, I was on my second iPhone (the 3GS), and loved it dearly, but was excited about Windows Phone mostly because it was so stupid easy to develop for, while iPhone was not. Before the phones even shipped, I was able to whip up a quick and easy app to remind tired parents how long it was since you took care of your baby. (Seriously though... when your wife is passed out sleeping and you just got up, this kind of thing helps you figure out if the crying is because of hunger.) Eventually, the company gave all of us employees free phones, and AT&T did a BOGO which meant I got one for Diana as well for free. The Samsung Focus was kind of cheap feeling, but it was otherwise pretty solid.

A little less than two years later, I got the Lumia 920, which was pretty much the Windows Phone that all of the fans had. It had a pretty great camera (at the time), great battery life and the OS kept getting better. There were a lot of evolutionary changes that made the OS better than iOS, and definitely better than Android, which was a fragmented mess. There were unfortunately apps that were "missing" from the platform, which didn't matter a ton to me because as long as I could use Facebook and the web, I was good (this is mostly still true today).

Over the course of the next three years with that phone, we waited patiently for the next "flagship" hardware, and it finally came as the Lumia 950 and 950 XL, but just before that came something else that finally convinced me it might be time to jump ship.

Google had just launched the Nexus 5X and 6P, made by LG and HTC, but stocked with "pure" Android, which is to say that it was the stock build with no carrier or hardware variations in the OS. They were also unlocked, ready for use on most any network. By this time, Xamarin, not yet acquired by Microsoft, was making real progress at making cross-platform development for Android and iOS awesome, which was also intriguing. The 5X was around $450 unlocked, and was getting rave reviews for its camera, the thing I cared most about. I figured I'd get that phone to play with, for development purposes, and then get the 950 later. I had the Nexus for probably 2 days before I realized I had no need for the Windows Phone. I bought a 5X for Diana as well, and we never looked back.

I despised Android to that point mostly from my experience messing with virtual instances of it on my computer, and from playing with various test phones while at SeaWorld Entertainment, as our mobile apps were coming along. They were all different and kind of clunky compared to iOS, and even further behind Windows Phone. Heck, they were behind what Google had released at any given time, because there were not strong incentives for carriers and manufacturers to update their own builds. But the latest, unmolested bits, the state of the art with solid (if plastic) hardware were not only compelling, but a slam dunk for me. And of course, by then the support for Amazon and Microsoft cloud resources were tip-top, so the Nexus 5X was doing everything I needed and wanted, and then some. I felt silly for holding on to Windows Phone for as long as I did.

As if Google hadn't already been applying their foo to the camera software in an excellent way, they released the Pixel about a year ago with a camera that many declared the best smart phone camera period. It was too expensive at $650 (perhaps to equate its value with the iPhone), but as the photo samples started to appear, especially in low light, I couldn't easily ignore it. Then a co-worker got one, and I was sold.

Microsoft made a ton of mistakes, but I don't think it was the software. I was routinely impressed with how well everything worked together, and the extraordinary customization possible with live tiles. The inter-app sharing that we now take for granted in Android and iOS was already a thing back in 2010 on Windows Phone. But everything beyond the software was less than ideal.

The initial hardware for the first phones was mostly mediocre compared to iPhone and even some of the Motorola phones at the time. Nokia started to make great phones though by late 2011, but carriers didn't know how or why to sell them. If that wasn't bad enough, Microsoft and Nokia made some stupid carrier-exclusive deals that made it worse. I really think that this was the window of opportunity, and they totally dropped the ball with poor marketing and poor sales efforts. If that weren't bad enough, the hardware went nowhere for three years after that before the 950 came out. Samsung was building great phones and people didn't care if it was a year out-of-date, while Apple sucked people into yearly incremental updates. A platform with dwindling developer support and no good hardware had no chance.

It sucks when great products don't take hold, but as a friend of mine pointed out regularly, it's hard to talk people into something when what they're using is meeting their needs. The universe probably didn't need a third platform.

I'm very happy about Google's direction with their platform on their own hardware. It's gonna be hard to resist Pixel 2.


POP Forums, it's not dead, I swear

posted by Jeff | Sunday, October 8, 2017, 9:49 AM | comments: 0

I managed to make some commits to POP Forums yesterday. It has been more than two and a half years since I've made a release. As I've written before, the primary goal has been to just port the thing to ASP.NET Core, which is now on v2, but it has been slow going.

For the non-technically inclined, Microsoft decided a few years ago to make the .Net platform entirely open source (now called .Net Core), modernize it and let go of the legacy of various mistakes made over the last decade and a half. This has all been a good thing, but the transition has been painful due to constant fundamental change, poor documentation and "missing" stuff from the new framework. The web part of the framework, ASP.NET Core, also embraced a lot of client-side technology that was already a moving target, and continues to be. When I say "embraced," I mean it doesn't invent anything new of its own.

I started to work on it in September, 2015, more than two years ago, when the new framework was still in beta. That was my first challenge, because as a "do over" framework, nothing was set in stone. I started by converting a lot of the UI stuff to the newer bits, and finding open source replacements for sending email and resizing images, things "missing" from the Core. I also had to accommodate changes to SignalR, the sub-framework that enables the real-time updating of topics and lists of topics as they sit on the page. The problem there is that the development team didn't prioritize that work over general improvements, so even as ASP.NET Core is now at v2, it's still not at a release status. In the last month, SignalR at least went alpha, meaning they seem to have the general direction of it nailed down, and the team doing ImageSharp, to resize images, made a beta. That puts everything into a good enough place to consider a beta release, with some clean up and testing.

To be honest, the technical volatility isn't the whole problem. The primary reason for me having the app at all is to use it as the base for CoasterBuzz and PointBuzz. To that end, those sites are technically solid and silly fast even under load, and "old" ASP.NET isn't going away soon. If that weren't enough, I've been so plugged in at work the last few years that it's become harder to spend my free time doing, well, work. Throw in the quasi-struggle of parenthood, and I can't say I've been very motivated.

But now it feels like a corner has been turned with all of the peripheral stuff around Core coming of age. As I said more than a year ago, my intention with this version is just equivalence to the previous version, running on all of the new bits. Who knew that would have taken so long? To be fair to myself, I did achieve one of my goals in the last year, which was to make the app work across many nodes. It couldn't do that before because it relied so much on in-memory caching and in-process background tasks. Those problems are mostly solved now.

I'd like to spend more time with it, get a release out, and then start modernizing it. Professionally, most of my work in the last four years has been around big picture architecture and backend performance. In that time, frontend tech has changed dramatically, and I don't have much expertise with it. I'd like to to change that situation.


Cruise report: Disney Dream, Sept. 29-Oct. 2, 2017

posted by Jeff | Thursday, October 5, 2017, 6:00 PM | comments: 0

There usually isn't a lot to talk about on these cruises, but this one was different. Our lucky 13th Disney cruise was the first one that did not include my dear child. It was just me and my darling wife. And it was awesome.

Well, mostly. It turns out that our first attempt at adulting the shit out of a cruise may have been a little overzealous the first day, so we didn't approach the second and third days with quite the same energy. Saturday morning was met with the realization that we're not 24. Fortunately, I was in my happy place, and a good nap helped a lot.

Friday involved some of the usual getting settled, but we got into pool gear via the spa locker rooms (pro tip!) and enjoyed one of the many beverages of the day in the Cove pool. That was the start of the new territory for us. We also nailed down a brunch reservation for Palo the next day, a free perk that goes to platinum Castaway Club members that we were unable to use the last two times. Once the evac drill was done and we were underway, we went up to deck 13 so I could get a selfie wearing my SpaceX Of Course I Still Love You shirt with the actual Of Course I Still Love You landing drone ship in the background. I'm a nerd like that.

Our dinner party included two other couples that were sans children. We don't always get seated with other families, but this is the first time that they were not socially inept, uppity or otherwise not interesting. One couple was from southern Ontario, the other from the Nashville area. They offered good conversation every night, and we periodically saw them around the ship.

Evening was about spending quality time in The District, the set of bars and clubs on deck 4 aft. None of them were very crowded. We started in 687 (named for the hull number of the ship) for 90's music trivia, which arrogant 90's DJ me thought we could win, but we missed two that I didn't recognize while getting the really hard ones. Our host, #TonyFromSpain, would be a fixture at many of the adult events throughout the cruise. The comfortable place we ended up was Skyline, the martini bar where one side has virtual windows to the skylines of NYC, Rio, Hong Kong, Paris and Chicago. There we met a nice military family that had the kids in the kids club. It was also the start of many great conversations with the bar staff there.

Saturday was slow to start, but what we missed is that the pilot designated by the port of Nassau backed the ship into a pier, causing a lot of presumably superficial (but expensive) damage. Typically the Dream pulls into the harbor, spins around, and backs in to the pier, but somehow, they managed to strike the pier. I remember thinking from our verandah that they started the turn really late, but I didn't know that happened until someone mentioned it at dinner. Not sure what the convention is, but having pilots steer the ship is custom for many harbors and inner waterways, and I've seen them board a few miles offshore on prior sailings. In Alaska, they apparently had one up and down the fjords.

Two programs that I've done a few times were the Making Of The Dream, more or less a slide show, and Art Of The Theme, a walking tour around various parts of the ship. These are adult-only programs, and we've not had a chance to do them together, so that was a lot of fun. I've done them on the Wonder as well.

At noon we had our Palo reservation. We opted to do brunch instead of a dinner, which would mean we'd not see our table mates or our dining team, and I like getting to know them. The menu is a little different, and they offer a buffet as your appetizer and dessert courses. Let me tell you, I've had variations on parmesan crusted chicken in many places, and it was never as awesome as this. The cheeses they use are imported from Italy in small batches, and I was particularly impressed how they're not greasy at all. I've never had anything fried that did not seem to be fried. I'm not a fancy eater, but this blew my mind. The service was also about as good as it gets, with the manager (an Italian fellow, naturally) and our server (from Croatia) taking good care of us. This is normally a $30 upcharge per person, but again, it's a perk for platinum members.

Our afternoon involved a nap, another pool visit and some true, not thinking about anything relaxation. After dinner, we continued our social trek, and landed in Skyline after a stop in Pink, the champaign bar. More good conversation with folks stopping in, and one bizarre conversation with a woman on her first Disney cruise who thought that Carnival was better, especially the food. Of course, instead of taking advantage of the superior service, she was waiting to unleash complaints at the end of the cruise. And to quote, "You don't put barbecue sauce on a plate next to prime rib and call it a day." What an idiot.

Sunday was our beach day at Castaway Cay. I think at one point we considered renting bikes, but thoughts about wet swimware and chafing kind of diverted us away from that. This was another first for us: going to the adult-only Serenity Bay at the north end of the island. Upon arriving, it was impossibly quiet and, uh, serene. No kids. That's some serious Disney magic. I had two minor quibbles, the first being that there aren't enough umbrellas compared to the main beach areas, and the water never goes more than waist deep. On the plus side, the sealife you can observe is staggering. That beautiful clear water is filled with all kinds of stuff swimming around.

My other minor complaint is that, while the adult food serving includes some adult-only items, they don't have the spicy chicken that the main locations have, which non-red-meat-eating me mostly sticks to. That was disappointing. So for me to get something I like, and for Diana to enter water deep enough to get wet in, we did head back to the main area for a little while. We only stayed out there until 2 or so, because again, we were up late the night before. That, and we're pretty sure the stuff they serve in Skyline (with glow cubes!) had at least three shots of alcohol in every drink.

We wrapped up that day after dinner with Believe in the main theater (the new cast is really good, the choreography tight, and an obviously solid group set to debut Beauty And The Beast next month), second dinner on deck 11, and eventually landed in Skyline again. This time, it was crazy crowded, so we ended up sitting not at the bar but in a corner talking to a family from the Carolinas (maybe?) that were our age, but recently became empty nesters. It was a pretty great end to a cruise where we met a ton of interesting people. We were social with adults. It was a good feeling. It was also a much needed break where we could be a couple with nothing to worry about but each other. I can't thank our friends Kara and Sean enough for watching Simon.