Jobs, layoffs and passion for work

posted by Jeff | Monday, July 21, 2014, 10:33 PM | comments: 0

Microsoft let go of something like 18,000 people last week, though to be fair, the vast majority of those came from the acquisition of Nokia, and everyone saw that coming. The bigger story for a lot of people was the 1,300 and change who were being let go in the Puget Sound region, though this is still less than the number they let go of in 2009 (coincidentally, the year they moved me out to Seattle). I'm still not surprised, because when I left in 2011, the head count was something around 88k, and three years later they were over 100k without Nokia. That seems like insane growth. Regardless, reading the stories online, this was not limited to those who were underperforming, it seems. Also let go were folks with over a decade and good reviews.

I've thought about how much I should write about my experiences in Redmond, and one of these days I'll do so now that time has passed (along with countless re-orgs). I will say that what I did not experience was the stereotype that so many have of the company: Long hours, soul sucking bureaucracy, no work-life balance, etc. If that's what I experienced, I assure you I would have left as soon as my move expenses were in the clear, a year from my start. No, as much as I wasn't sure where I belonged in the company, it was in no danger of killing me.

But I'm amazed at how many folks who were laid-off were taking deep breaths and expressing online relief at being let go. Obviously a lot of people did live in that negative stereotype of the company. I know it existed, but I never saw it first hand. I also noticed how many people had spent many years working there, and simply had no idea how they would exist off-campus.

In both of those situations, I can certainly understand to an extent. Regardless of what a lot of people think about Microsoft, working there and identifying with the company can certainly be a sense of pride. I will still proudly tell people that I worked there, and for the right job, sure, I would go back (though I'm not sure I'd move, it would have to be remote). Heck, I still have some regrets about leaving.

When I think about the layoffs, I can't help but think of the scenes in the Clooney movie Up In The Air. He works for an agency that lets people go, and the reactions range from anger to distress. I get that, because I've been there.

The first full-time job I lost was working in radio, because I had no contract, and they had to stick the guy with poor ratings somewhere because he did have a contract. That soured me on the whole profession. Then I watched Penton Media fall apart, with so many friends let go in the chaos. I found a new job before it reached me (my replacement was cut a year later), but that new job ended shortly after 9/11. I was completely devastated. It didn't help that it was the first job that was 100% software development, and I had just bought a house. I went work-free for six months and it just crushed my self-esteem.

That certainly wasn't the last time I would get laid-off, but I learned a lot about myself and the relationships between employers and employees. There are some general things I try to keep in mind about work:

  • Work does not define you. A lot of people can't accept that, especially if they're worried about status or perception. Your value as a human being doesn't disappear just because your job does.
  • Companies are not people. You can personify the legal entity all you want, but a company isn't a person. It exists solely to make money, and it's not personal.
  • Time spent does not change the employer-employee relationship. The arrangement is simple: They need some kind of work done, you perform that work, and they give you money. If that value proposition disappears, loyalty is a non-factor.

So where does this leave you if you have the kind of personality that lives to work? Maybe that's putting it too strongly. What do you do if you have passion for your work? I think if you do have passion for your work, that's going to come through in every way, and as long as the market for your skills doesn't completely suck, you'll always find work. Sure, some people only work for the money and status, but the people who really impact their lives, the companies they work for, or even the world, make things awesome because of those deep intrinsic motivators they have. You have to keep in mind that the kind of value you bring is precious, and just because it isn't required by a certain company doesn't mean it no longer has value. You can't tie up your worth in a company like that.

I've been fortunate to work for a number of companies that value what I offer. In every one of those cases, I want to do right by them, and will always do so. But I understand that it's possible that they may change their mind about my value, or be forced into a situation where they simply can't afford to pay you anymore. It's never easy, but you get through it and you refocus.

To the hundreds of Seattle-folk who had to turn in their blue badge, I feel your pain. I've been there, if only at other companies. I totally get how you feel about Microsoft, but I think you'll find that professional life goes on beyond 148th Ave.


Review: Surface Pro 3

posted by Jeff | Sunday, July 20, 2014, 9:12 PM | comments: 0

I've been meaning to write a little bit about my experience with the Surface Pro 3, "the tablet that can replace your laptop," as Microsoft has been claiming. I've had it for just about a month, and I'm really happy with it.

First though, some background about my device usage. As I've said before, I'm not a big app user. Most of what I do in a connected fashion outside of software development happens in web browsers. That said, I have the fabulously inexpensive Dell Venue Pro 8 which can be had for $250 or less most of the time, and I find that Windows 8 is a pretty good tablet operating system. It starts up very fast (especially compared to iOS), and the touch variation of Internet Explorer has finally matured to a point that it's actually pretty good (something I never thought I'd say about IE). It does have most of the usual games available, along with weather and other things. I'm not typical when it comes to apptasticness, so it's probably best to stick to my hardware opinions.

I ran out and bought the original Surface and Surface 2 models, the kind of silly Windows RT tablets. Truth be told, they were totally adequate as tablets, but you had to wonder why they didn't just put x86 processors in them so they could do "real" work as well as be tablets. After all, the keyboard covers have always been their big differentiators, and they came with an RT compiled version of the Office apps. Meanwhile, they also had the Pro models, which had Intel Core processors. They fit into the same height and width of the RT machines, but they were so much thicker that they really failed to be practical as tablets. Between the 16:9 screen ratio and the weight, they were mostly laptops in a slightly awkward proportion.

Then they announced the Surface Pro 3, and that got my attention. Thinner and lighter than the MacBook Air, and it was a full PC inside with Core processors. Much has been written about the pricing structure and the extra cost of the keyboard covers, and I won't rehash that here. My conclusion is that the only way you can really classify the device is as the lightest laptop that exists, and by the way, you can use it as a tablet. After a month of using it, I say it's 85% there. You wouldn't (or shouldn't) buy the thing if you're just wanting to sit around surfing Amazon or Facebook. Even the cheapest Amazon Kindle Fire is good enough for that. The question is more about whether or not you need one device that can do everything. More on that later.

Let me step through the use cases. As a tablet, the screen is a little bigger than the 10" tablets we've all become used to, ranging from the iPad to the Surface models and various Android devices. Because they went to a more traditional 4:3 screen ratio, this one isn't awkward in portrait mode. It's terribly thin, and really light, so it's fairly comfortable to hold. It just borders on being too big, because a little longer or wider and it would feel strange. The pixel density isn't quite to the point of the iPad, but it's pretty close and you can't see any pixels. The screen is really amazing.

All of the Surface models have had that bonus tablet mode, too, because of the kickstand. This one reaches the standard 22 degrees (or whatever it was), but then can adjust to virtually any angle, almost reversed. That seemed excessive, but I've pushed it all the way out when placing it down on a table where I was standing, and also on the floor, with me hanging off the couch (I'm always looking for new ways to be leisurely). The hinge is every bit as solid as the previous models.

As a laptop on a table, running anything ever made for Windows, it's screaming fast. I have the Core i5 model with 8 gigs of RAM and 256 gigs of storage. I think that's the surprising thing when you're using it. Sure, if you've had a MacBook Air, you can't believe how light it is, but this is lighter than that, and it still has a full computer in it (and a far better screen for sure).

