The temperature reached the upper 60's in Cleveland today. We had a nice little thunderstorm this morning, a super sunny afternoon, then another thunderstorm in the evening. Few things invigorate me like warm thunderstorms and sunny days.
Winter has been, by Cleveland standards, not a big deal this year. However, I still have issues with the grayness. It's just not like this in Seattle. Cleveland gets that flat, gray, featureless sky, and sometimes it sticks around for days. In Seattle, you might have a light drizzle every day during the winter months, but there's almost always a break in the clouds and a little sun. When you live in just a slightly higher elevation, it even varies by location. I very much prefer it to the drab constant we get here.
Today was especially awesome for Simon. After his nap, Diana took him to the next town over to this awesome play structure they have. When they got home, I joined them on a nice walk around the neighborhood, where he identified "kack kack" (ducks) and "meh" (the moon). I'm so glad he's getting out for some walking. It was his favorite thing to do in Snoqualmie.
This was the last day for the lessons. After six weeks, it was worth every penny. Me and the rest of the group are going to do another six weeks, though we might have a different instructor. I'm still thinking about private lessons as well. Or maybe even just time with the machine pitching balls at me.
I wasn't feeling it at first tonight. My ankle has been bothering me on and off, with a weird kind of pain in the heel that I've had probably since college at various times. I think I did it coming down too hard from an off-balance block in college. I don't even remember. Inactivity and cold makes it worse, of which I've had plenty of lately.
We spent time serving again tonight, and it wasn't great. I finally started to back off on power and just kind of lob it in, only to realize it was still just toss issues. Once I slowed down and took my time, I was able to get about 75% in.
We spent most of the time playing an actual set, in doubles. Sadly, with two games a piece and me serving, we I double faulted after going to deuce. I totally choked. But I only had two double faults total, and I owned the net when I went up. I can't even tell you how much easier it is to worry about one person acting on the ball instead of six.
Tennis seems like kind of a douchey sport, and that reputation isn't helped by the expense of playing it in colder climates, but I've enjoyed watching it for some time, and it's fun to play. I hope I can continue to make it a part of my weekly routine.
Last weekend, I showed a very early behind-the-scenes preview of what will eventually be the next version of CoasterBuzz (the fifth major revision in 12 years) to some folks that participated in the PointBuzz off-season tour at Cedar Point. It's very early in the process, but I thought it would be fun to talk about some of the things that have changed over the years. This series of posts probably won't mean much to non-code-monkeys, but it's fun for me to write about and create some record of what I'm doing.
First, a little background. CoasterBuzz was first built in 2000 using the old ASP scripting platform, which was awful. The second version came shortly thereafter. It was awful in part because I wasn't particularly good at writing code, and had only been doing it for two years, without any mentoring. It wasn't until 2003 that it became an ASP.NET application, and that major platform change required a total rewrite.
Version 4 took even longer... more than five years, launching again in September, 2008. It ditched the home-made CMS that I built, but still recycled a lot of the underlying code. Nearly ten years ago, I liked to build data objects that included data access built into them. I wouldn't describe this as an awful practice, in part because I wrote about it in my aging book, but it's not great for testing. By that time, I had largely embraced test-driven (or test-influenced) development, but I just wasn't up to rewriting everything.
What that version did do for me is create a relatively stable platform to expand on. While it has been more than three years since a major revision, I've been able to add a ton of features that had real impact on traffic. I've been mostly happy with it.
However, there is still a bit of legacy in there, as old as nine years. The other thing that happened, just a few months after I launched, was the beta release of ASP.NET MVC, the framework that runs on top of ASP.NET to bring development back to what HTTP really is. I've been living in that world ever since. In fact, I did a total rewrite of the forum app in MVC, and POP Forums is available open source. There is a whole stack of goodness at my disposal now, from jQuery to EF. These are all things I'll write about. I don't have a timeline in mind yet for vNext of CoasterBuzz.
Right now, I wanted to talk about WCF, and how I've expunged it from my life. The promise of WCF has always been that you could expose and consume services wrapped in whatever protocols, and it would just work and be easy. Maybe that's not the promise, but that's what I was sold. I think what we got was something that's completely dependent on configuration, either in code or XML, and almost never works the first try. And if that weren't enough, putting in Azure has been a pain, in my experience.
Still, I decided to give it an earnest shot when I built a Silverlight-based feed watcher for CoasterBuzz. I liked that it could be out-of-browser, work on my Mac, and I needed a science project for Silverlight. Getting both ends of the chatting to work was a pain, but eventually I got it working. That was years ago, and whatever I've done with Silverlight since has been for Windows Phone, some DeepZoom stuff, and a file uploader.
Fast forward to today, and the next thing on my to-do list was to port over the service for the feed to vNext. It didn't work. Same config as far as I could tell, and obviously I didn't change the client. It just didn't work. It threw all kinds of ambiguous errors that didn't make sense. It was all coming back to me about how much I struggled to make it work the first time.
When I was still working at Microsoft, on MSDN/TechNet stuff, we built an API for one of our services using MVC. Think about how stupid-easy it is to make a RESTful endpoint using MVC. You can define the route and literally consume and respond with any bits you want. And it doesn't take long to do, either. It's no wonder that, a few years later, we see Web API surfacing with the next version of MVC.
So with the annoyance of WCF, I added a route to serve up the feed as JSON, and borrowed the helper class I had written for the CoasterBuzz Windows Phone app to talk to it, and I was done.
In a lot of ways, WCF shares an issue with ASP.NET Webforms. It tries to abstract away something to an extent that it starts to obscure the original problem. Both are fundamentally trying to shield you from the process of sending bits over a wire and doing something with them, and both turn it into something entirely different. HTTP isn't really that complicated in the first place, so why make it harder?
The common thread you'll see in a lot of my writing about this re-write is that I'm doing more with less code. Ditching WCF for simple JSON via MVC was a no-brainer. Next time, I'll talk a bit about replacing ASP.NET AJAX with jQuery.
Northeast Ohio has been in the national news for the wrong reason since yesterday, after some kid walked into Chardon High School and shot five other kids, of which three have died. It's a sad, shocking event, and I just can't imagine having to be a kid, or parent, in that situation.
Naturally, people near and far are trying to reconcile the insanity of it all. Unfortunately, there isn't much you can do. You can't really assign blame, you can't find a solution, and you can't change what's done. The only rational explanation is that sometimes fucked up people do fucked up things. It's not a satisfying conclusion at all, but then again, no conclusion would be.
Immediately, the debates begin about everything ranging from gun control to religion in schools. Again, as dissatisfying as it might be, they're all irrelevant. A screwed up kid did something awful, and that's all there is.
If we look at statistics, we can actually see that tragic events like this are less likely than they were when Columbine went down, though that's no consolation to people in Chardon. What frustrates me is how so many people over the age of 30, and it gets worse with age, cast aside kids for various reasons. "Kids today are..." Personally, I don't think kids are any different at all. If they are, it's because of parents.
My hope is that people who choose to procreate understand the responsibility they have. No one says you have to coddle your children, but you do need to guide them so they can understand how to deal with the difficulty of life. When parents fail to do that, communities need to find ways to help pick up the slack. I've seen coaches, teachers and volunteers make a huge difference in the life of kids, and they would never write them off as substandard humans.
The shooter will have to live with the consequences of his actions, and ultimately, I think he's old enough to understand that only he can be responsible for what he did. But as we learn more about him, I'll also wonder what his family, friends and community could have done differently as well. The harsh reality might be that there was nothing they could have done, but I think a great many people let him down before he let himself down.
I hope the kids at that school can make some sense of the senseless crime, eventually. This is not the way to be forced to grow up.
It seems like it was only a few weeks ago that I was writing about how Simon's bedtime ritual, something that had been a source of joy for all of us, turned sour. He just hated it, and would cry and we'd have to go back up several times until he would settle down.
In the last few weeks, we've been in our spare bedroom frequently, because it's doubling as my office during the day. So when Simon comes in and visits, he has taken to pretend sleeping. It's hilarious and adorable. He gets under the covers and flops down on a pillow and pretend snores. At this point, Simon was sleeping for real in his crib without a blanket or pillow, because prior attempts only caused him irritation.
Then, just the other day, Diana put a pillow and a blanket in there, put him down for nap, and it was instant sleep. For the most part, he has gone down for every nap and overnight the same way since. The joy and comfort he seems to feel when he goes down is outright amazing. Once again, bedtime is a sweet and affectionate time for him.
This could not come at a better time. His other rough behaviors have been the source of a lot of stress for us, and I'm sure we've both lost our cool at times when he was just being a toddler. This helps counter that in a huge way, and it's such a relief.
We had another off-season tour at Cedar Point today, and with the park picking up the lunch tab, we're going to give the entire amount we charged, $1,500 total, to Give Kids The World. That's gotta be the fastest we've ever raised money.
For me it was a chance to connect with some people at the park. Under the regime of a new CEO, it's interesting to hear them talk about the upcoming season, with the kind of enthusiasm that I haven't heard in years. There are so many good people in that organization, and I think they're well positioned now to be as successful as they want to be. It was also good to catch up, because I consider many of them friends.
The lighting and night time stuff that they're working on for this summer is going to be pretty impressive. New lighting for Giant Wheel, Power Tower and Millennium Force is long overdue, and they're going to turn the entire length of the main midway into a continuous dance club. It should look really fantastic when it's ready in June. And that hideous screen is finally coming down!
It's weird to think about the relationship I have with that place. Fourteen years ago, I was just a punk kid with a Web site, but later I made friends there, and would go to their weddings, or they would be in mine. It hasn't really been about the sites in years. I've enjoyed an outsider status with a lot of peeking under the covers at times, even doing contract work for them on secret projects. I enjoy just the right amount of engagement, I think, where I can get involved with the park without it being to an extent where it's no longer interesting to me.
And really, that's a scenario I enjoy with much of the industry. I don't work in it, but I work around it, if that makes sense. I don't know, maybe I should be working in it in some capacity, but I often wonder if that would ruin it for me, the way it did with radio. God knows the pay wouldn't be as good, but I know firsthand that money doesn't buy happiness.
In any case, I really look forward to summer. This is going to be a big chance for me to reconnect with the geeky side that kind of subsided while moving about, having a child and soaking up the awesomeness of the Evergreen State.
Got off to a rough start this week, sending balls into the wall. I just wasn't feeling it at first. I settled down, got into a rhythm, and things got better.
My biggest struggle remains ball proximity. I can't get my brain to remember that the ball has to be on one side of me or the other so I can swing at it. I can only imagine what this will do next time I play volleyball and have to be directly behind the ball!
But when I've got my footwork right, and I'm in the right place, I'm getting more confident about hitting the ball. I tried to think more about where I was hitting it today, but I don't think that served me particularly well. I'm starting to break things down into their components, which might be overthinking it, but it helps me better understand what my body should be doing.
We spend some quality time serving tonight, and it made a world of difference. One of the side benefits of that repetition is that it also gets me hitting the ball with the center of the racket. I don't do that very consistently either. The serve for me always comes down to toss. When I'm concentrating on getting full extension, I'm not getting the ball out in front of me and serving long. When I concentrate on getting the ball in front of me, I'm not getting full extension and hitting short. When I get both right, it feels awesome, and I can't believe that it's me hitting the ball. I need a lot of practice.
The good news tonight is that several of the people in my group are interested in going another six weeks, so that would be pretty solid. I may still explore doing some individual work too, if I can. I like the instructor we have, and he seems to understand what I need to learn.
I'll never forget one of our visits to Finaghty's, where the bartender was talking to us about his daughter, about a year older than Simon. He said that once she started talking, all of this personality came out, and while she never shut up, he didn't want her to. I feel like Simon is just on the edge of reaching that point.
Simon's vocabulary and speech has been a concern for us, in part because we know a lot of kids about his age and know where they are in terms of communication, and he's behind them. Lately, he seems to be upping his game a little. We were surprised, for example, a few weeks ago when we went to Great Wolf and he pointed at the waterfall and said, "wa wa." Since that time, we ask him to say stuff, and he gives it a try. Some things he gets, like "knee" and "hoo hoo" (owl noises). Other things come out as a mess of sounds, but often with at least the cadence and accent of a word. We try to praise him as much as possible when this happens.
On the flip side, he also engages in a lot of negative behavior, I'm sure because he wants to test boundaries. Hitting has been a problem on and off. It's hard not to react emotionally when he smacks you in the face, but we're getting pretty good at putting him in a corner or the hall or somewhere and having him stay there for a timeout. He throws a tantrum, and eventually if we ask him to, he'll say something that sounds roughly like, "I'm sorry."
It's really fascinating to see all of this personality coming out. You have to take some bad with the good, but when I think about how he could barely walk just a year ago, it's pretty amazing. I mean, this is a tiny person who one day may have kids of his own. It's hard to wrap your head around that!
I'm absolutely horrified at some of the rhetoric coming out of the Republican primary campaigns lately. Obama has to be smiling every time these guys open their mouths, because the toxic vomit coming from them is ridiculous.
What annoys me most though is the religious nonsense. I'll be the first to say that I think Romney is a douchebag, but frankly his religion has nothing to do with it. Who cares if he is a Mormon? It doesn't even make the radar of things anyone should care about. We saw the same thing (and we're seeing it again) around Obama's faith. If the guy says he's Christian, so be it. And even if he was Muslim, again, who cares? Anyone who makes this an issue is very clearly someone who engages in hate and fear mongering, and we don't need that.
Remember, we can blame the politicians, "the media" or whatever, but we're only getting what we deserve.
Diana and I have been talking a lot lately about some of the things that have fallen short of our expectations since the move. These have been pretty deep conversations about our fundamental level of happiness, and a serious evaluation about whether or not we did the right thing by moving.
Let me cut to the chase, before diving in. After almost five months, we can only describe it as different, and not better or worse. On some fronts, we're winning, but on others, we're definitely losing.
On the plus side, I can't even tell you how nice it is to have a house again. I honestly don't care that it's this particular house, but it's a house where we can paint, decorate and park a hot tub. Even though our ideal world doesn't have us here for more than three or four years at most, we're able to nest and make the place ours because it's not a rental. That's something we could never fully realize in Seattle. We always felt so transient in terms of the place where we slept and parked our cars.
The other huge win is financial. We have way, way more free cash flow now that we're not paying for two places to live. I don't know that I'll ever feel like I'm making up for lost time in terms of saving for retirement, but at least I feel like I'm getting somewhere. The irony is not lost on me that I live in the very place that was previously making that progress difficult, but being able to see a future for us, and Simon, is something I've never had. Heck, even the financially traumatic car crash and replacement wasn't that horrible.
It's hard to weigh these benefits against the negatives, because they're not easy to compare. The biggest negative we're struggling with is the lack of a robust social network. Sure, we have some of our best friends here, but we don't see them all that often. In some ways I'm sure that's our own fault. The worst part for me is not seeing my work friends. I'm surprised at how rich some of my friendships in Seattle became, and I hate not having those people around me.
Even more difficult is not seeing our PEPS circle of friends. I suppose you can call it a "mom group," but those families are all my friends, too. More importantly, it was a great social circle for Simon, and that's what makes it hard. I feel like we screwed him out of that great little group of toddlers, and that makes me sad.
And even harder than that is not having my brother-in-law and his family a mile down the street. For me it was a little like having an older brother (for Diana it was that), and I got to be Uncle Jeff to Simon's cousins. So not only did we have some of Diana's family, but Simon had relatives his own age.
You can see why I have a lot of internal struggle over this. The wins are offset by the losses, and when you stack rank the importance of these factors, you wonder if they're weighted equally. The social issues are particularly hard for me since I don't leave the house for work, and Diana and Simon are somewhat bound by the shitty weather.
It's not all dark on that front. Spring will bring with it a great many new adventures. We had a sort of preview over the holidays, being able to travel by car (accident not withstanding) to see Diana's dad. We already have plans booked to go to that region again to meet up with friends for a weekend. There are countless trips to Cedar Point in our future, water parks and other trips. Plus we'll have hot weather and thunderstorms. We'll also be able to throw an epic party again. I miss having parties. Needless to say, we're also hoping to visit Seattle.
One thing that does scare me about the social issues, is what happens when you add a third location to your life? My God, how complicated is that?
So I suppose you could say that the grass here is not greener. Like I said, it's not better or worse, it's just different. The reason that we're struggling with that, I think, is because we expected better. Instead, we've just shifted the burden around. Here's hoping spring gets us to a place where we no longer feel like the net change was zero.
We ended up eating this evening at a Friday's, despite my better judgment. We were out with Simon, and he was getting desperate for food. The original plan was Carrabba's, which is probably the last Italian chain restaurant that I like, but they had a half-hour wait. Friday's was the next closest thing. I just don't know what I was thinking. I'd rather have a pissed off toddler for another 20 minutes on the way to anywhere else. Part of my issue is that I just don't know what's around here anymore, beyond a few places we frequent.
Here's what I don't understand though. How is it that these shitty chain restaurants like Friday's and Applebees can't get the most basic food right? Microwaves are meant for transmitting radio signals, not heating food. If there's one thing you can learn from the cooking shows that turn around restaurants, it's that fresh, real food, prepared that day, is cheaper, and tastes better. And it's not even an issue where economy of scale wins out for profit margins. Chipotle, as fatty as it might be (depending on your burrito preferences), demonstrates that you can use quality ingredients on a low-tech line and charge more for it.
And it's not just the chains, either. When we moved to Seattle, we systematically worked our way through the various Italian places nearby prior to Simon's arrival, and they were all bland and shitty. Seriously, chicken isn't that hard to make tasty. Whatever you let it sit in, it takes on that taste.
It's not all bad news, of course. I think at this point, everyone has celebrity chef restaurants in major metros. We have Michael Symon (his burger joint is near us), and he makes some delicious stuff. Some of the smaller chains do OK as well (we need to go back to Stir Crazy). And honestly, I still believe that Buffalo Wild Wings has the most consistently tasty bar food. The local chain, Winking Lizard, also has a great menu that is pretty basic, but almost always delicious and inexpensive.
Obviously, we need to start finding interesting places. Cleveland has a shockingly good set of restaurants, but they're mostly downtown or otherwise not convenient. I'm still surprised that Symon opened a place out in the burbs, but it's crazy popular.
Cosmo, my eldest cat, is a little over 15 years old now. Stephanie and I picked her up at a Walmart where the SPCA or some similar organization was having an adoption drive. She was so tiny and furry and talkative, and I remember the first thing I did was bury my face in her fur to see if I was allergic to her. Obviously, you know how that turned out.
She's sitting beside me right now, "making bread" in a blanket and purring. Thinking about her age, I looked up the life expectancy of cats, to find that by some accounts she should be dead by now. As my former girlfriend and veteranarian was fond of saying, "She's too evil to ever die... she'll live to be 20."
She's not actually evil, and she has always been good to me, Steph, and it didn't take her long to warm up to Diana. As she has with me when I'm upset, she now goes to investigate Simon when he's upset or crying. When I had to put her little sister Luna down, she wandered the house for days looking for her, even though she acted like she hated Luna when she was alive. The cat has a good heart. I've seen her lick Oliver on the forehead when she thought no one was looking, too.
And apparently, her health is pretty solid overall. I took her to the vet just before we moved back to Cleveland because she had bloody urine leaking out. She had a UTI, and the meds over the next few days (including those on the road) seemed to clear it up. Other than that, she can't keep up with her fur, and trying to keep up with the mattedness is damn near impossible. She still gets nutty when something interests her, and of course the boys (unfortunately) tend to chase her a bit. She's still very quick. Unlike most old cats I've seen, she doesn't really exhibit any signs of being old yet.
But I'm realistic, too. I know her clock is ticking. The doctor visit did reveal that her urine is slightly diluted, which is an indicator of decline in kidney function. I just hope that when her time comes, she can go peacefully in her sleep. Seems like that's never the case with pets, and I still have nightmares about Luna's demise.
Cosmo has been through a lot with me. I try not to take her for granted, and I'm glad that she gets to hang out and nap near me during the day now.
When I was in college, and for many years after, we had a radio station in Cleveland called "The End" (it was at 107.9), and it was what the industry described as modern rock or alternative. That station was the tits. I was still working in radio at the time, at the big top 40 station across town, and I wanted nothing more than to jump ship and go play Nine Inch Nails, Garbage, Depeche Mode and Luscious Jackson.
There was another station in town that was playing stuff called modern rock, the Cleveland rock radio legend WMMS, but what they did was too well packaged, and it lacked the integrity and diversity that The End had. They sounded like the rock version of the awful station I was working at. To give you some perspective on how awful that might be, that was when "Macarena" was popular.
What I loved about The End was that they seemed to take chances and not get too wrapped up in genres and labeling. It was fantastic that you could hear Nirvana and Pearl Jam one moment, and the next you were hearing Fiona Apple or Morcheeba. For someone like me who soundtracks his life with music, it was really a dream come true. That station introduced me to so many favorites I cling to today... James, Material Issue, Toad The Wet Sprocket, Garbage, Alanis, Radiohead, Matthew Sweet, Weezer, Tracy Bonham and countless one-hit wonders.
I didn't stay in that business for very long, but that radio station took everything I loved about radio in the 80's, in terms of personalities and production, and applied it to a sweeping range of music. Sadly, the format was ditched, and as the post-deregulation consolidation continued, the format started to disappear all over the place.
About two years ago I bought a new car with an XM radio in it. At the time, my commute along a beautiful road along Lake Sammamish outside of Seattle was barely 20 minutes, but I got so hooked on their AltNation channel that I immediately signed up after the trial subscription ended. It is The End, only with the music of the day. It has jocks that are genuinely into the music. Their morning guy in particular (well, technically he was mid-day when I lived out there) has a lot of depth and knowledge about the stuff they play. And there are zero commercials!
That's the interesting thing about satellite radio that trumps terrestrial radio. You can be pretty broad, or focused, in every format, because the audience is still yours regardless. I mean, they have four or five variations on country stations. Some have jocks, some don't. When I listen to their Lithium channel, it's like hearing The End, circa 1998.
The thing that's really helping out the channel now is that there is a lot of diverse music being published that doesn't neatly fit into a specific genre. It feels like radio from 15 years ago, even if it sounds different. I've noticed on Facebook that several friends share the enthusiasm for it, too.
Music listening habits have changed so dramatically since then, thanks to the iPod and the MP3 format, but the thing that I still value is people choosing music for me. This works both in the historic sense, for channels like Lithium, as well as the discovery sense, like AltNation. Every once in awhile, something like Pandora finds a nut, playing something I didn't know about, but you know, so did a random preview kiosk at a Borders back in the day (that's how I discovered Supreme Beings of Leisure, and I'm more sexy for it). I don't have the time or energy to be a hipster listening through mountains of shit to discover something I'm really into.
I do have one problem now... I work from home. I don't commute anywhere, so I don't listen to XM very often. We'll see if I'm too cheap to spend the extra few bucks to use their streaming service.
The fine former colleagues of mine from Redmond put out a beta today of ASP.NET MVC 4 today. For people who don't know what that is, it's basically a framework that makes it a lot easier to build Web sites/applications in a sustainable and testable way. It really makes it exciting (for me) to build new stuff. This particular version has a feature that allows you to make device specific views (the "V" in MVC), making it stupid easy to whip up a mobile version of the app with very little work.
Because the framework encourages you to split out all of the logic and "heavy lifting" into discreet parts, separate from the user interface, that meant that all I had to do to whip up a mobile forum was re-do the pages, which is a piece of cake. Knowing this release was on the way, I started a couple of weeks ago. It didn't take long.
You can see it in action on the test site. It's a little rough, and doesn't fully embrace the mobile framework I'm using, but it's a really solid jumping off point. When I've really spent some time optimizing it, it'll feel a lot like a native app on your phone/iPad. (If you view it on your iThing and it doesn't appear mobile, click the "mobile view" link at the bottom.)
Working on this, and some other stuff, has really energized me about development. I've spent just enough intermittent time away from it, from having a child, moving, changing jobs, etc., that diving into it today makes me appreciate how much less my imagination is constrained. A lot of the things I'd like to do, I can. You can largely thank the open source world for that. (The MVC framework itself is open source. Yeah, from Microsoft.)
I look forward to seeing the outcome of some stuff I'm working on right now. I'm having a lot of fun lately in my spare-time endeavors.
This is going to sound like I'm bitching, and perhaps I am. The work-from-home lifestyle is absolutely driving me crazy. I spend all day in a room without face-to-face interaction. I get to see Diana and Simon at lunch, and I love them dearly, but when they're the entire scope of my social interaction, it gets me a little stir crazy.
I'm trying to make sure I go out for lunch twice a week. That does help a bit, and I generally bring my laptop or a magazine or something. With the realization that I count the minutes to these lunches, there is clearly a problem.
I didn't expect this. I've worked from home before, the last time I did consulting work, but when I think more about it, the circumstances were quite different. First, I was still visiting the client once or twice a week. That helped. I was also coaching every evening during that period of time.
Of course, when I wasn't working at all for anyone other than myself, I wasn't on anyone's particular clock, so I could get up and go and do stuff as needed.
I've gotta figure out how to manage this. I think step one is to make sure that I get out and see friends more. I've sucked at that since we moved back. Things will also improve when spring rolls around, and we're not stuck inside all weekend and in the evenings. (Another vote for Florida.)
Things are really going well for me at this point. The biggest hang up I have right now is getting to the right position relative to the ball. I tend to crowd it, leading to all kinds of weird contorted body motions trying to hit it. When I do get it right, I'm crushing it, but it's so inconsistent.
We had some quality time serving, and that's finally starting to get better. It's all toss issues for me. If I get it high enough and fully extend, it's solid. Otherwise, I'm hitting the tape or going a few inches out every time. Hopefully we'll spend more time on that next week.
Overall, it feels really good, and I'm having a lot of fun. Anything that troubles me in the world goes away when I'm out there. And unlike volleyball, it's just me. I mean, yeah, you play against someone, but the non-team dynamic of the game really allows me to focus entirely on me. That's something I don't get to do very often.
The first song in the car on the way home was "Optimistic," easily my favorite Radiohead song. It really was fitting (though the song is actually kind of dark, and I have no idea what the hell it's even supposed to mean... I just like the song).
I've seen a lot of really bad code lately. Not just bad code, but poor design, heavily coupled architecture and general anti-patterns. It's kind of a drag.
This is a pretty serious problem in my profession. With the pretentious sounding "software engineer" title slapped on jobs everywhere, you'd think that would imply great attention to detail and precision. That's definitely not what's going on.
It is absolutely true that, especially for folks like me who are self-taught, it's pretty easy to get started as a developer by hacking together something that barely works. I would even argue that if code never had to change, barely works would be an acceptable outcome. But real life, and this is more true than ever in a Web-based world, dictates that nothing is ever truly "done." It is destined to evolve and change.
The industry is suffering from a lack of people to fill the jobs for software development, and what people there are tend not to be great at what they do. That's not the end of the world, though. It can get better, but only if we as an industry get our shit together. There are plenty of things to do...
You can be a part of the solution to the craftsmanship problem in the software industry.
We finally saw Moneyball tonight. Loved it. For anyone who doesn't know anything about the plot, the movie is based on the story of a baseball general manager for the Oakland A's who, struggling with a small budget, decided to forego the traditional way of building a team based on a few all-stars and other unimportant player qualities, and instead took a statistical approach.
Without giving too much away, at one point he talks to a team owner who makes a bit of a speech. He explains that any time someone radically changes something, whether in business, government or anything else, and finds success in it, the establishment will cling to the old way of doing things and fight it every step of the way. Eventually, they become dinosaurs, but only after a significant struggle.
I can't even tell you how much that resonates with me, though those close to me can easily understand why. I've seen that story play out in nearly every job I've ever had, starting with the first real gig I had. In three years, I was unable to shake people loose of their legacy, and after three years, I gave up and moved on.
The 26-year-old me was obviously not as mature, and certainly didn't have the experience to bring the kind of change necessary for long-term success. And if I'm being honest, the opportunity to double my salary sure as hell didn't hurt either. But the thing that strikes me about every place that I've been, save for maybe my first position at Microsoft, is that there has been an obvious opportunity to transform something suboptimal into something great. For a lot of different reasons, I've never been able to fully embrace or act on those opportunities.
There are a great many things that motivate me in my professional life, and the one I most often talk about is the desire to create things. I suspect that's a desire that will stick with me for life. But I've also come to realize that the second desire is likely to be the key force in the transformation of what I work on. True to my coaching experience, I'm not looking for high praise or recognition, and I don't want to order people to do this or that. What I want is to guide people and processes toward that better thing, to dispense with the old, less effective thing, and replace it with something better.
I don't know how exactly I'll reach that goal. I don't know if it will be in my current gig, a future job, or even on my own doing something I haven't thought of yet. I guess I'm just reaching this awareness now. Awareness itself goes a long way toward transformation.
My concerns about the turbulent advertising market for publishers are again showing legitimacy, with Google AdSense tanking in a big way. January was absolutely horrid, and starting last Thursday, the number of ads it's serving appears to have dropped by two-thirds, even though traffic hasn't changed. It's one of those things where I can't explain the discrepancy, and Google has no humans available to look into it. I mean literally, there's no one to call or e-mail. That's a shitty way to do business.
After 14 years of doing this on the side, I have to say that I've grown tired of the swings. On one hand you see ad spending online as a whole continue to increase, yet as a publisher, you're constantly screwing around and trying to balance different ad networks that come or go. At least with Google, the mechanized nature of it, seemed to make it generally better. That is, until you actually need to contact them to find out what's going on.
Not sure what I'll do next. Right now, it's covering expenses, but not by much. I suppose I can make a plea to the members, but I feel like I'm always asking for money. Right now, I'm investing a lot of time into the sites through improvement of the forums and other stuff. It won't do much good if I'm not recovering the cost to keep the lights on. I'm sure it will swing the other way eventually, but it's annoying in the mean time.
I need a better business that runs on paid product instead of seemingly random ad spending.
Since I'm solo tonight, and Simon is bed, I thought I'd camp out in front of my desktop computer and work on my next big project. I haven't worked at my home desk (as opposed to my day work desk) in awhile. Unfortunately, what I found was kind of a mess. Lovely as the screen and CPU might be on the giant 27" iMac, it does have a conventional, mechanical hard drive, which is super slow compared to the solid state drive in my laptop. This matters when your project involves about four gigs of data that you're importing and transforming. Plus, the VM I'm working on has about 10 gigs of dumps and temp files that need cleaned up, so basically I'm not yet getting anywhere.
Today, another rumor surfaced about the potential for new 15", and maybe even 17" MacBooks in the Air style... meaning very light, very thin, and of course containing solid state drives. The even more interesting part of the rumor is that they're going to include really high resolution screens. Think what that did for the iPhone, now scale it up to a laptop screen. Certainly the operating system can handle it. That would be amazing.
Right now, I still have pretty awesome computers. The iMac is just over two years old, and hard drive aside, is still a fantastic computer. My 17" laptop is almost three years old, a life expectancy you never had for laptops back in the day because they were always so underpowered. Since putting the SSD in it almost a year ago, it has been like new. Aside from a few minor cosmetic scratches, it's still in great condition.
If the rumors are true, and I can't talk myself out of it, I may consider the new lighter laptop. As much as I love mine, and as much as I've traveled with it, it's just so damn heavy. So if it happens, I'll take the SSD out of the old laptop and put it in the iMac, and see if I can sell the old laptop for a grand or so. It really seems to be worth that, still. As I learned with the Mac Pro I sold two years ago, these Macs have strangely high resale value.
I'm getting cheap in some aspects of my adulthood, but being cheap about your computers, when they're the primary tool of your trade, just doesn't make sense. It's like being a mechanic and buying your tools at Walmart. I dunno. We'll see how I feel if the rumors become reality.
Simon and I had a boys' night out today, while Diana is off in Pittsburgh for a well-deserved "fiber arts" conference (read: gathering of knitting nerds). Since we needed a few things from the grocery store, I figured we'd grab a bite at our favorite restaurant as well.
This was the start of a wave of exposure to the kind of parent I never want to be. First set: An extraordinarily attractive couple in business attire at one table, with the father dicking around on his phone and the mother doing some kind of paperwork. The two kids are literally begging for attention. When one gets up to watch the caged lizard move to his bowl, the father looks up and starts yelling at the kid for sitting on the floor. Because, you know, kids never should do that. These are the kind of people who are douchey in a business setting, but they were extra-douchey as parents.
As we're pulling out of the parking lot, another mother allows her 3 and 5-year-olds to linger behind unsupervised in a busy lot. Who does that? People suck at driving, especially in parking lots.
Then there's this asshole hilljack who finds out his daughter posted dramatic dislike for her parents on Facebook, and then shoots up the kid's laptop and posts the video on Youtube. Really? Wow, I can't imagine how that kid could possibly be so dramatic. Where would they learn such behavior?
I don't expect to be my kid's best friend and buddy, without discipline. But I'm trying really hard not to screw him up by understanding that he learns negative behavior from us before anyone else. You know the passive aggressive stuff people do with their tone, or by forcefully shutting a door? I've caught myself doing that in response to some of Simon's more difficult behavior, and I have to stop myself and ask what the hell I'm doing. If he is disrespectful or a douchebag, it's because he learned it by watching me.
This is a particularly sensitive topic at the moment, because Simon is exhibiting all kinds of negative behavior right now, as is typical for his age. It's extremely difficult sometimes to be the grown up and remove myself emotionally from his boundary testing. Fortunately, seeing examples of what not to be helps me keep focus. I'll never have all of the answers, but there's no shortage of data showing what not to do.
Hearing the court overturn Prop 8 in California, calling it unconstitutional, was a breathe of fresh air. It's certainly one of many court battles that will take place, but it's a step in the right direction.
After a number of other public incidents, including Ellen's battle with stupidity and some very good points made by Howard Stern of all people, it occurs to me that there is a very loud minority of people making noise that are completely out of their minds, and would be literally banished into the most chastised underground of our culture if we were talking about race or some other group of people.
The politicians in particular have blown my mind. How can Santorum stand up in front of people and suggest that gay people should stop being gay, in 2012? Are you fucking kidding me? What's so bizarre about this is that with the progress we have made culturally, I doubt there are many people who aren't related to or have a friend who is gay, and you know it. It's like suggesting you don't know any black people or Jews. Given that fact, how can you be so blatantly stupid? How does someone like that even get to run for president?
And it's not like the people on the other side of the aisle are any better. Obama still can't grow some nuts and say, "Yeah, gay marriage is fine, we should allow that." He campaigned on ditching Don't Ask Don't Tell, but managed to drag his feet for several years before getting it done.
So what motivates people to even give a shit about this issue in the first place? If it's a religious issue, that's fine, but since there is no official religion in this country, you don't get to use that as an excuse. The other set of excuses, about "defending" marriage or whatever, is even more bullshit. You want to defend marriage? Stop letting half of all straight people get married in the first place, since it results in divorce. My first marriage didn't fail because of gay people, and it's not going to have any impact on my second marriage.
I loved the kid who stood up in front of the Iowa legislature, raised by lesbians, and told them in the most eloquent and non-confrontational way that the gender of his parents had nothing to do with who he was. I admire people like that, because I get too angry at stupid people.
It sucks that we even spend time talking about stuff like this. On the grand scale of problems we have, this isn't even on the scale.
I know I've mentioned before about how I tend to hold more things close to the vest lately. So I'm not going to say what I've been working on lately in my spare time, but I will say that I've reached a pretty high level of motivation. Tonight is the first evening in awhile that I've just backed off and left the computer off.
I've learned that I have to take advantage of these sprints (not to be confused with "Agile" sprints) as best I can, because they don't last. I mean, there's a reason that the current version of CoasterBuzz, not counting the many new features added since, is about 3.5 years old. There is actually quite a bit of inspired work going on lately, with sketches, prototypes, experiments and general geeky hacks.
Part of it is also the desire to stay sharp. My current gig doesn't have much opportunity for writing code, so I need to spend time outside of work doing the things that I think make me well-rounded and someone that people will listen to. Plus, there is so much in the way of new stuff to explore lately. Things I couldn't conceive four years ago are so much easier now. I feel less constrained.
Things keep getting better, like on Queer Eye. I got there earlier this time and did some extra stretching, and my shit doesn't hurt like it did the last two weeks. My left heel hurts a little, though that's something that has bothered me since college on and off. Coach ran us around a bit this time, which I absolutely love because it feels good, despite it reminding me out of shape I am.
I still have a healthy dose of feeling like I suck, but I also feel like some things are coming together. I'm starting to understand my own body motion at a technical level, which is the same thing that has served me so well in volleyball. I can see that my swing is technically fine if I just toss a ball out in front of me, but I'm not moving my feet to where I need to be when the ball is on the go. It's very different to not meet a ball in front of you, and to think about where it's going on the bounce. I have to make an extra effort to think about it.
We did some overhead swinging today, which as you might expect comes very natural. My God does that feel good. Being able to blast the shit out of the ball is very satisfying. Unfortunately, we didn't spend a lot of time serving again, and I really need to work on that.
The one point of frustration that I have is that I have the necessary agility. I'm out of shape, so it's in finite supply, but I feel it. The problem is that I'm not disciplined enough to apply it correctly yet to the game. It goes back to meeting the ball in the right way. You can't fake it and make little adjustments like you can in volleyball, because you need to make the swing of a racket part of the process to contact the ball.
Overall though, I felt empowered, like I'm heading in the right direction. It was weird to think about how, growing up, my only real athleticism came from riding a bike, which is little more than endurance when you're not doing it competitively. Volleyball started to click when I was in college, but it wasn't until I started coaching it that I really started to understand how to improve myself. The game is different here, but the skills for learning are surprisingly transferrable. I also love the feeling that comes with physical activity that doesn't feel like exercise.
The only issue long term is that this particular sport can get expensive. Court time ain't cheap, and yet I'd like to reach some point where I was consistently playing twice a week. If I can't do that, maybe I need to look harder into playing VB once a week, and get back to coaching next year.
The forthcoming Facebook IPO is a big deal in the news, and for good reason. It's going to make a lot of people very rich. This is really the first big technology IPO in a long time, and it's impossible not to compare it to the many companies that came and went in the dotcom boom more than a decade ago. The one I think of the most is that of Google.
Mark Zuckerberg does not appear to be in this for the money. He's had countless chances to be a billionaire, and passed on all of them. There is some indication that Facebook itself doesn't really need the money. However, there are enough investors and vested employees that want something back, that it is time for them to get what they're due.
The net result of this IPO is that a lot of good people will leave the company. They won't share Zuckerberg's ideals about making something great. They'll be kicking it on a beach somewhere sipping girly drinks with umbrellas. I don't fault them for that. However, it will change the very fabric of the company, maybe not for the better.
Facebook's strength is that they're able to move relatively quickly and continuously innovate. The site had changed dramatically over the five plus years it has been generally available to the public outside of schools and businesses. It's like having a child, in some ways, because you see them every day and you don't realize how much they change. They're able to evolve like that because of the "hacker" culture so ingrained in the company. It leads to quality problems a lot of the time (as I'm very fond of bitching about), but for the most part, they move fast.
This is the opposite of most companies as they get bigger. Combine getting bigger with the likely turnover that will come, and it's hard to tell if they can keep up the pace they've had. Zuckerberg said in the filing that he's committed to challenging the way that business goes, and he has a majority of voting shares to make that happen, but how will it go in practice?
There is a natural curve that companies appear to follow. Microsoft certainly got big and stupid, and this became particularly obvious when Windows Vista shipped. What a train wreck that was. Google seems like it's getting big and stupid, with stories of management waste and people leaving. Yahoo is probably the worst of the bunch.
But it doesn't have to be that way. Amazon keeps getting bigger, and they somehow manage to get better at what they do. (Actually, I can give you a lot of reasons about why I think that's the case, but that's another post.) Even Microsoft seems to be swinging back the other way, in certain parts of the company, getting lean and fast in places.
I hope for the best for Facebook and its future. The thing that most excites me about business is less about the product, and more about the processes that run the business. This is especially true for things in the realm of software development.
I was thinking the other day about how my approach to life has changed lately, specifically in the last year. I feel like I'm far more proactive about how I go about stuff, and that there might be a natural curve in how these things play out.
I suppose one could argue that I've had my successes and failures over the years, but in some ways I feel like I've been along for the ride, sitting on a boat and letting the current take me where it goes. Socially, this is entirely how I approached life, which explains why I dated so little in my college days. I wasn't deliberately trying. Professionally, I've done much of the same thing. I remember spending a year and a half in a job where I wasn't learning anything, wasn't doing anything I liked and just showed up.
Then 2007 happened. By that time, I was socially as proactive as I could be, eventually meeting a woman that I'd marry. In 2009, I sort of got a professional kick in the nuts, realizing that I could move for greener pastures. In 2011 I had all kinds of financial epiphanies about what wealth really is and how borrowing can be bad, and that led to another move and a massive shift in goal setting.
Admittedly, the professional part doesn't have the clarity in direction that other parts of my life have, but in a bigger sense, I feel like I'm not just going along with life. It feels like I'm giving it direction. In a lot of ways, I'm following an inverse curve that a lot of my friends have. Some folks graduate from high school with a grand plan that involves college, marriage, a house, 2.2 kids and a corner office. They all find out that those plans never work out as they expected, and they're often miserable until they embrace some of the chaos and unpredictability that goes with real life. With all of that advice giving to younger friends, it turns out that my way of drifting quasi-aimlessly wan't much better.
When you compare the proactive and passive life, it turns out that something in the middle is the best way to go. If you yearn for total control and adherence to the plan, you will absolutely be disappointed with the outcome. If you sit back and let life happen to you, you will absolutely be disappointed with the outcome. It seems then that embracing a little of both is the way to go.
How's that working out for me? I think it's a net win. I miss Seattle like crazy, but the proactive decision to deal with the chaos of not being able to sell my house has put us in a much better place financially. I took action on something that happened to me. I'm being an active participant without overlooking the daily moments, and I think I'm happier for it. There is still a lot to figure out, and I'll never have all of the answers, but I get a lot of peace from knowing I'm doing what I can.
I've been really excited lately to see all kinds of new personality traits appear in Simon. He's finally starting to use words in a meaningful way, even if he doesn't get them entirely right. I mean, he says, "nigh nigh" when he goes to bed. Sometimes if you prompt him to say something, he'll blurt out something close. Thank God, because we'd love to say he says something useful before he's 2 next month.
With all of this emerging personality comes a lot of crying. Not actual tears, most of the time, but a super annoying whine. He mostly does it when he isn't getting what he wants, gets frustrated or can't communicate some burning desire. Diana and I both let it get to us to some degree, and it's hard to dial back and acknowledge that this is just part of normal development.
Simon also spends a lot of time testing boundaries, including a lot of arm swinging and hitting. That's even harder to process, because sometimes he does something that actually hurts. Most frustrating is bed time for the last week or so. He pulls out all of the stall tactics, and he seems to have lost interest in rocking in our lap for a few minutes before we put him down. That sucks for us, because getting a quiet moment at the end of the day to talk to him is something we both enjoy.
Fortunately, it's not all negative. Far from it! One of the most adorable things he does now is give you a kiss. He doesn't really pucker, he just kind of plants his face on you. When he's excited, he does it with his mouth open, which is like getting slimed. He also just pulls out a kiss at random at times. This evening, while watching Sesame Street in his pre-bed wind-down, he violently jumped up and climbed up on me to smooch. No idea why he did it, but it was super cute.
He has also taken up running laps around the living room, which is pretty hilarious. He'll go around a dozen times, giggling and having a great time. Tonight he outdid himself. He did one lap around, stopped, farted, and went around again. That's my boy.
Simon is also a helper. This is also something that requires patience on our part, because he often just gets in the way. But he likes to sweep in the kitchen, help with dishes, go get the mail and empty Diana's sink cupboard of every possible hair product for her to use.
He's really a lot of fun, and I need to be more proactive in recording his antics with video. Time flies.
I was reading an article from October (I'm a little behind in my dead tree consumption) in Fast Company about design, and how the United States has kind of sucked at it in many ways for a long time. The article points out a lot of winners here that are getting it right, including the usual suspects like Apple, Nike, Herman Miller, Viking and such. What really stuck with me, though, was the opening statement about America, home to strip malls and McMansions, and furniture showrooms with a "dispiriting array of bloated pleather sofas." Having recently purchased a lot of furniture, I can identify with that.
My first real furniture, the leather set of stuff that Stephanie and I bought circa 1999, was awesome. It had well defined lines, yet it had that lost-in-a-pillow-like comfort that reminded you that you were sitting on great furniture. It was also the only set in the store at the time that didn't look like a big blob of cow flesh stuffed with squishy stuff. I always think back to that shopping trip, about why so much of what you buy looks so uninspired.
Design isn't just about looking good. It also means something functions well. Back in the days of perpetual computer upgrades, where you would open up the case and swap out parts on a regular basis, it was important that the innards of the machine were well designed. You wanted thumb screws and cables that were the right length. The parts that you normally would never see has to be functional even in those rare times that you had tough them. The case has to be designed right.
As you can imagine, being a software developer, design is super important to me. Most people think about the user interface, but that's only a fraction of the design. The code has to be loosely coupled, maintainable, testable and easy to read. In today's world, it will also interact with other stuff on wires, so the architecture has to be solid in design as well.
Even processes have to be designed. If they're inefficient or things get in the way of the results they were intended to produce, they need to be redesigned. You've encountered all kinds of poorly designed processes, frequently in government or big, stupid companies.
That's why design, in the broad sense of the word, excites me. It matters. It fits in the same category as things like craftsmanship and pride in your work. It matters, because the end result of what you do is better. It's what makes you stand out.
For all of the things that annoy me about Ohio, I was rather surprised at how relatively painless it was to get a new drivers license and plates for my car. This is generally the part of state government most of us loathe the most, and for good reason.
Washington was clever because they had clear documentation online about what you needed, and fed wait times for the licensing offices to the site as well. During my first week out there, I checked it early one morning from work and bolted out there for a 15 minute wait. The problem there is that the process is so inefficient. You bounce around to three people, and you then you leave with a temporary license because they mail the real one. License plates, registration and title are handled in completely different locations. Pain in the ass.
Ohio works electronically as much as possible now. It had been years since I walked into an office for plates, because you can handle most of it online, save for new cars our out-of-state transfers. In my county, they can do titles, licenses, plates and exams all in the same place. I had to do the written exam again (which is kinda stupid, as if Washington, and Ohio previously can't vouch for me), and it creeped me out that the computer-based test had my last license photo from 2006 or something.
None of the people were bastards, either. I actually give them a little credit, because I'm sure many people they deal with are miserable jerks to them.
Now I just look forward to them dropping the shitty plate design for the more simple, neutral version coming in December. They'll also ditch the pink drivers licenses (still can't believe that), and the new ones will match the plates in design. Although, with plates that start with "FKD," it's almost like a free vanity plate.
Half of the group didn't show up for the group tennis lesson tonight, so that meant there were only three of us, plus the instructor and his teenage sidekick high school sensation. That's good news for me, because as I said last week, more feedback helps me a lot, as does repetition. I got a lot of both.
This time, I didn't feel like I sucked. I could feel improvement. The swing is getting more natural, and I'm sending fewer balls into the balcony. Once again, my biggest challenge is to unlearn a lot of what I know from volleyball in terms of hitting mechanics and position relative to the ball. For example, I need to learn where my body has to be relative to the ball, so I can make an optimal swing at it. Lateral movement is fine, but moving forward and backward is hard for me. I'm sure I'll figure it out eventually, because like volleyball, you want to be in the right place ahead of time, to make the best contact you can.
Serving is a completely new motion for me, and it will take awhile to get that figured out. Poor tossing is already my biggest problem.
We did a little bit of basic king-of-the-court, and it was exactly what I needed to feel like I was getting somewhere. When I have to move to the ball, with something at stake, I don't overthink hitting the ball. Mixing it up with short stuff here and there helps too. The instructor said he was impressed with my speed, though my body is pissed at me now for it. In the prime of my coaching days, speed was often all I had against six-foot teenage girls, but I was in a lot better shape then!
Overall, I left the court a lot happier this time. I'd really like to be competitive within a year or so, and tonight it felt like that was possible. I hope I can stick with it.
And I still need to buy a racquet.