Archive: April, 2014

The strange proximity of death

posted by Jeff | Tuesday, April 29, 2014, 10:43 PM | comments: 0

The last couple of weeks have been a little strange. Last week we got email from someone who indicated that their brother was critically ill, and that he wanted to leave $500 for PointBuzz. Naturally, we suggested that the money instead be donated to GKTW. Then, all of a sudden a number of people were posting "R.I.P." on a college classmate's page. I played volleyball with him and put him in one of my TV shows. He died apparently of a stroke or severe seizure. A new friend of mine nearly lost his father in a car accident.

While we live our lives, the proximity of death seems so random.

Certainly we see people die, or nearly die, every day in a world full of violence, natural forces, and of course old age. We don't always notice it, because it's usually not happening close to us. So when these events happen in quantity, and closer to you than normal, naturally you can't help but take notice a little. Maybe it's fortunate that the sadness gets close to us without being too close, because it helps offer a little perspective.

My best friend reminded me of that awful day, more than a decade ago now, at a coaster enthusiast event when a woman, allegedly doing something stupid, was tossed from a ride and fell to her death. A lot of folks congregated in the nearby campground, and it was not a happy scene, as you might expect. Everyone deals with tragedy in different ways, and maybe mine made people uncomfortable. I cracked open a beer, sat by the fire, and was content to do whatever it took to have a good time.

I think my logic was sound, even if it wasn't appropriate. I told my friends and acquaintances, "Look, something really bad happened, but I can't think of any better reason to appreciate the time we have, on earth, and with each other, because we just don't know how much time we have." At the time, I couldn't imagine spending another moment feeling bad, not knowing how many more moments I really had.

It's so easy to get sucked down into darkness by the shitstorm of negativity that we encounter in our daily lives. It's a good idea to stop now and then and ask yourself if that's really worth your time.


Where does innovation go to die?

posted by Jeff | Tuesday, April 29, 2014, 9:55 PM | comments: 0

I was talking with a colleague today about business processes and software development. She mentioned that there are times where innovation just seems to disappear from an organization, and I wondered why that is.

At first I thought that perhaps it's the difference between technology companies and companies that use technology, but I can look at my own experience to see that isn't true. Innovation can disappear from both, though the path is often very different.

In a technology company, it might very well be started as a means to solve some problem that isn't adequately being addressed in the world. This leads to novel ideas, and hopefully, something awesome that is delivered. Over time, the problem tends to change, be less important, or there is more competition. These companies get scatter brained and start chasing all kinds of weird things that probably don't matter, or they simply don't adapt.

Non tech companies lose their way differently. Software is often considered a part of business, not the business. The IT organization is largely a service organization, but its role has changed over the years. It used to be the part of the company that seemed to make magic, but over time they're not viewed as collaborators, just as expense. The disconnect decreases quality and success of software projects, and there isn't room to innovate because morale (and the good people) disappear.

These paths might be different, but ultimately the responsibility lies with leadership in both situations. It's not necessarily a hierarchy that has to be in place, but people who strongly push for innovation and recognize it are required to keep innovation alive. Some combination of complacency and being reactive instead of proactive gets you behind.

It's not a death sentence, it just takes brutal self-awareness at nearly every level. Ha! That sounds pretty easy, right? When I read about success in evolving and sustainable businesses, that awareness and the will to change is a consistent trait. It's something I strive for, but it's hard to keep up, and even harder to pass along to others.


The photographer's life dilemma

posted by Jeff | Sunday, April 27, 2014, 11:27 PM | comments: 0

At the last few concerts I've been to (I guess they were both to see Garbage... I need to go to more shows), I was struck by how many people are holding their phones overhead and taking pictures or shooting video. Yeah, I bust out the obligatory "I was here" shot, but it's kind of weird that people aren't just soaking in the moment. You know, like we did before digital cameras.