The new keyboard covers are a great improvement over the previous generations, but they're not perfect. They now have an extra magnetic strip that sticks to the bottom bezel of the machine, adding a fair bit of stability and a comfortable angle to the keyboard. The key travel is adequate for me, but if you like really deep presses, you'll be disappointed. If you don't have it flat on the table, it's also very loud, and feels just a little squishy. The track pad is actually very nice, but it should have been bigger. I think this is a problem of size, since it is, after all, a cover for the screen. It has that smooth feel of a MacBook, but isn't as tall. It's just so close to being awesome, but falls short. I tend to use a mouse on tables anyway, and if you haven't seen it, there's a Bluetooth contour mouse from Microsoft that's under $25 and it's shockingly great for the price.

Which brings us to the laptop on your, uh, lap use case. Microsoft has gone to great lengths to convince people that they solved the "lapability" problem of the previous models. My assessment is that it's better, but it's not laptop better. That extra stability from the extra magnetic strip does make it far more stable, and the infinitely angled kick stand means you can adjust it as you wish, but there are two issues. The first is that if you're not sitting on a slouchy couch, you might not get it away from you enough to keep the kickstand on your knee(s). The second part is that unless you have excess girth (I have a 34" waist), the corners of the keyboard, where you rest your hands, might not have much support under it, throwing the whole unit into a less stable arrangement. I have found that I can usually settle into a position that's comfortable, but if I move, I have to find it again. This is why I say they're 85% of the way to making this a true laptop replacement.

There's another use case that no other tablet can handle, and that's one for pen input. Microsoft has had a fetish for the stylus for years, but I think this is the first time that it really makes sense. Sure, you can do the text input that has been around for a long time, and it's still pretty great. But now, the pile of awesome is using the pen with OneNote. I've been using it to sketch out user interfaces, workflows and entity relationships, and it's fantastic. Even for scribbling out notes in my terrible handwriting it's solid. You can click the top of the pen and it will wake up the Surface and let you start writing, allowing you to save once you unlock it. That's neat, but I don't use it.

As for "real" work, I've used the Office apps, and it's funny that they look so good in a high DPI, which can't be said about all Windows apps. I've also done quite a bit in Visual Studio, and code has never looked so good outside of my 13" Retina MacBook Pro. You still run into some UI weirdness here and there (SQL Management Studio and various VS plugins aren't right), but it's mostly good. Again, it's so fast. I've only made it warm enough to audibly hear the fans once, and that was running the game Portal for fun (it's one of two games I have on Steam). On days that I go into the office, twice a week, I do a lot of note taking, Lync calls and such, while playing music other times, and I've never killed the battery. I charge it overnight, and by the time I get home, I've still got at least 30% to go. I don't feel like I need to bring my power supply with me. Although if I did, it has a sweet USB connector on it to charge other stuff like my phone.

For play, yes, it's great having the kickstand to watch video. I also popped a 64 gig micro SD card into it, and put all of my music on there. The Xbox Music app used to be a steaming pile of shit, but it's finally relatively stable and pretty solid for the most part (wish I could say the same for the Windows Phone version). HD streams look good and don't tax the CPU.

So do you need one device to rule them all? Absolutely not. Is it pretty cool if you can have that one device? Hell yes. I admit, I didn't need this device, because my MacBook is a huge pile of awesome. But I sold some other stuff, and I love touch interfaces, and this one is particularly pretty. The question is, can this replace your laptop? I think it can, but with the caveat that lap usage might not be great depending on your proportions. I can make it work, but it shouldn't be work to find an optimal position. However, when I'm on the go and using it table top, it's so beyond fantastic because it's just so damn light. Can it replace your tablet? Well, it's too expensive if that's all you want it for, but if you want it to be both your computer and your tablet, then sure. When the cheaper i3 models come out, I think you would definitely want to consider it because you're in iPad-with-more-storage price range.

I realize that I have four screens that fit specific use cases:

  • My phone. I have a Windows Phone (the wonderful Nokia Lumina 920), and it makes amazing photos and I like the OS. I mostly use it for messaging, calls, photos, Facebook sharing and playing Yahtzee when I'm taking a dump.
  • The little tablet. The Dell Venue Pro 8 was an acquisition of curiosity because it was so cheap, but I can't say how great it is. It's built really solidly, has a nice screen (if not the highest DPI) and is the perfect size for Kindle reading, Facebook and catching up on the news. It's a great consumption device and a huge value for the price.
  • The laptop. The 13" MacBook Pro is kind of my desktop computer. It doesn't travel all that often, and sits plugged into a 27" screen at home. I do most of my development work on it that isn't for my day job. I've been thinking about getting a big old external drive plugged into the monitor (the Thunderbolt Display is more or less a dock for MacBook), and just using that as home base and retire my aging iMac.
  • The Surface Pro 3. It's getting more and more laptop-like usage every day for me. It's still a little weird to use in the lap, but maybe I'm getting used to it. I thought the screen would be too small, but it isn't.

This is actually email I got from Brighthouse, our crappy cable company

posted by Jeff | Friday, July 18, 2014, 11:00 PM | comments: 0

Our cable company put out this flyer where if I mail in a certificate every month for six months, I get a $10 credit. Silly promotion, but whatever, I've been doing it. The problem is that I wasn't getting the credit. More than a month ago, I emailed them and asked them what's up, and nothing happened. So I replied again and asked what was going on. No joke, this is what they sent me:

Dear Jeff,

My name is Ronald, for Bright House Networks. I hope you are having a wonderful day!

Thank you for making Bright House Networks your service provider of choice.
We always strive to create a positive customer experience and will work with you as best as possible to have your issue resolved. It would be my pleasure to assist you tonight.

After reviewing your account Jeff, I am seeing where your issue has already been escalated.
We appreciate your continued support and will work with you as best as possible to have your issue resolved.

I do hope you are having a productive week filled with lots of sunshine and bright smiles. We at Bright House are working productively to ensure
that the rest of your week continues to shine just as bright.

I hope this information was helpful. Thank you very much for your time and continued support, please know that you are very important to us.

If you have any additional inquiries, please do not hesitate to contact us by replying to this email, by phone 1-866-309-EASY (3279) or through our chat service: http://applications.brighthouse.com/enterprise-forms/Divisions/CentralFlorida/LiveChat.aspx .

Thank you for being a friend of Bright House Networks. Have a great day!

Sincerely,

Keara
eCare Specialist

Apparently Ronald sometimes goes by Keara. The entire cable industry is an f'ing joke. The next step is to contact their franchising authority. It's a bad idea to dick around with a customer who used to be the point person for a municipality and its relationship with the local cable operator.


The indie publisher moving to Azure, part 3: pain

posted by Jeff | Thursday, July 17, 2014, 11:16 PM | comments: 0

In the first post I did on the subject, I talked about the migration of my sites to Azure. In the second post, I talked about the daily operation of those sites. Now I want to talk a bit about the pain I've been enduring.

I'll admit, I'm a total Azure fanboy. I had a lot of success building stuff with its vast toolbox, hosting apps within worker and web roles, or cloud services, as they came to be known. As I mentioned in the other posts, the pricing just recently came to a point where the financials made sense to move off of dedicated commodity hardware and to a place where I didn't have to administer stuff. That said, the experience thus far hasn't been particularly good, and there has been down time. Whether you think that's my fault or Microsoft's is up to you.

