13 years, 1 printer

posted by Jeff | Wednesday, July 30, 2014, 5:07 PM | comments: 0

After 13 years, I retired my laser printer. It was an HP 2550Ln, and I'm giving it away to anyone who will give it a good home.

Think about that... an electronic device that was actively used for 13 years. I don't own a single thing that uses electricity that has lasted that long (not that I can think of, anyway). I initially bought the printer to handle the printing of CoasterBuzz Club cards. In those days, color laser printers were not cheap. You also paid extra for ethernet connections, and even the deep paper tray. I think it cost me around $700 back then.

Usually we only complain about products that suck, but all things considered, this printer had an exceptional run. I'm letting it go because the toner cartridges are getting more rare, the card stock I (still) print cards on slips a little, and every once in awhile it will choke on that stock and print wrong. I have to hand it to HP, for as crappy as the series of ink jet printers were that I owned back in the day, if not as crappy as their competitor's products, this thing was mostly a tank.

I replaced it with an HP 400, which was relatively inexpensive compared to the last one (under $300). Mind you, the toner has not dropped in price ever. I think this one has the imaging drums built in with the toner cartridges, which is a change from the old days where I had the four carts plus the drum (which I replaced just once during that time). A package of toner for all four cartridges costs more than the printer, but they're good for 50% more pages than the "starter" cartridges that ship with the printer. Meh, the printer business is still a rip-off, but on the bright side, I don't print much outside of those damn cards.


When have you "arrived?"

posted by Jeff | Monday, July 28, 2014, 1:11 PM | comments: 0

I read a lot about career development, the psychology of work and what it means to be happy in life. I also find it fascinating to see how others approach these aspects of their lives. I recently put two things together that I had not thought much about. The first part, which isn't hard to find living in the suburbs, was something I noticed about people who are worried about perceptions. Some people need to have a certain house or a certain car or whatever. While I can't entirely relate to people who find the external validation important, I do understand that it might be related to a sense of achievement. The second part of this was something that struck me in a blog post I was reading, where the author felt that given certain parameters, they had "arrived" and were successful.

That made my head spin a little. What does it mean to have arrived? I assume it means that you've achieved some kind of status, or combination of things that define the successful ascension from nobody to somebody. As you might expect, my next question was, "Have I ever felt that I've arrived?"

I can think of just two instances where I've felt that way, and both eventually led to disaster. The first was when I started working in Cleveland radio. I got into a "major" market (read: not Mansfield, Ohio) right after college, and it's what I thought about pretty much all through school. It turned out to be a horrible job with more horrible pay than I expected, and the industry was vile. The second time was in 2001, around the time I was recently married, bought my first house and landed a "real" developer job. The job disappeared later that year, I got divorced a few years later and the house cursed my existence for a number of years. 

The problem with this arrival concept is that it's based wholly on two lies that our culture teaches us. The first is that there is some arbitrary measure of success, and once you've reached it, you win. As our environment is always changing around us, I think we know that there is no such thing as any permanent state of winning. The second lie is that we're always on some path to a destination because that's what we're supposed to do.

Here's the thing though, success is arbitrary, and once you fully embrace that, it's a freeing experience. If you distill it down to being happy and being able to provide for people you care about (which is not strictly a monetary issue), to me that's success. Furthermore, if you always have a destination in mind, you risk missing out on what's going on right in front of you, to say nothing of the "now what?" feelings if you get to where ever it is you think you're supposed to go.

My advice is pretty simple: Be goal oriented and have an agenda, but keep in mind that if your "arrival" is the way you measure your life, it means you've decided that you're less of a person until you get there. That's not a great way to live.

Why am I thinking about this? I think because it has a certain amount of context for me right now. I recently wrapped up a successful year-long contract job, got a new job that is challenging, just bought a house, have a beautiful and loving wife, and a (usually) wonderful little boy. By cultural standards, I'm living the dream, but if I distill it down to the basics, I've been living the dream for many years, even in the midst of certain kinds of chaos. I didn't arrive, I'm just constantly traveling.