But even then, if you were into photography, and I have been since I was a teenager, it's pretty easy to get the bug of recording moments, whether they're your own or not. You might even start thinking of it as art, at which point you look for ways to creatively compose and expose the images you're trying to create. I'm pretty good at it, but I have to admit that I've also gotten kind of lazy in the process. I don't know how many thousands of photos I have of Simon at this point, but since moving to Orlando, I'm not taking nearly as many. We haven't really had a "photo shoot" in some time.

While my phone has a pretty good camera (it's a Nokia Lumia 920), there's no question that there's a lot more flexibility when I have one of my "big" cameras. Sure, all of that glass gets heavy, and you can't put it in your pocket, but there's little question that there aren't many constraints to getting the image that you want. My issue is that, even as adept as I am at shooting under any conditions, my inner journalist gets into a mode of finding those moments at all costs, even if it means not really enjoying myself and participating in those moments.

That's the dilemma I struggle with now. On the first cruise we did, last year, I just had my little pocket Canon, and I ended up with some really fantastic photos, some of which probably need to be framed. For the cruise we did earlier this year, I decided to bring one of the SLR's, with just one lens, and I don't feel like I got anything particularly interesting. My reasoning is that I think I was too busy being there, instead of being a photographer.

Capturing life has become an acceptably low-fi affair in recent years with camera phones. The truth is, people seem content enough with a blurry, grainy and visually shitty image. These tend to be "good enough for Facebook." When I compare what I capture these days, often with the phone, it's not as "quality" as it was even back in the day when I was shooting on film. You just don't need to take much care these days to get something adequate.

I have nice tools, and I enjoy the process of photography. I want to spend more time thinking about it. I'm just not sure I want to miss what's going on in front of me, if that makes sense.


Not taking your playground for granted

posted by Jeff | Sunday, April 27, 2014, 10:50 PM | comments: 0

Another friend of mine, this one from college, started a week of vacation time in the area at Walt Disney World. I can't even put into words how awesome it is that people I rarely would see elsewhere cross through Orlando. My best friend mentioned that as one of the serious upsides of living here, but it might be one of my favorite things.

There is one other advantage to this, in that it causes us to see families "doing Disney" through their eyes. There is no question that sometimes you forget that it's a special place for people who go once a year or less, when you can spontaneously decide to go just for ice cream. Today we visited the Art of Animation hotel, and it was really fabulous. They're going to have a great week making memories.

After more than nine months, there are times now and then where I kind of forget, hey, you have access to some very cool stuff to do. It isn't just the theme parks either... we can go to the Kennedy Space Center, go on cruises without flying anywhere, go to the gulf and Atlantic coasts, enjoy a growing and robust downtown area... so much to do!

I won't say that we're "lucky," because we did after all choose to move here, but I do have to be reminded now and then not to take this environment for granted. We have a pretty great playground.


Online tech news is becoming like cable "news"

posted by Jeff | Thursday, April 24, 2014, 11:06 PM | comments: 0

I'm sure some people can remember when CNN was the only news on cable TV, and it was... wait for it... filled with news. Then Fox came around with something they called news, but it was really just slanted punditry and hot air, then MSNBC went that way, and CNN isn't far behind. There is still some fact reporting, but it feels like 95% of it is nonsense. All of a sudden they used their 24 hours for crap.

I'm a little worried that technology news on the Internet is starting to go this way. If they can't engage in enough journalism in a day, they just start to offer "analysis" (read: bullshit devoid of any value) to make sure they get page views. That makes me and my totally non-used journalism degree sad.

I remember many years ago when CNet was this huge pile of awesome that reported on everything. It was really fantastic. Later, after it was acquired by CBS, it completely went down hill. Now, every once in awhile, even the sites that are hardcore and reliable in my feed slip a little.

Still, as much as people like to shout, "the media!" I still tend to believe that we get what we deserve. As critical as people are of media outlets, I don't think it's a chicken-and-egg thing, as the audiences are there, and the crap is apparently what they want.


In search of the writing high

posted by Jeff | Monday, April 21, 2014, 10:42 PM | comments: 0

I'm about half-way through reading Roger Ebert's Life Itself: A Memoir. I suspect that much of what I've read so far probably isn't that unique to his life, in the context of the timespan he occupied, but when he writes about writing, I can identify with him at a deep level.

It seems that some of what made him a news guy and writer was the thrill of seeing your work go to print, and have it consumed by many others. I completely get this, as I was writing for my college paper at a time just before newspapers were disrupted by the Internet. At best, my column was read by a few thousand people, but it affected people. Some were moved by it, some hated it, and fortunately people weren't afraid to tell me. I could sit down behind my hand-me-down computer and dot-matrix printer, and craft something that, maybe in the smallest way, changed people. It was a rush.

Around the same time, and for a few years after that, I had radio, where I could assume that a few thousand people were listening to me at any given time. The government access TV I was doing also saw a few thousand eyeballs at a time. Later, I would have my Web sites, and those reached my biggest audiences yet, sometimes more than 10k people in a day. At Microsoft, I worked on an app that served 100 million pages every month. None of this compares to the high of that printed word.

In 2005, when my programming book hit the store shelves, I once again felt that buzz. It didn't sell particularly well, but it was still quite a feeling to have something you wrote appear on dead trees in a book store.

In the years since, I've obviously taken to writing on this blog, and to a lesser degree, my tech blog. For the most part, a few hundred people read the average blog post. There's something strangely empowering that anyone can write something and get it in front of people, but maybe that's why it feels like it's less special or impactful (or as the saying goes, opinions are like assholes, everyone has one). In recent years I've questioned who I'm writing for, and why.

To that end, I don't get the writing high the way I used to, and I think I mostly write here to remind myself later on what I was thinking about. Mind you, the gaps in that thought map are vast. When I look back at the posts from 2005, for example, there is no mention of my disappearing marriage, and certainly that was the biggest issue I had.

I do miss the writing high.


Trip Report: Banshee Media Day and Kings Island opening weekend

posted by Jeff | Monday, April 21, 2014, 7:43 PM | comments: 0

It has been a very long time since I've been to Kings Island. I want to put the last visit in 2009, for the Diamondback media day, but I think my last visit with Diana was the year before. I've always really enjoyed the park, and the early days of the BeastBuzz event were epic. I'm bummed that I missed it last year, because it sounds like those good times were back.

This year, the park opens Banshee, the longest inverted roller coaster in the world. I think they're pretty much my favorite variety of B&M coasters, so it was the perfect excuse to pack up the family and make my first trip back to Ohio since moving to Orlando nine months ago. To seal the deal, Diana had some free nights and food credits coming from Great Wolf Lodge after being on their ask-a-mom panel last year, so it made a lot of sense.

The media event was on Thursday, April 17, 2014, modeled after the event they did at sister park Cedar Point last year for GateKeeper. It's similar to what parks have done for years, but they also invite all card-carrying members of enthusiast clubs. It's a brilliant move, because it's a pretty inexpensive way to get thousands of people talking about the rides, and it creates a really amazing vibe that you can't manufacture with just a few hundred media folk and guests.

I was cautious about getting up for this one, because of the cold overnights. The riding started at 5:30 a.m., but I didn't get up until then. The temperature was 32, right at freezing. I was skeptical that they would even run the ride that early, but I could hear it from our hotel room, and sure enough, the photos were already flowing on Facebook. I jumped in the shower, and walked over, arriving around 6-something. There I met our friends Rob and Cindy, and I entered with them.

First ride was in the second to last row, left side. The cold was brutal, but it was clear from the first drop that this was a special ride. It's sharp, it's steep, and compact. From there it climbs into the dive loop, then loops vertically around the lift, and heads up to a zero-G roll. These three inversions come very quickly, with tight radius pull-outs. You really feel them.

From there, it gets more intense. The drop off of the zero-G roll takes you to a lower elevation, where you then climb into the double inversion batwing or bowtie or whatever the kids call it. I figured the sheer size of these elements would make them boring, but they weren't at all. They're perfectly paced and spaced, and the transition between them is impossibly fast. No sooner are you out of those that you're into another vertical loop, which pulls out tightly into an upward helix. This is where I experienced little gray-outs. Next you take a barrel roll, totally straight track. It's completely strange, kind of like Volcano at Kings Dominion. Next you're sucked into a powerful downward helix before entering the final brakes.

My first impression was that B&M took everything they learned about inverted coasters and improved on it. It's so very nearly perfect, start to finish. Even when I tried to be more critical of it on subsequent rides, I couldn't. It was that good. (Shoutout to the asshat enthusiast who I rode with once who said, "The general public will eat it up, but it's just OK.") After more rides, I was ready to declare this as the best in its class. While I haven't been on all of the inverts in North America, I think I've had most of them, and this just blows them all away.

It's also interesting that B&M decided to re-engineer the trains, after using essentially the same design for nearly two decades. Gone are the mechanical restraint releases, and the individual pillars for each seat. They adopted the restraint system from the wing coasters, and now use two columns to support the seats. The result is a more open feeling, and a far less obstructed view from the inside seats.

The theme around the ride is, as you would expect, something of a take on a gothic, graveyard theme, and it's really quite well done. The Cedar Fair planning and design folks are really hitting some home runs again, as they're doing the perfect level of design for a non-themed amusement park. The station is beautiful, the lighting is lovely, and the "memorial" to Son of Beast was a very nice touch (though I suspect no one will miss it). The makeover carries into the midway, which was significantly overhauled from the old "action zone" stuff created in the Paramount days.

There was catered food for media and VIP's, plus food from the overhauled counter service location. There was also ice cream, which seemed absurd at first, but was far more appropriate when the temperature warmed up to 70. They did a nice job taking care of everyone. When it was done, we bought platinum season passes, so we're definitely committed to visiting CP and Carowinds this year.

It's also worth noting that the ride formerly known as Top Gun and Flight Deck was repainted and renamed The Bat, to pay homage to the original Arrow suspended coaster that lived for a short period on the site of Vortex. While the original was a massive engineering failure, the newer ride is the best of its kind. It's a shame that Arrow finally got it right, only no one after that built one. They opened it up for attendees, and it was running beautifully (they also opened Delirium and their Skycoaster).

The next day was their season opener, coinciding with Good Friday. It was a perfect storm of insane busy conditions, with the new ride, opening day and near perfect weather. The park was mobbed in a way I've never seen any park. It took us about 20 minutes just to get in the front gate. Massive lines formed for pass processing (which was optional, because they were taking vouchers at the gate) and tickets. The park was generally crowded most of the day.

With Simon and my dad along, certainly we were most interested in doing kids stuff. Simon was very excited to ride Woodstock Express, his first wood roller coaster. We waited more than a half-hour, and he absolutely loved it. What a joy it was to see him get into it. Diana finally got her Diamondback credit, and we actually queued for 75 minutes. It took almost as long for Simon and my dad to get on the helicopter ride in the kids area.

Saturday, by contrast wasn't busy at all. We strolled in around 11-o'something, and enjoyed walking on to all kinds of stuff. Simon had a total of three more laps on Woodstock, and we even bought a family on-ride photo. It was a great distraction before having to go to the airport.

Another strong quality for Kings Island: Their season pass discounts are straight forward and logical. It's 10% off for food and merchandise. The souvenir cups with free refills are $10 instead of $15 (which is a good deal since a 20 oz. soda is an insane $4 this year).

Overall, I was shocked at how generally friendly the staff was all around the park. It was so much better than it was on my last visit. It's also worth noting that operationally, the park has come a very long way, to the point where it's on par with Cedar Point. That's a very welcome change. Kings Island has always felt like "the other" Ohio park, but on this particular trip, even though it was busy, it felt as though the park had "arrived." I no longer regard it with gentle indifference, and have really started to love it again. Can't wait to go back later in the summer!


Coming home to Orlando is weird

posted by Jeff | Sunday, April 20, 2014, 11:31 AM | comments: 1

We finally got out for an out-of-state vacation this weekend, visiting Kings Island near Cincinnati to open their new Banshee roller coaster (trip report forthcoming). Sure, we did the three-night Bahama cruise a few months ago, but since we drive to the port, I dunno, it just feels like an extension of Florida. For most of the last 15 years, I've probably averaged between 5 and 8 flying trips per year, so it's weird that I haven't been on a plane in 10 months. There were two forces at play here: I was saving money like it was my job so we could put money down on the house, and living in Florida, I seem to forget that one should take vacations elsewhere, because this is where I always used to go.

After arriving at MCO last night, it was weird to hear the recorded tram spiel in a totally different context. "Whether you're here to visit our world class attractions or returning home..." Yeah, this time it was home. Driving down the B-line, you see all of the billboards for the theme parks. There are palm trees. It was just such a strange context against the familiarity of Ohio, which didn't feel unusual at all.

Make no mistake, living here is fantastic. I just wonder if it will ever seem routine. It definitely feels comfortable, just not normal. I'm kind of hoping that continues for a very long time.


Reading from a queue in an Azure WebJob

posted by Jeff | Sunday, April 13, 2014, 10:52 PM | comments: 0

A few months ago, Microsoft introduced something called a WebJob in Azure. It's essentially a "thing" that can run as a background task to do "stuff." The reason this is cool has a lot to do with the way you would do this sort of thing in the pre-cloud days.

Handling some background task in the old days usually meant writing a Windows Service. It was this thing that you had to install, and it was kind of a pain. The scope of background tasks is pretty broad, ranging from image or queue processing to regularly doing something on a schedule to whatever. For those of us who have focused on the Web and services, they're definitely a weird thing to think about.

Azure made this more interesting with worker roles (or cloud services, which also include web roles), which are essentially virtual machines that do just one thing. Those are pretty cool, but of course the cost involves spinning up an entire VM. They start at $14 a month, per instance right now, but still, it's not like your Azure Websites are running at full utilization, so it makes sense to use that resource since you’re already paying for it.

That's where WebJobs are awesome, because they run on the VM that's already running your sites. If you have something to do that isn't going to overwork that VM, a WebJob is perfect. They run pretty much any flavor of code you can think of, but for the purpose of this post, I'm thinking C#. For added flavor, you can bind these jobs to the various forms of Azure storage, and do it without having to wire stuff up. See Scott Hanselman's intro for more info.

I just happen to have a use case where this totally makes sense. I have a project where I'm using Lucene.net, a port of the Java text search engine, to search tags and titles for various pieces of content. I'm also using the AzureDirectory Library with it, which allows me to use blob storage for the index. Updating the index happens when a user creates or edits content. Infrequent as that might be, it is time consuming, and it's a crappy user experience to make them wait. The solution then is to queue a message that says, "Hey, this content is updated, so update the index, please." Firing off a message to the queue is super fast, and the user is happy.

This is a pretty common pattern when you have to break stuff up into components, and a little latency is OK. In this case, it's not a big deal if the search index isn't updated instantly. If it doesn't happen even for a few minutes, that's probably good enough (even though it likely happens within a second or two).

As with the other examples out there, the code to set up the WebJob as a C# console app is really straight forward. In my case, I have some extra stuff in there to take care of the StructureMap plumbing, resolving dependencies between different assemblies and such.

internal class Program
{
	private static void Main(string[] args)
	{
		ObjectFactory.Initialize(x =>
			{
				x.Scan(scan =>
					{
						scan.TheCallingAssembly();
						scan.WithDefaultConventions();
						scan.AssembliesFromApplicationBaseDirectory();
					});
				x.For<IProjectSearchIndexer>().Use<ProjectSearchIndexer>();
				x.For<IProjectSearchRepository>().Use<Search.Repositories.ProjectSearchRepository>();
				x.For<IProjectSearchIndexQueueRepository>().Use<Search.Repositories.ProjectSearchIndexQueueRepository>();
			});
		var host = new JobHost();
		host.RunAndBlock();
	}

	public static void ProcessProjectSearchQueue([QueueInput("searchindexqueue")] ProjectSearchQueueMessage message)
	{
		var indexer = ObjectFactory.GetInstance<IProjectSearchIndexer>();
		indexer.Processor(message.ProjectID, message.ProjectSearchFunction);
	}
}

The ObjectFactory stuff is the StructureMap container setup, and right after that is the WebJob magic from the SDK. I’m pretty sure what those two lines are doing is saying, “Hey Azure, you’ve gotta run this stuff, so just hang out and don’t let the app close.”

The ProcessProjectSearchQueue is where the magic wireup to Azure storage takes place. The QueueInput attribute is looking for a queue to monitor, in this case “searchindexqueue.” The connection string, as mentioned in the other articles you can Google on Bing, show you how to put the storage account string in the Azure administration portal. In the case of this code, when a message hits that queue, this function reads it from the queue and acts on it. It’s like magic.

As of the time of this writing, WebJobs are in preview, so the documentation is a little thin. On the other hand, the product itself is really robust at this point. The monitoring stuff and ability to get a stack trace when something is broken is really awesome.

Here are the bumps I hit in implementing this:

  • My calling code has to talk to SQL via Entity Framework. The app.config for my WebJob did not have the EF configuration section that specifies to use System.Data.SqlClient, so it choked until I had that in place.
  • At first I had my StructureMap initialization after the RunAndBlock call, which was pretty silly because that method is pretty descriptive about what it’s doing.
  • I went down an ugly dependency hole of despair at first, where the WebJob required a ton of assemblies from a core library. In this case, I just needed to pull out the SQL data access to its own project in my solution. DI containers like StructureMap help with this (duh).
  • The deployment is a little ugly because there’s no tooling for it, but it’s still just a matter of zipping up the build and uploading via the Azure portal.
  • You can’t run it locally. I hope they’re going to figure out a way to simulate this, because having to test with real Azure can be a little awkward when you need to share your code (and connection strings) with other developers. To compensate, I took the two lines in the above method and put them in an MVC action to call at will by viewing the action in a browser.
  • If your code fails, the queue message is gone forever. I haven’t used Azure queues in awhile, but I do recall the mechanism that restores a message in the event you can’t process it. Normally you would have some retry logic, so I’m not sure what to do here.

This is a really exciting piece of technology, and I’m planning to use it next to pull out the background stuff in POP Forums, which currently runs on Timers out of an HttpModule. Ditching that ugly hack after more than a decade means finally getting the app to a multi-instance place. That makes me very happy.


Revisiting membership cards

posted by Jeff | Wednesday, April 9, 2014, 7:23 PM | comments: 0

I wrote recently about the options around doing membership cards for CoasterBuzz Club. Basically I'm going to do... nothing different. Obviously a lot has changed in a dozen years, but there are almost no compelling reasons to go plastic and many to stay where I am.

The thing is, my printer was fully depreciated years ago, and I don't want to buy a new one for plastic card stock. The difference in cost between the paper punch-out cards and plastic is about 12 cents compared to almost $1.10 when spreading out the cost of the printer over three years. That's not worth it. The margin on memberships is already taking a hit from the credit card discount rates, which keep getting worse.

The other thing is that there are all kinds of electronic means that I'm thinking about as a secondary means of distribution (or primary, if certain parks will take the lead). As you might imagine, thinking about how you do things like this is part of my daily routine, working for a theme park company. I've got some ideas that I might look into over the next year.


The end of the napping era

posted by Jeff | Tuesday, April 8, 2014, 8:22 PM | comments: 0

It's hard to believe, but Simon took his last regularly scheduled afternoon nap last week. He was starting to resist even lying down, and nap time was becoming dramatic. In the event that he would actually sleep, he would be too wired to go to bed in the evening, causing more drama. We were resistant to skipping naps entirely because a tired Simon in the evening was a bad scene.

To my surprise, things are actually going better than expected. He's fairly used to staying up all day, and when evening comes along, he's really ready to turn in. Before he was calling out at regular intervals between 8:30 and 10. Now, we get him to bed often before 8, and we don't hear a peep.

There are pros and cons for us as parents, of course. We don't get a short break in the afternoon, but we do get a longer evening, and it's a lot easier to go out and do stuff with him. That's a net win, I think.

Rolling with this is part of a bigger pattern of constantly trying to balance giving in to what he wants to do, because it's easier, and telling him what to do for a longer-term win. For example, he's terrible about staying on task for anything, whether it's brushing teeth, putting on shoes or eating. As is the case with many different behaviors, we never know how much of it is him being 4, having ASD or SPD. Tonight he wanted to open the garage door for Diana (coincidentally going to a seminar on behavior issues) while eating, and we told him no. It's slightly heartbreaking to see him react, because the optimist in me sees that he really just wants to help, but at some point we have to break the pattern of letting him get his way.

No telling yet on what happens when Daddy wants to take a nap on the weekend.


My experimental well-being

posted by Jeff | Monday, April 7, 2014, 10:59 PM | comments: 0

I think that one of the things that keeps people in technology at the top of their game is a certain willingness to experiment. I don't mean potentially lethal combinations of Mt. Dew and energy drinks, but rather with new technology that they're not already familiar with.

For me, in my career stage, I also think it's critical because I do a lot less hands-on, in-the-weeds work, but I do often work with others to lead them down the path of better software development. In that situation, I think it's important to be able to walk the walk and talk the talk, with a high degree of credibility. For me, that means building real things both in work when the situation allows, and also on my own time.

My brain bandwidth has been pretty thin the last few months, due to some combination of work, buying a house, and a great many other things that add up. The house part has largely been resolved, which has lifted enough psychic weight to let some of that experimentation desire to come back in, and it's amazing what that does for my enthusiasm. If that weren't enough, this is the time of year where all kinds of new and interesting stuff gets announced, especially with Microsoft-related stuff, so that helps too.

What have I been up to? I've been looking at pushing more of my sites to the cloud, I've been messing with Lucene.net (a search engine) for one of my projects, spending more time with client-side frameworks, exploring C# code written for iOS and Android... there is so much to learn and play with right now.

If working in technology isn't fun, you're doing it wrong. At no time in history has there been more opportunity.


When a cloudy future is good

posted by Jeff | Thursday, April 3, 2014, 11:12 PM | comments: 0

I'll never forget when I first flipped over to having a dedicated server of my own, I think it was in 2000. PointBuzz (then Guide to The Point) and CoasterBuzz could no longer live in a shared environment, on a server with a bunch of other sites, so I bit the bullet and started renting one. It was hundreds of dollars monthly at the time, and the cost of bandwidth was insane. It got to the point where I had to get a T-1 to my house where I could host my own server. That cost a grand a month, but it was all I could do! Things got a little cheaper after a few years, and you could get a dedicated server for "only" $300 or so.

I think I was at Insurance.com, when we were growing and not imploding, that I was first exposed to virtualized servers, probably in 2008. I don't specifically remember what they were used for, but already they were using networked storage for the databases, so my perception that you needed bare metal hardware to run stuff was already eroding. The tech press was gushing over virtualization, and at that point, I had been running Windows in virtual machines on my personal Macs for two years. This was the foundation for what we would later start calling "the cloud."

When I got to Microsoft to work on the MSDN and TechNet community apps, specifically the forums, we had an enormous pool of servers. Granted, the forums were in something of a disastrous state, but they required something like 50 servers to run, and it still didn't scale well. (And yes, we reduced that quite a bit in relatively short order.) In 2010 they were spinning up something called Azure, which at the time was mostly a platform-as-a-service offering where you would run stuff in virtualized instances that mostly hid the operating system from you. It was a little rough because the product wasn't fully baked, but it wasn't long before me and two and a half other dudes built the reputation system that was baked into the forums, and ran it all in Azure. I was sold... what used to take racks full of equipment we deployed to stuff we provisioned in minutes.

I went on to work briefly in the cloud services team before making the poor decision to move back to Cleveland to be with my unsold house (yes, I can't let that go). I've always kind of hated messing with infrastructure and maintaining it, and the promise of cloud resources have been with me ever since. Last year I did the live blog for PointBuzz, and overkill built it for Azure just because I could. (Open sourced the code, too.) Ever since I was involved in that reputation system in 2010, I was looking forward to the day when I could finally move all of my stuff off of a dedicated server, and into the cloud. The problem has been that the math didn't quite favor the cloud, but that is just about at the tipping point.

Amazon, Google and Microsoft have been in something of a price war, and the last round of price cuts are at a place where I think I can finally move my stuff. Google doesn't run .NET stuff, and Amazon doesn't have the sweet PaaS options, so it's going to be Azure. The real trick will be figuring out if some of the older stuff can run in SQL Azure. There might be some exotic things going on there.

One of the things I've talked about in my talk that I've given recently about cloud resources is how it greatly expands your toolbox. The idea that you can spin up a "server" to do some interesting thing in isolation for under fifteen bucks per month is pretty exciting. In fact, I've been looking at hosting a search app for one of my projects in just such an environment.

Assuming I can find the time, it's time to start moving stuff over to Azure. The cloud's time has come even for the enthusiast side business crowd. Now only if I could drag along the old school enterprises...


Five-year anniversary

posted by Jeff | Thursday, April 3, 2014, 10:06 PM | comments: 0

You know life is full when you see that you're celebrating a five-year wedding anniversary, and it feels both impossibly brief and impossibly long. I can't wrap my hear around that. Diana and I met just 7 years ago this May 31.

The reason it's so odd to think about is that we've packed a record amount of adventure into that amount of time. I can't think of any portion of my life, not even college, that is as dense with memories. There are the obvious things like having a child, which certainly dominates the story, to the 6,000 miles of moving we've done across five different houses.

I think I can generally say that being married to Diana has been easy. It's certainly not unicorns and puppies at all times, but I wouldn't characterize our relationship as difficult. We're susceptible to stress like anything else, and being parents would certainly wear us down even if Simon didn't have issues related to ASD or SPD. However, at the end of most any particular day, we can go to bed content with each other after six years of cohabitation.

Our roles have changed so much since we had Simon and moved to Seattle. Sometimes it feels very 1940's, where I'm the "breadwinner" and Diana is the "housewife." I hate those terms, but it has been hard at times, especially for Diana, to adapt to our current state. She worked her entire life prior to having Simon, and I never really had to be accountable for other people. It works though, because we both have provider personalities to some extent.

I love that Diana has been so open to the somewhat radical changes around location and work. I say that if it were all my idea, but she's the one who has been something of the world traveler prior to meeting me. She lived in New York, and went to school in exotic places like England and Cincinnati. I credit her with opening my eyes to what is possible.

What I love about Diana is how much she evolves. She never stops being interesting because there's always something new about her. She starts to listen to new music that I also like, she takes on new hobbies, and even her appearance changes in subtle ways over time. Boring she is not.

The truth is, I could not have predicted the future we now have, and that's pretty exciting. I have no idea how things will go in the future, but it's more exciting than scary with Red Delicious around!