Once I flipped PointBuzz over to v4.5 of .NET, as I mentioned previously, I thought I was in the clear. At the very least, that site behaved awesomely. Then I had a few instances where the sites would all go down at the same time, eventually, after more than two minutes per request, returning 503 errors. Sometimes just recycling the sites would fix the problem, but other times it did not. If that wasn't weird enough, I could scale up to a medium instance, then back down to a small, and everything would be awesome again, for days.

I observed a lot of strange things:

  • The down time seemed to happen in off-peak times, so it definitely wasn't me getting too much traffic.
  • The memory graph would should doubling of usage when the down time happened, on the Azure preview portal going from 40% to 80%, and it would stay at 80% even after scaling up with twice the memory.
  • The config pages in the standard management portal would not load.
  • The SCM diagnostic pages that are in preview would often not load at all, and if they did, couldn't complete a memory dump, essentially making them useless.
  • The scaling up then down worked for awhile.

So what's the first thing you would think in these cases? Because Azure websites are this abstract thing, your first thought is that the configuration is totally screwed up. That the portal couldn't load config settings, but not for every site, reinforced that. Also, the preview portal, which I understand isn't "done," has more broken things than functional things on it, but only the panel for CoasterBuzz.

I contacted support, which is only for billing if you're not paying for it. Whatever, they eventually get you to someone who looks at the technical problem. I got a guy from India who worked overnight, and told me that I was hitting my traffic limit for my free tier web sites. Considering I was on the standard tier, this was not a good start.

I admit it... I emailed someone higher up who referred me to the product team, who in turn sent me to a support case worker, I think in Redmond. He knew his stuff, but was frustrated by the fact that we couldn't repro the problem, and the diagnostic stuff was failing when there was a problem. I was fixated on the configuration problem. It didn't seem like a great leap to think that if config was failing, the configuration was hosed.

The conclusion, however, was that I was simply hitting a memory ceiling. You can imagine how absurd that seemed considering I used to run these sites on a box with 2 gigs of RAM that was also running SQL Server! I know from load testing that under significantly higher traffic the two main sites rarely exceed 500 MB of RAM combined (I also ran each site in its own app pool on the dedicated box, so I routinely saw the sites running at around 200 MB each). Then the support engineer showed me the break down. The first problem is that the staging sites were taking up a bunch of memory. OK, that's annoying, but it's legit. The second problem is that the diagnostic sites were also consuming a fair amount of memory, nearly 200 MB each. So think about that... I run into a problem, and I start hitting those sites and now I'm doubling my memory usage. What's worse is that you can't turn them off or stop them, so once they start going, you're kind of stuck. When I added QuiltLoop, that was the end of it.

I can take responsibility for my apps using a lot of memory. But there are a few points that I leave squarely in Microsoft's house:

  • There is no aggregate view of how much memory the VM is using. The preview portal kind of has that, if you poke around and find the percentage under a box for the "hosting plan" unit, but that portal is more broken than functional.
  • There is no way to see what processes are running on the VM, so there's no way to tell at a glance if something is being a memory hog relative to everything else.
  • The diagnostic site app, which you wouldn't even know about unless you were directed there by support people, or you happened to catch a blog post about it, is going to suck your memory dry. Microsoft has to either let you turn it off or not have it count toward your memory quota.
  • Reading configuration data about the site shouldn't fail if the running app fails. That's architecturally weird. It's like your furnace dying and causing the thermostat to no longer show the indoor temperature.

I'll scale up the VM to the medium size if the load merits the change, but right now I don't really know. Even the auto-scaling feature is tied to CPU usage triggers, and it spins up more instances, not a bigger VM. My stuff isn't written (yet) to go multi-instance, and it wouldn't matter if it did because memory usage tends to be fairly constant regardless of traffic.

Again, I'm critical because I'm a fan, and I want this stuff to work. I really believe in the platform, and despite these problems I think it's awesome. I was very close, however, to going back to dedicated hardware (or at the very least, a full virtual machine). That would have been a step backward.


Home security

posted by Jeff | Thursday, July 17, 2014, 8:23 PM | comments: 0

When I came home one day in grade 6, to our house on the near west side in Cleveland, I arrived to see that the back door was wide open. My parents both worked, and Jason got home after me, so I was usually the first one home. My 11-year-old brain was reasonably naive, so it took me awhile to process what had happened when I came in and saw the microwave oven was gone. (Yes, kids, there was a time when these were not inexpensive.) I also noticed the TV was missing. I called one of my parents, and maybe the police, then went a couple of houses down to a neighbor's house. The dad, who was a bit of a drunk and did auto body work in his garage, walked me back to our house and walked through it with me.

I have no idea what all they took, because honestly we didn't have a ton of valuables beyond the TV and microwave. They went through my mom's jewelry and such, so I assume there were things they took there. They didn't go into the basement, where we kept our toys (and our Atari 2600!), but they did go through my dresser, and that was the thing that really upset me.

That episode definitely had a long-term effect on me, because coupled with my selective OCD tendencies, I'm always obsessive about locking doors and windows. It's not an issue of safety or worrying about people taking stuff, it's more the personal act of strangers being in your space in a familiar way that makes me uneasy.

All of that said, as an adult, I understand that bad people do bad things, and I don't know that there are any real deterrents that can prevent it. I'd like to think that this is a rational position, but Florida is security crazy in ways that I don't understand.

The first thing is the walls. Gated communities are everywhere. They're even out in very rural areas. I don't understand why people want that. Is it to keep things out? It seems like it's closing yourself off from the world. My father-in-law used to live in a Florida gated community, complete with golf course, and he still got robbed. I'm not saying that there isn't less crime, because I'm sure there is, but I wonder at what cost.

The other weird thing is that security systems in Florida are very nearly standard in every house. In the Cleveland 'burbs, there weren't a lot of security systems, in the new or old neighborhoods. Ditto in the Seattle far east side where we lived. Here, they're standard issue. A guy I worked with in my last gig, in a gated community no less, left work when his alarm went off and the police were called. They broke in and apparently grabbed the Xbox, despite the audible alarm. I'm not saying they're useless by way of a single anecdote, but I am questioning the value.

Apparently yesterday, in my neighborhood, a kid did a grab and dash of a box delivered to the owner's porch. He's got cameras all around the house, and got some vague pixilated images of the kid and the getaway truck. After posting it on Facebook, a bunch of people chimed in and said they needed to get a video system as well. So I called them out and asked... what value does that have if it was not in fact a deterrent? It was a random crime of opportunity committed by a kid doing something stupid.

At the end of the day, the thing that deters crime the most is people looking out for each other. We're lucky to have a lot of people who are stay-at-home parents, telecommuters and retired folks. I mean, they post on Facebook every time they hear a siren, so to that extent it's a positive of having nosey neighbors. But the walls, alarms and video systems? There's a fine line between being proactive and paranoid.


One year in Orlando

posted by Jeff | Saturday, July 12, 2014, 12:57 PM | comments: 0

Today marks another anniversary for the start of an adventure: My arrival in Orlando with the intention of living here. It feels like it went by fast, and went by slow. In any case, yearly anniversaries of important events are always a good time to check in and reflect a little.