The great peril of trying to raise a child

posted by Jeff | Saturday, July 26, 2014, 8:00 PM | comments: 0

Simon got up from a nap today, and we went downstairs and sat on the couch. He wasn't quite awake, so he decided to just cuddle up against me and let me rub his head. Well, actually he asked me to, because that's his thing lately. It was a really nice moment, and I still can't believe that we made this little person with an emerging personality.

You need moments like that when things are not puppies and rainbows. It has felt like that a lot lately, not always because of behavior issues, but sometimes just because we need a break to do something you want to do, without him. It has caused some tense moments lately.

I try to keep that stress in perspective, because I know and understand that there is a far greater spectrum of peril involved with raising a child. It starts even from the time you decide to have a child in some cases. I know many couples that have struggled to even get pregnant, even after intense fertility treatment. Others have lost their children in devastating mid-term miscarriages. Still others have faced near fatal medical problems, birth defects and other problems, before their children are even born. Even if you can get to birth without any of this, there are always issues with developmental problems, or the hell of puberty. After they leave the nest, your kids may struggle with grown up problems you can't control, or worse, die of health problems, combat injuries overseas or completely random accidents.

It seems like there are so many things that can go wrong that you're setting yourself up for heartbreak. But then you have those little moments, where everything is perfect. I think that juice is worth the squeeze. A relationship with your child is unlike any other in your life. Be careful with it.


Performance anxiety

posted by Jeff | Friday, July 25, 2014, 11:47 PM | comments: 0

One of the most fun things for me in software is figuring out how to make things faster. Performance is an issue we all face at some point making software, even if we put it off because the premature optimization can be wasteful. Some people geek out when they can get something to run a few milliseconds faster, others revel in achievement when they can make something work in half the time.

I need to remind people here that "performant" is a made up word. At the very least, it isn't an English adjective. Stop saying it!

At work we're doing some performance enhancement work in this sprint and the next, and I think at the moment we're likely to be successful. I'm working with really capable developers, too, which makes it more fun. It got me to thinking about my own projects, too, and where there's room for improvement.

Starting in 2007 or so, I started to pay more attention, making my sites faster. For example, the PointBuzz home page tends to render in under 30 ms. That's pretty exciting. Old and new versions of the forums render pages typically in under 100 ms. Granted, the Internet between you and the sites can add all kinds of latency, but at least from a code standpoint, these things are super fast.

Recently I was having all kinds of memory issues that are new to me because I'm using cloud resources to host the sites. I can add more memory literally with a few clicks, but there is a dollar cost associated with that. So now I'm looking into ways I can handle that. Ironically enough, the memory footprint is so big because I cache so much stuff in memory, the same thing that makes it fast. 

Sometimes I can feel really bogged down by what I do for a living, but stuff like this is interesting and fun. And you generally learn something, too!


We're all wet

posted by Jeff | Tuesday, July 22, 2014, 10:53 PM | comments: 0

If there's one thing we learned quickly when we moved here last July, it's that it will rain pretty much every afternoon. That sounds terrible, but keep in mind that we wake up to blue skies most mornings. It's not the kind of organized front you see approaching on radar in the Midwest. I guess the air just gets so saturated that there's nothing left for nature to do but rain.

Today, we got caught out in said rain, and we were pretty soaked. Out phones, FitBits and wallets managed to stay dry in our pockets, but shirts and shoes were about as wet as they could get. Fortunately, this is something that we just rolled with. It wasn't the first time, but definitely the first time we got this wet. Simon splashed in the puddles, and we just called it a day and went home.

I can see how a lot of people would freak out or complain or be pissed off, but all three of us were very Zen about it. It's just kind of summer in Orlando. Honestly, it felt kind of nice given the heat earlier in the day. Sometimes it's funny to think that the kind of thing we expect to make us uncomfortable is actually awesome.


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.