I remember that day I arrived vividly. The night before I stayed in a very scary hotel across the street from Carowinds in Charlotte, and after just two roller coasters lost to the rain. That was the midway point, and the cats were super stressed. I drove through a blinding rain storm near Daytona, and eventually ended up at one of the Extended Stay America hotels on John Young. Kara picked me up and we went out for dinner (I've since realized our friendship largely revolves around eating), and that night I passed out. By the end of the next day, Saturday, I found our rental in unincorporated Orange County west of Windermere. We could give the moving company an address.

One of the driving questions about the move was whether or not it would make us happier, and it seemed likely it would. Cleveland didn't seem to offer us anything beyond Cedar Point and some great restaurants. The two winters we endured were depressing. I didn't even work for a company in town most of that time. Nostalgia wasn't enough. Then there was the deep feelings of regret that we left Seattle and Microsoft in the first place. To this day I struggle with that.

After a year, you bet we're happier here. Things have generally worked out, and in many cases better than we expected. We had no expectation of having our own house for a few years, but here we are. The experience of buying the house was pretty awful, mind you, but at the end of the day we got it done, and we're slowly making it our own.

I really enjoyed working for SeaWorld Parks & Entertainment at the corporate office for that first year, and it still bums me out a little that they couldn't convert it to a full-time job. I think jobs in my career band aren't impossible to find here, but it's not always easy, so I'm glad I started looking four months out for the one I landed. I think that's probably true anywhere that isn't Seattle, San Francisco, and maybe Austin and Cambridge, but Orlando seems to have a bright technology future.

The weather... what can I say, it's Florida. Sure, it's humid as hell in July and August, generally topping out at 92, but it's generally safe to say that you'll see the sun every single day. Winter is like an extra long fall in the Midwest, which is awesome because I love that kind of "jacket weather." What it doesn't have is weeks of flat gray sky, the key thing that made me feel crappy in Cleveland. I've been stressed at times here, but never depressed, and I credit the weather. If there's any down side, it's that it feels like a crime to not be outside and be active.

Oh, and of course, this is a pretty solid place to live if you're a theme park nerd. We've really enjoyed having Walt Disney World in our backyard. We can predictably have a place to be outside and have fun as a family. It's surprising that we have such a good time, almost every time, and some days we're just there to bang out some roller coaster rides and get ice cream (as we did last night).

Another fun thing is that virtually everyone you know will eventually be here. I've seen more of my friends from different parts of my life in the last year than probably the five previous years combined. That's why we have a guest room. Just at the parks, we've seen friends from college, previous jobs and even my previous roommate. Our friends from Chicago even did a cruise with us, which is super convenient when you can drive to the port.

I think we've also been fortunate to find excellent help for Simon. His "catch up" progress to deal with his developmental delays has been extraordinary, and the people who work with his ASD issues have been fantastic. The free component of this, from the county school district, was really great, and I look forward to him continuing in the fall.

Sometimes, it still hits me, "Whoa, we live here." A lot of the time, it's just something like seeing the palm tree outside of my office window. We really enjoy living here. I can't predict if it's forever, but we're definitely in no hurry to leave. We wear Central Florida pretty well.


When your neighbor is Cinderella

posted by Jeff | Wednesday, July 9, 2014, 10:36 PM | comments: 0

I've written before about the comforting sound of the train whistle from Magic Kingdom, which became very prominent since moving to our new house. If you were to draw a straight line, I believe that Cinderella's Castle is between one and two miles away. Even before that, we were about five or six miles down the road, but we could still hear the nightly fireworks. Now we can watch them from upstairs. The point is that we've lived in Florida for almost a year, and we've always been in close proximity to Walt Disney World.

I loved the golden era of Disney movies when I was in college (though not as fanatical as my former mother-in-law thought I was). I never really got to know the Florida theme parks though until I went with Cath for a few days. Stephanie and I once did a whirlwind one-day hop through Magic Kingdom, the then MGM Studios and the then new Animal Kingdom to bust out some roller coaster credits, but that was not what I would call a real Disney experience. After I met Diana, I came down once to shoot a ton of photos for the site MouseZoom that Walt and I came up with, but never really fully committed to. After that, Diana and I did three "real" vacations there, between four and six days each.

We had a really good time on each of those trips. The last one we did was in late November of 2012, when we left Simon with my in-laws. It was one of the most epic vacations we've had, though I'm sure part of that was just that we were long overdue for a break without our little man. We had no idea at the time that we would end up living next door in just seven months.

I had already been in Orlando for a week when Simon and Diana arrived. I had just signed the lease to our rental, but we were still staying in a hotel because all of our stuff was still on a truck somewhere. They arrived late on a Friday afternoon. The next day, not content to sit in that cramped room, we decided to use said lease to demonstrate Florida residency and bought annual passes to WDW. Had we not moved, we were planning to come down for a vacation with Simon in the next year, but plans changed, and there we were.

I have to admit that walking on to Main Street that day with Simon was a pretty neat feeling. This is a kid who fell in love with Cedar Point, and loved to take in the sights and sounds, and even at age 3 had no use for a stroller. He didn't really know any Disney characters outside of Cars, but he really loved it.

Over the next few months, we would experiment and learn all the little "hacks" to get around the resort, avoid crowds, find the better food, etc. We also learned that a kid like Simon on the autism spectrum with sensory processing issues benefits a great deal from the place. For all his issues understanding social contracts, he queues like a pro. I think all of the sound and motion (especially on the various boats, train and the people mover) really satisfies his need for steady and intense sensation. The stairs in the hotels, where we would often park, offered fantastic practice for Simon since we lived in a one-story at the time. Then pile on his desire to navigate, hear music, climb on stuff, etc., and there has been a surprising amount of enrichment activities for the kid. The playground at Animal Kingdom is just epic. It was no substitute for therapy and school, obviously, but it sure beats sitting in front of the TV or the iPad.

For us grownups, we obviously get a lot of joy from seeing Simon enjoy these environments. But you know, we've done date days and nights at the parks too, to ride stuff we couldn't with Simon, and to eat the amazing food at some amazing restaurants. The Food & Wine Festival at Epcot, while insanely crowded, is pretty much one of the best things I've ever experienced in any theme park, and that has nothing to do with the attractions. But most of all, we've had some great after-work family time, spontaneously deciding to just hang out for a bit.

So has it grown old after a year? I don't think so. I think we went more often at first, but it's still around once a week (except the holidays). If I had to guess, I probably had 50+ park entries, while Simon and Diana had a few more on visits while I was at work. We have literally made trips to get popcorn or ice cream, and I think that's pretty awesome.

There are a ton of things to do in this town, and we've covered a lot of ground. We even have SeaWorld/Busch Gardens passes. We have some favorite restaurants on the west side, and I'm growing a special appreciation for downtown now that I work there (well, twice a week, anyway). Still, you can't beat the convenience and the consistently good times we can have next door, year-round. We still miss our beloved Cedar Point (Simon asks about it frequently), but having WDW as your "home" parks ain't bad.


Simon's Montessori School

posted by Jeff | Wednesday, July 9, 2014, 9:17 PM | comments: 0

With the school year ending, we were obviously a little concerned about Simon not getting the individual attention from experts that has clearly helped him in the last year. We would continue with his therapy at home (his therapist is awesome), but a classroom with other kids seemed like a good idea. Diana did a ton of homework and found a montessori school, and it's interesting to see him in that environment.

If you're not familiar, the montessori approach tends to be very self-directed. There is some amount of structure, sure, but kids have more of an opportunity to follow their intrinsic motivation. I mostly agree with that approach, with minor complaints, but it's certainly better than the increasing desire to force a bunch of testing and teach to the tests.

I worked from home on Monday, so when Diana went to pick him up around lunch time, I was game to go with. He was one of four kids in the class, and they were threading beads based on two dice, one for the color, the other for the shape. Aside from cheating and making the color die red some of the time, it was remarkable how well he was doing given the fine motor issues he has had.

They encouraged him to show me anything around the room that he wanted to show me. First he took me to some map puzzles. He's very into maps, and he's getting pretty solid at reading them (the large braille maps are a required stop at the Disney parks). From there he took me to these beautiful wood toy cylinders. A block of wood has cylinders with handles for him to remove, and then he pulls colored ones (red, of course) from a box. What was particularly striking is how he did them all in order, first try on each.

The feedback we're getting is that he has a good sense of spatial understanding, and that there's a lot going on in his head. It's very possible that his intelligence can be above average, but unlocking it may be challenging because he can't always physically manifest what he's thinking. My gut says this will continue to get better given his strong desire to observe the way something works for long periods of time. Splash in the growing imagination, and I see that link from brain to the physical world getting stronger.

For us as parents, the struggle is that he simply gives up and gets upset when he can't do something. Lately it has been over things that we know he can do, like put on his pants. Sometimes he won't even use two hands. This behavior is somewhat extended to his therapist, I assume because she's at home in his environment. But get him out, and he seems to dazzle the people he's with.

The last year has been remarkable for his development. As much as I stress over the financial implication, there's no question that he's learning at an increasing rate. He still seems behind in certain areas when you compare to other kids his age, but I'm hoping that the gap is shrinking. Being able to have a conversation with him, and watch him power along on his tricycle feels great, and he's clearly very proud of himself given the smiles.

The next six months will be very critical I think. I feel like he'll be ready for kindergarten, but we're not the experts. For now, I can't tell you how much I enjoy conversing with the little human we made.


Back to QuiltLoop

posted by Jeff | Sunday, July 6, 2014, 11:30 PM | comments: 0

We came up with this idea more than a year ago to build an online community for quilters, feeling that it was a hobby that was underserved by the Internet. The idea was to keep it relatively simple by including a forum and a place to document your projects, journal style. We named it QuiltLoop.

I banged out about 80% of the work last May and June, not working super hard on it, but generally getting it done. Then we planned the move, and work just stopped. I didn't pick it back up until I had my time off between jobs. Between that week, and the weekends since, I probably put about 20 hours into it to fill in all of the gaps I had. Today, I pushed the code into production so we can get it in front of people and start learning if what we thought up is really what people want. We just need to find an audience.

Keep in mind, it's pretty rough. There isn't a lot of thought around the design or anything. I don't want to get too invested in anything until I understand how people might use it.

While I punish myself a bit for leaving it sit for a year (who knows, maybe it could have a thousand users by now), I am excited that it's using some interesting technology. I'm using a lot of cloud stuff, and a search engine library I've not used before. It's kind of neat to have that stuff in the background even if the users don't care.

Diana put some feelers out tonight to see if it would get any attention. Here's hoping some people sign up, and like it enough to tell others.


Not all annual self-directed celebrations are created equal

posted by Jeff | Wednesday, July 2, 2014, 10:37 PM | comments: 0

Back in the day when I worked at Penton Media with arguably one of the most fun crowds of people I've ever known, my friend Mike Freeze described the week of his birthday as "Mike Freeze Week." This resonated with me, and it has stuck with me ever since because to me it meant that the celebration of your birthday should be more about how you celebrate your existence yourself than how others might.

I've generally carried on this tradition, making time for myself every last week of June/first week of July. I try to think of things that I want to do, make them happen, and refuse to feel guilty for thinking of myself. Last year seemed particularly epic in scope. While I had some anxiety around moving, my week was more of a month. Two weeks before we nailed down the decision to move (and sold the house in two days), and I didn't do the actual move and start the new job until two weeks after. Prior to that even I was working a contract gig and billing an insane $100/hour, so there was little to no financial concern over work, with the new job starting soon anyway. Sometimes I would sleep in, other times I would go hang out at BWW and work on a project. We went to Cedar Point a bunch and visited the zoo. I've never spent as much time with Simon. It was awesome.

This year, my birthday kind of crept up on me. As in, I didn't even realize it was approaching until Sunday. I made no plans, and I wasn't really stoked about it. I'm really focused on the new job, which I just started. And if that weren't enough, well, my birthday is on a Wednesday and I had to go to Tampa. If Diana hadn't made one of my favorite dinners and a cake, it might have just been any old day.

What it really comes down to is that the timing just wasn't ideal this year for me to focus on me during "my" week. I'm OK with that. Aside from our misadventures in Ohio, I had a couple of really fantastic weeks of fun and (mostly) got to enjoy everything that makes it fun to be me. This weekend, I look forward to taking it easy and enjoying some quiet time while watching my friend's dog.


The Supreme Court got it wrong, but not for religious reasons

posted by Jeff | Tuesday, July 1, 2014, 10:45 PM | comments: 2

The decision by the US Supreme Court to overturn certain coverage mandates of the ACA based on conflict of a company's religious views was totally the wrong decision. Most of the discussion around it centers on issues of religious freedoms (bound to all kinds of irony), labor standards and female healthcare rights. While these are all important talking points, they overlook the bigger problem: The court essentially said that a company is like a person, and that's pretty scary.

Regardless of where you stand, the court said that Hobby Lobby and the others in the suit were entitled to adhere to their religious beliefs. They made the distinction that this is for "closely held" companies, but offered little guidance about what that means, how you test for it, or what the scope of it relates to. Think about it though, this means a for-profit entity has a right typically reserved for an individual. In this case, what they're saying is that a corporation may impose its belief system on you as an employee.

I'm generally for the marketplace making these kinds of decisions, and I see the point of telling someone, "Don't work there if you don't agree with them." However, there are certain moral standards of labor that we've come to accept in the US, like minimum worker ages, minimum wage, workplace and safety conditions, etc. We still don't get it right in terms of law, in my opinion (think minimum time off, paternity leave requirements and such), but we do have some solid basic protections. The court's decision may open the door to other abuse that challenges these protections, perhaps on religious grounds.

But again, I go back to the issue of a company having a right over an individual. Corporations already yield massive power over individuals, and because our elected critters refuse to do anything about it, they also have entirely too much influence over government.

With such a close decision, there's little doubt that a similar issue will end up in front of the court at some point in the future. I'm just not crazy about what we might see in the mean time.


Suppressing FormsAuth redirect when using OWIN external logins

posted by Jeff | Monday, June 30, 2014, 10:53 PM | comments: 1

This is probably the most specific post I’ve written in a long time, but given how long I let it fester, and how much debugging it took to figure out, I figure it’s worth saving someone the time. Last fall you might recall that I did a little bit of reverse engineering, and some cutting and pasting of source code, to use the OWIN-based external authentication stuff, decoupling it from ASP.NET Identity. This was a pretty exciting win for me because I was completely not interested in using yet another auth system in POP Forums, when the one I had was already pretty simple and embedded in some of my own projects.

When I integrated it into CoasterBuzz, it worked like a champ right away. Then I went to add it to another project I was working on, and it didn’t work. For reasons I can’t explain, the new project was forcing a redirect to the forms auth login page (which defaults to /login.aspx), and putting a referrer in the query string to /Forums/Authorization/ExternalLoginCallback, which was the intended callback URL. I was completely stumped, because obviously the forum assemblies were exactly the same on CoasterBuzz and the new project. I first assumed that it was some kind of routing problem, or maybe an ordering problem in the OWIN and other app startup pieces. I got exactly nowhere going down this road.

With fresh eyes, having not gone back to it in several months, I started to wonder where exactly the redirect was occurring. The MVC pipeline is a weird mix on top of ASP.NET, and while FormsAuthentication is certainly a construct of the ASP.NET days, it’s silly easy to use it in MVC. Instead of using HttpModules for plumbing in WebForms, I use action filters in MVC. One of the super convenient things in POP Forums is that you can set that filter to apply to every action in your app, and then opt out certain methods with a different attribute (think actions that return data like images). Thinking about all of that, I still assumed it was code specific to the external login magic.

What I could see is that execution got as far as the ExternalLogin action in the Authorization controller. That created a ChallengeResult instance, which I “borrowed” from the original source. What goes on beyond that I couldn’t tell you, because it’s in one of the Owin libraries, and I wasn’t brave enough to go digging there. All I knew for sure is that this was the last code to execute unless I ripped out the authorization element from my web.config, and that led me to believe this was ASP.NET getting in the way.

After much searching on various keywords like “formsauth redirect,” “override,” “prevent” and finally “suppress,” I found that HttpResponse gained a new property in v4.5 called SuppressFormsAuthenticationRedirect. It does exactly what it sounds like it does, and this fixed my problem. Setting this one property in the context of that “borrowed” ChallengeResult did the trick. The new project will bounce you through to Google or Facebook or whatever to login, as it does on a “naked” instance of the forum app. Life is good.

Not one of my proudest debugging moments, but I’ll sleep better tonight!


Nap time

posted by Jeff | Monday, June 30, 2014, 11:15 AM | comments: 0

Yesterday afternoon, Simon was climbing all over me, which usually leads to one or both of us getting hurt. I flopped down on the couch, and he asked to lay down with me. Like a switch, he turned off, and we both went to sleep.

These moments are pretty rare with a kid that likes to be moving most of the time, and they will only get more rare as he gets older. I'll take it.


Chicken and waffles

posted by Jeff | Wednesday, June 25, 2014, 10:41 PM | comments: 0

Back in the day when we were living in Snoqualmie, going on three years ago now, I made my first attempt at making chicken and waffles. Knowing that we didn't have a waffle iron at the time, I picked one up at Target for $10, maybe less. I had seen a recipe on the Internet for using the pancake mix as the primary component for breading the chicken. It was kind of a disaster.

I tried again at some point after moving to Orlando but before moving into the new house, and it was better. My BFF came over for dinner tonight, so I decided I would try and cook again, and decided the time was right to try chicken and waffles again. Based mostly on advice from Diana, this time it was an enormous success.

First off, she did her classic marinade, for which I don't even know the components, but added a healthy dose of Chipotle and Berbere seasoning from Penzey's. If you are unfamiliar with these masters of seasoning, and you don't have a cupboard full of their stuff, leave this blog and look it up right now. They're amazing.

Then I did a three-step coating. The first was flour with more of the two seasonings, plus a splash of hot curry powder (because I love how it smells). Then into the egg, though I actually used "beaters" instead. Finally into panko bread crumbs, though I added a little shredded cheddar cheese for fun. I think next time I would rather use some finely grated stuff instead, maybe even parmesan for a saltier flavor.

Into the oven it went for about 25 minutes at 400 degrees. We have a fantastic waffle iron (I tossed the shitty cheap one from Target years ago), which was rated tops by one of the organizations that rates such things. All told, it was a slam dunk. It was hot, too... but had really outstanding flavor. The only thing I didn't like about it was the color. The panko doesn't really brown when you bake it, so that's slightly unfortunate. Otherwise, it was the tits, and I can't wait to make it again.


Emotional eating

posted by Jeff | Tuesday, June 24, 2014, 10:25 PM | comments: 0

I know I'm getting back to a more sensible place in terms of eating when it's getting late and I'm already thinking about that leftover turkey burger for lunch tomorrow. It means I'm in that groove that leads to better decisions as a mode of daily lifestyle. I've been there before, and I know how I slip out of it, too.

In this case, I think I scared myself back into the groove. In purging some of my boxes of crap, I found a photo of myself from around the turn of the century that was, at the very least, not flattering. It was clearly from the time that I weighed about 30 pounds more than I do now, and that 30 pounds is pretty dramatic. I don't think I'm at risk of going back to that, but I do see that my old habits can be scary.

It's not really the weight that concerns me (though I'd be perfectly happy to shed another 20 pounds or so), but more my level of fitness. Prior to my realization around weight and fitness back in 2005, I would get winded going up stairs. I would play volleyball with the kids I was coaching, but I couldn't keep up. What a difference it made the year I did the high school season at The Elms. I couldn't believe how long I could play or how high I could jump, because I was focused on eating less and being just a little more active.

In the years since, I've been up and down a bit, but never back to those dark days. In Seattle it was warm enough to be walking about year-round. When I worked remotely, I played tennis. When I moved to Florida, well, how can you not be active outside when it's sunny almost every day? Getting a FitBit made me even more self-aware.

While I've stayed active enough to be able to log 10 miles around a theme park in any given day without being tired or hurting, I haven't been keeping honest about eating. I'm an emotional eater, and I know it. When I'm stressed, anxious or lonely, I throw portion control out the window. I actually feel intense sensations of joy when I hold a burrito in my hand or tear through a half-dozen boneless wings. I did that quite a bit starting in February, because of all the drama around the house and, for completely irrational reasons, my job search. Now we're getting comfortable in our house, and I'm in a full-time gig, so that has passed. (I still need to prove I don't suck, but I think I can do that.) I'm getting the mental bandwidth back to say, "No, stupid, you can't have a McHockeyPuck for breakfast, a burrito for lunch and chocolate covered chicken wings for dinner and expect to feel healthy."

Knowing that I'll go out for lunch a lot less will certainly help me a lot, too. If there's one thing that works for me when telecommuting, it's that I rarely miss breakfast, and I don't eat out as much. It does require being proactive about physical activity, since you don't even walk to your car, but I just need to find that groove.


Simon's therapy

posted by Jeff | Sunday, June 22, 2014, 7:57 PM | comments: 0

Getting Simon in school five days a week last year was probably the best thing ever for him. His teacher was really wonderful and patient, and we saw a lot of improvement in his learning ability. Next year we're likely to put him into regular preschool as well as the developmental delay school, making for an all-day thing. I'm a little worried that it might be too much for him, but we'll see.

Part of the journey in understanding what resources are available involved a few therapy options, and we settled on one that involves two hours, twice a week, at home. This ABA therapy is interesting because the therapist is looking for ways that Simon specifically responds to his environment in order to build constructive behavior. Remember, one of the problems with autism is that kids don't rationalize or respond to their environment in the same way other kids do. They don't have the same motivators either, so while a lot of kids may ride a bike or brush their teeth because they know it will please someone else, those more typical motivators aren't there. The therapist finds ways to get him to respond.

This therapy isn't cheap, and I'm dreading the bills that are forthcoming (I've only seen the insurance rejections so far, which we expected). Still, even after less than two months, the outcome of this therapy has been nothing short of amazing. The thing that I've gained the most is that parenting on instinct doesn't work very well because your instincts assume a certain mode of thinking. Understanding the alternate mode that Simon works in makes it easier to act and respond in a less emotional way that actually helps him.

I'm not going to lie, I don't have a huge role in any of this. The research and vetting of services is all Diana. I don't know how any parents that both work could ever manage this. All I can do is act on the findings of the therapist. Last week was interesting because I was home while she was here, working from my office. I could kind of hear how she worked with Simon, and this was the point where it was so obvious that she's worth every penny.

I think at this point that Simon is going to grow up to be fully functional, and potentially awesome. He exhibits certain cognitive abilities that are pretty fantastic, especially in areas of retention, and more and more in spatial observation (the latter of which he doesn't yet apply to play, but I think he'll get there). My biggest concern today is him starting regular school on time. Screw these parents who want to "redshirt" their kid so they have some bullshit "advantage" in school. I want my boy to be on time and go from there. The next six to nine months will be critical in that respect.

The biggest relief I have right now is that Simon is engaging in imaginative play in ways he never has before. Whereas he used to just park and organize cars, now he's starting to "drive" them. And for better or worse, he responds to Disney World activities in aways I would not have guessed. He sings the song from Journey Into Imagination, he plays with his monorail to simulate stopping in the hotel and picking up passengers, he opens and closes imaginary doors at our stairs... this all came up in the last month or two. It's really awesome.

I hope beyond hope that Simon's future is really one of those circumstances where his different wiring actually benefits him instead of completely hindering him. My enthusiasm for that outcome is sometimes tempered by the emergence of some of the more stereotypical behaviors, like the meltdowns, shutdowns and hand flapping, but at least he hasn't shown any real desire to withdraw and stop talking to people. In fact, he can order food with authority in a restaurant, and randomly says "hi" to kids at theme parks. That's encouraging.


The indie publisher moving to Azure, part 2: operation

posted by Jeff | Saturday, June 21, 2014, 12:21 AM | comments: 0

About a month ago, I wrote all about my experience migrating my sites off of dedicated hardware and into Azure. I figured I would wait awhile before writing about the daily operation of those sites, so I could gather enough experience to make a meaningful assessment. As I said in the previous post, this is a move that I was looking forward to make for a good three years or so, when I actually worked with Azure from within Microsoft. The pricing finally came down to a point where it made sense for an indie publisher, and here we are.

A lot has happened in the last month, which is remarkable when you think about it. They're moving pretty quickly at improving the service and making it better. They even fixed the scheduler problem I described last time (it was a problem with the portal). In a general sense, I've found it very stable outside of the problem I'll describe, but the database billing is screwed up. I'm finally to a point where I can stop watching it and trust that it works as intended, and there are definitely some pluses and unexpected savings.

So let's get the negatives out of the way. PointBuzz was crashing in a completely weird way. Basically it would just stop responding entirely. The logging didn't show anything, and there weren't 500 errors, and the browser would just hang out and not ever get anything back from the request. Also weird, while it would do it at any time of day (including during the great water main break at Cedar Point, a key time for the site), I saw it die several times during the 11 p.m. hour, which sure seemed not likely to be a coincidence. The only thing that I could think of that made it different was that the site ran on v3.5 of .NET instead of v4.5. After being frustrated with the people who handle billing support (tech support is an upcharge, which is a real problem when there's a real platform issue), I expressed my frustration to someone very high up the chain at Microsoft because I didn't know what else to do. He put me in touch with some people who looked deeper. They didn't find anything either, though they did observe that turning on the diagnostic functionality didn't work on any v3.5 site. That reinforced my theory that the framework version had something to do with the problem.

While the folks at Microsoft were looking into things, I refactored the site to run on v4.5. It took a few hours, but I eventually got it working. I redeployed, configured it for v4.5, and it hasn't had a single issue since. There's no resolution to the v3.5 problem that I'm aware of, but if you have something you want to put in Azure Web Sites on that version, I wouldn't recommend it.

The other problem that I can't explain is the database pricing. It's bad enough that they use a completely arbitrary "DB Unit" in the billing, but what's really frustrating is that with the deprecated-next-year Web/Business tiers, the amount they're charging me doesn't match what the pricing is supposed to be. As you may recall from the previous post, I tried to import the data originally into the newer Standard tier, but after several hours on a test run, it was getting nowhere. I settled for the old tiers, but the pricing makes no sense. According to the pricing details, CoasterBuzz should be priced for 10 gigs, at $45.96. And yet, after 24 days, it's already billed $67! What's that about? I'm going to file a ticket for it, but I don't expect any positive outcome.

Two good things since the SQL migration: They have improved the performance of all of the new tiers by a factor of five, and just as I started to write this, I noticed that you can finally migrate the old Web/Business tiers to the new Basic/Standard/Premium tiers. That means the big databases for PointBuzz and CoasterBuzz will be a flat $20/month, up to 250 gigs in size. The price doubles in a year, but I suspect the pricing will see drops anyway.

So for the first full month, I'm trending toward a total cost of about $190. If the new database pricing goes as expected, next month I think it will be around $130. The dedicated server I had was costing $167. My big fear about bandwidth turned out to be largely unfounded, because I never thought about the fact that my nightly backups to S3 were the reason I was pushing out around a terabyte every month. Now I'm backing up to storage within Azure, so that bandwidth cost goes away. I'm only pushing 150 gigs outbound.

There is a lot of goodness that makes this effort a lot more redundant, and I think this is where some of the greatest value is derived from using a cloud platform. First of all, the storage is already locally redundant, meaning the data is copied to another disk somewhere else in the data center. I also have the geo-redundancy enabled, meaning it's also copied to an entirely different data center in another part of the country. Right now I'm mostly using storage for nightly database backups, and I'm paying about $2 for almost 30 gigs. I could turn on geo-redundant with read-only access to the other regions for another dollar, if I wanted total overkill.

For all of my complaining about SQL Azure, it too is redundant without any intervention on my part. There are always at least two copies of the data, so hardware failures aren't something to really be concerned about. Then add in the nightly backups into storage. It's pretty solid. At some point they're supposed to add the ability to also restore back in time (via the transaction logs, I assume), but they haven't enabled it yet.

The Web Sites themselves I'm running on a small instance (1 core, 1.75 GB of RAM), using the standard tier. Not surprisingly, this is plenty of room because I write efficient code. :) Seriously though, the sites collectively serve a few million requests daily and CPU never goes over 10%, and the RAM usage hovers around 80%. I use the standard tier because for less than $20 more, you get a few SSL certificate slots, unlimited web sockets (the forums use this), automated backups, the scheduler, and probably my favorite feature, staging deployments. You can deploy to staging, and click a button in the portal to flip the staging and production sites. If it hopelessly fails, you're back up in two seconds.

There are other nice things too. Getting email alerts was helpful when the I had the PB problems (I have an alert to email two people when requests per 5 minutes goes less than 1). Endpoint monitoring gives me a good idea of response times from all over the world. WebJobs and queues are very cool new features, and I may likely use them in a future project. The free credits from SendGrid take care of the email connectivity. The various charts and graphs are cool. The new portal, in preview, shows promise but a lot of stuff doesn't work yet.

Maybe the most important question is: How is the performance? Generally speaking, it's awesome. Once the PointBuzz issue was worked out, it's also surprisingly consistent. CPU and RAM usage follow expected curves. The endpoint monitoring shows the PointBuzz home page with consistent response times below 30 ms from Virginia! CoasterBuzz varies a lot more, but I'm not sure exactly why. It still tends to clock in under 200 ms, but I need to look deeper.

Despite the problems, now I feel like everything is in a pretty good spot, and I'm pretty happy with it. The server in Dallas was solid, but having to maintain disk space and SQL logs and HTTP logs and all of that stuff got kind of old at times. I like the Azure platform because it takes all of that maintenance stuff out of your life, and instantly gives you tools and "hardware" if you need it. My sites aren't built to scale out (lots of local caching), but they could scale up if I had to at a moment's notice. As the TV commercial once said, "Yay cloud."


Car considerations

posted by Jeff | Friday, June 20, 2014, 12:32 PM | comments: 0

It's hard to believe it, but I think we're closing in on the time to replace Diana's car. As far as I can tell, there's nothing particularly wrong with it, or danger of some imminent failure, but it is over six years old. It actually has less than 40,000 miles on it, too. Maybe my concern is that the harsh Cleveland winters set something horrible in motion in terms of corrosion, and I want to head that off. Maybe I just don't like having older cars.

I know what I don't like, and that's having a car payment. We're only half way through our loan on the Prius V. I generally hate the expense of cars, and I'm not much of a car guy, so that makes me like spending money on them even less. Still, there's something to be said for something that is reliable and always works.

My best friend started dating a guy with a Tesla Model S. I'm not going to lie, I've been infatuated with that car since it was announced. Normally I associate expensive cars with people who worry about status, but that's not really the case with that car. Pretentious people may buy them, but mostly I think the market is nerds, gadget addicts and people who believe Elon Musk is like Tony Stark. (And yes, my friend's boyfriend is not pretentious at all.) I could probably buy one of these cars if I saved the way I did for our house, and it would make me happy, but this would fly in the face of my "experiences not stuff" modus operandi that I try to adhere to. I could go on dozens of cruises for that money.

I'm still interested in electric cars though, which got me to thinking about the Nissan Leaf again. The one I rented about a year ago was a lot of fun to drive. With its limited range, of course it's only good for in-town commuting, but I don't imagine that we would ever need both cars to be out on long distance trips at any given time. They have a lease deal right now where we could probably get the payment down close to zero with trade, but I'm not sure I would want to commit to three years. Last year they had a two-year that was more interesting.

The forthcoming 2015 Prius is interesting, if you believe the "spy photos" of the car that you can find on the Internet. They're doing a new drive train for it, and the rumors suggest that they can push 60 mpg out of it. The styling is a little more aggressive, though the overall shape won't change much, since that's part of what gives it such high fuel economy. It's probably kind of boring and safe, but I've been really happy with both of our Prii.

There's no real time frame we have to commit to, though obviously Diana's car isn't exactly appreciating in trade value. I'll be content to work something out this year.


Tackling my big boxes of crap

posted by Jeff | Friday, June 20, 2014, 12:27 AM | comments: 0

I've got four or five tote boxes that have traveled about 5,000 miles with me, and they're full of stuff that I've saved over the years. Keep in mind that I haven't added to them much in many years, I just haven't really thought about them at all. Today I was thinking about them because they're just taking up space in my garage, and I need less stuff in my life.

I went through two of them today, and tossed a ton of stuff. I had hand written notes from girls in high school, and autograph books from grade 6 and 8. That's 1985 and 1987, by the way. I actually had the remnants of my braces. What the fuck was I thinking? Not sure why I saved all of the issues of Rolling Stone from 1996 either. Some things I tossed despite being novel, like the envelope of letters sent by my grade 9 science classmates in Cleveland, sent after I moved out to Brunswick by my teacher. That was a hard transition, and it was a sweet gesture.

I found other things that I obviously would not throw away, like my high school and college diplomas, photos from grade school and little creative things I did. I actually typed up pages for a Voltron "choose your own adventure" style book, with illustrations. Can you believe that? No one gave a shit when I was a kid, but I was pretty proud of myself. I also found some audio carts that played stuff inside the defunct Richfield Coliseum, which I found as they were tearing down the building. My original Optimus Prime Transformer toy was in there too, along with a few other robots. Oh, there was a big stash of high school senior pictures too, which were a big hit on Facebook for "throwback Thursday."

I wonder why we hold on to stuff like this. Like I said, a lot of it I honestly didn't even realize I still had, but at some point in my 20's, I must have thought it was important. It's funny how we think about our past and how it links to our identity.


Why typical software design isn't common

posted by Jeff | Wednesday, June 18, 2014, 9:42 PM | comments: 0

As my contract gig ended, I started a new job where I've assumed the role of technical architect. It's a little like a cross between a development manager, development lead and traditional architect role. I'd like to think that it plays to all of my strengths, but I suppose I'll have to still demonstrate that!

In any case, the first project that I'm on is one that already exists. I think I can safely say that most people in development circles would prefer to just land on something totally new, because inheriting a project often means taking on a train wreck. Not so in this case. Everything is generally designed and laid out as I would expect it, using predictable and manageable patterns. It doesn't try to reinvent things, and it has mostly grown in a sane way. I still have the burden of acquiring a lot of domain knowledge and such, but I won't be stuck scratching my head constantly trying to understand what the hell is going on.

I complimented the previous TA, indicating that it was pretty easy to understand how the solution was set up in the bigger sense. What he told me is true: "This is just typical industry practice on this platform." He's totally right, of course, but why aren't these typical practices more common?

My opinion is that it's the usual education and experience problem. It's surprising how this kind of knowledge is not frequently shared, but I also suspect that it's partly because it isn't generally a solving a problem that people are thinking about. It's fairly typical to search StackOverflow for a solution to a specific problem, but I don't know if anyone really starts a project and says, "How should I build this?"

So how do people arrive at a place where they have this knowledge? For me, I can only say it's because of my experience and interaction with other people. This is obviously not ideal for the profession, because it's hard to say how one can encounter the right people and circumstances. In a general sense, sure, it's not uncommon for people in tech heavy markets to change jobs every 18 months, but that isn't the case everywhere. You also can't necessarily be sure about what you're getting into (though I would argue that you should be asking good questions in the interview process... it's still a worker's market in most places).

There are really two ways to solve this problem, from two directions. The first is to make sure that a company or development team has someone with these "typical" design skills. That might be a little tricky if the hiring manager isn't a technical person, but certainly there are a million staffing companies that want to help you with that. The other way to attack it is from the individual developer angle, by getting folks the information and mentoring that they need. This requires a certain level of self-motivation on the part of developers, but I generally have observed that they'll come along for the ride if you offer.