While spending the last week in Seattle, I realized that I've been pushing myself too hard to not do anything fun. By that, I mean that I've been unwilling to spend a lot of money made from my regular day job to do stuff. I decided early in the year that I wanted to save half of my take-home pay. Me, the guy who used to bust out the plastic with complete disregard for how I'd pay it off. In setting this goal, I've endured a self-imposed ban on doing things I enjoy.
Two things have caused me to abandon that goal. The first is that I have crappy health insurance, and I've had to pay a whole lot out of pocket to cover the costs. Between Simon's pneumonia and Diana's shoulder issues, I'm well on my way to hitting the deductible. I never realized how good I had it with previous insurance. This issue makes it hard to hit the 50% goal without giving up everything else that might be interesting and fun. The second issue is that it took until September to realize that we just haven't done much in the way of travel. The trips we have taken we probably wouldn't have if it weren't for family encouraging us to do so (which by the way means we have good family).
Now, I've made two decisions. Revise the savings goal to 40%, and stop being such a stingy dick about doing fun stuff. It's time to let go.
So we're doing fun stuff that ranges from a cruise, to Disney World, to weekends away. I don't win any awards for staying home all of the time while Simon plays with his abacus and Diana knits a sweater. I don't know where I get this feeling that I should just be satisfied with being a responsible adult doing the same damn thing every day.
It has been a very long time since Garbage has been on the road. As a dedicated fan, rolling with their evolving style from album to album, and crushed by the apparent dissolution of the band in 2005, it's an exciting thing to get a chance to see them again, more than seven years since I saw them grace the stage of the Agora in Cleveland.
First off, let me say that I'm no fan of the venue. Maybe it's my age, but standing-room-only concert clubs appeal to me about as much as riding public transportation with naked people who don't know what a shower is. I'm not a tall guy at 5'8", and my wife is 5'3". We spent the first four songs about 20 feet off of stage right, then found a really fantastic spot at the back of the bar, with a clear view of the stage. Unfortunately, the acoustics of the Showbox SoDo completely suck. The building seems to absorb all of the midrange, so if you're anywhere not near the speakers, it doesn't sound good at all.
Screaming Females opened, a trio fronted by this tiny little woman who could sing like few rock stars can, and fuck up a guitar with skills few possess (then between songs a tiny, cute little voice would say, "We're Screaming Females from New Jersey"). They reminded me a little bit of early Smashing Pumpkins, which is to say that they were really solid and that Billy Corgan mostly sounds like a small woman. I was into it.
Garbage played for nearly two hours, cranking out 21 songs. That's the advantage of having something like 80 published songs, that they can fill up a whole lot of time with excellent songs. What's interesting is the distribution of the songs, in terms of albums. Most were from the first two albums and the newest one. They only did two from Beautiful Garbage ("Cherry Lips" and "Shut Your Mouth"), and one from Bleed Like Me ("Why Do You Love Me"). Meanwhile, they dropped "The World Is Not Enough," their James Bond theme, which disappointed me as they've been playing it on other dates, but added "Hammering In My Head." It's almost like they're not as into the "middle" albums as much, though I suppose if I were picking favorites, I'd probably make similar choices.
It's always neat to hear new songs performed live for the first time. "Automatic System Habit" really gets the crowd jumping, while "Blood For Poppies" and "I Hate Love" also represent well live. "Man On A Wire" wasn't as good. However, the crown jewel live, for me, was "Control," which has such a big and epic sound to it.
Along with the 2005 show I saw in Cleveland, I can't tell you how impressed I am with Shirley Manson as a singer. When I first saw them on November 17, 1995, she appeared uncomfortable on stage and pitchy (to use the singing competition parlance). These days she commands attention, and I think if she wanted to, she could kick your ass. Most impressively, she can yell at you on a song like "Shut Your Mouth," and completely seduce you with a song like "Milk." She did play a Terminator on TV, after all.
The band in general has always played in a very clean and polished way, but this time around it just feels better. Perhaps the statements in their recent interviews give a clue as to why this might be. Free of a shitty record company, they're really able to do their own thing. They talk about having recorded songs in single takes and getting back to the music. Even their staging is stripped down to a video projector and a house light plot, a far cry from the more dynamic (and frankly more interesting) light shows they used to tour with.
What keeps me coming back to see them is their ability to take a song that's a decade and a half old and make it new again. The arrangements are different every time they hit the road. I don't think "#1 Crush" has ever been consistent from one tour to the next. "Only Happy When It Rains" was particularly awesome this time, with the first verse being slower and stripped down. And of course, when they wrap up with "Vow," you never know just how much noise it will involve.
Garbage has a lot of songs that deal with not fitting in, and in the sense that the record industry and radio never quite knew what to do with them, the theme works even if the lyrics are about more personal issues. Still, it's striking to me that this is a band that sells millions of records and sells out every show. I hope they continue to do so. They're really fun to see live, even in a shitty venue.
We've been back in Cleveland now for a year. You can tell just by the title of this post that I consider it a move "from" instead of a move "to." By extension, you can probably gauge what my feelings about that move are.
To recap, a visit to Cleveland in July of last year, for the Give Kids The World fundraiser at Cedar Point, led to a strange bout of nostalgia. We felt socially engaged in a way we had not in awhile. In only a few weeks, we some how talked ourselves into believing that there were two really good reasons to move back. The first was the obvious financial gains, with only one home to pay for. Then there was the idea that we would be back in our circle of friends.
So how did all of that work out? The financial bits went almost exactly as planned. When you erase almost $30k in annual housing expenses, duh, you're going to have a very different outlook with money. Having to use a lot of savings for a new car downpayment, after our Christmas Eve accident, was not an expected expense, but it wasn't bank crushing. Also unexpected, after it "didn't work out" with the company I moved to work for, I quickly discovered that I didn't have to settle for a lower salary. I was able to find a gig that matched the pre-stock-cash shift Microsoft level. All things considered, the financial prospects worked out.
The social wins ended up being less robust. Frankly our connections did not ramp up the way we expected. For me specifically, it seems like everything socially relevant for me was centered on Cedar Point. In fact, I would go as far as to say that most of our best times have been at or near the park this year. While that's fantastic, it hardly constitutes a majority of our time.
At the time we moved, we also viewed Cleveland as an interim step, to stay there long enough to get the house to a sellable place, in a market where it could indeed by sold, and then move on to a warmer place. A great concern has sprouted up since then, namely that Florida schools tend to suck. While I very much enjoy Central Florida, I think it's probably off of the table.
Which brings us back to Seattle, in some ways quite literally. As much as I say that Cleveland sucks or that I "hate" it there, I'm probably not being very fair to Cleveland. It's not that it's a terrible place, but rather that we're just done with it. I spent so much of my life in and near that city, and there isn't enough there to challenge me professionally or socially.
In fact, the issues with our move are less about Cleveland and more about Seattle. As it turns out, the fresh air and mountain views are a pretty big deal. Our parent group is awesome. The schools are fantastic. Simon's closest cousins are there. Important friendships are too. The professional vibe is entirely different, where even the stay-at-home moms in our group lead you to interesting technology discussions. There are so many wonderful places to go. We just didn't realize the magnitude of what we were leaving.
The conclusions about whether or not the move was the right decision are complicated. As our savings grow, there's no denying that the financial benefits are enormous. The professional score card is ambiguous at best. The social scene seems to lean surprisingly back to Seattle. Then there are the little things, like living in a neighborhood with a lot of playgrounds, wide paths and a local watering hole to frequent.
I suppose the hardest thing to own up to is that maybe we got it totally wrong. It's hard to admit, "Shit, I tried the 'grass is greener' thing and got it wrong." No one wants to admit that they pursued a life changing decision and was wrong.
What does it all mean? It's hard to say. For me, I could probably be relatively content living anywhere if I landed the best job ever. I don't think I'm in that job at the moment. The biggest change is that I tend to view decisions more from the perspective of how they affect Diana and Simon, which sounds awesomely selfless, but in practice might be self-destructive to some degree. I guess what it really means is that I have to think a lot harder about what our next move really involves.
I've come to realize that I'm a high maintenance house guest. I suppose there are worse crimes to be guilty of, but I don't think I'd want me to stay with me, if I were someone else. (That sure sounds schizophrenic, I know.)
The first problem is my dietary habits. As it is, I'm a picky eater, but if that weren't enough, I don't eat red meat. I don't actually eat any meat that isn't poultry, and even then it has to be white meat. So chicken breast and turkey white meat. That's not a restriction that most people impose on themselves.
The meat thing is a choice, but the allergy thing is not. I'm strangely very sensitive to smells. Sure, there's the obvious things like flowers and certain plants, but I also react strongly to certain scents, like candles and incense, or worse, certain fabric softeners and laundry detergent. The latter became obvious to me about four years ago when I stayed with my future brother-in-law and their bed sheets made me completely miserable.
Sometimes, it's my house guests that get to me. My in-laws stayed with us shortly after Simon was born, and one of them had a cologne or perfume that just made me miserable.
Trust me, you don't want me staying at your place.
If you follow technology news, most of the sex is about startups that come up with some idea that they think is novel, get millions of dollars in funding, and then the demise of the company is a footnote that's barely covered. Every once in awhile, one of these things gets some traction, some dudes get rich, and then the company flames out. Just one time, you end up with Facebook.
But the fact is that there are hundreds of huge companies that hire more software developers and produce more code, each of them more than all startups combined. I wouldn't be surprised if the math worked out that there were tens of thousands of smaller to medium sized companies, where technology is not their core business, that are in the same boat. As someone who has worked in most of those situations, I can tell you that the quality of the work being done is mostly awful. These projects result in stuff that is brittle, hard to change, prone to failure and impossible to debug.
I've assumed that things aren't really this way, but I think I might be the victim of my own bubble. I read a lot of blogs by smart people, consult with a network of really good developers, and have had the chance to work with excellent people. Even the less experienced developers I worked with at Microsoft were good. I suppose I've been lucky, but I've had enough gigs in between to fully appreciate how bad a lot of stuff is in the wild.
This is an interesting problem. As I've said before, I feel that the vast majority of development work compares favorably to the manual trades that dominated the workforce prior to the rise of computers. I don't think you need to be a math genius, and some of the best developers I've worked with didn't go to college. I theorize that a greater amount of attention to mentoring and teaching people the craft of software development will ultimately strengthen the profession.
I think there are two huge opportunities out there. If you want to work inside of a large company, I think you can make a compelling case for a more specific mentoring and education program. In the .NET development universe that I primarily inhabit, there is no question that unit testing alone forces so many fundamental principles (loose coupling, dependency injection, single responsibility, etc.), that there are obvious gains leading to a higher level of supportability and maintainability. There is research to back this up. The challenge is to find champions (i.e., managers or other people with fiscal responsibility) for your cause. Then you have to alter your culture to embrace it. If your company buys into this, you could be a hero.
If you're more the independent type, the second opportunity is to push for the very same thing with more of a long-tail approach, servicing the smaller and medium sized businesses that can't really afford to start their own internal schools and mentoring programs. There's apparently even a market for this among individuals who want to learn, as evidenced by The Starter League in Chicago.
In both cases, I'm starting to slowly see self-awareness about code quality problems in organizations of all shapes and sizes. It's like there are lightbulbs turning on, where people are thinking, "Gosh, so many of our software projects fail. Perhaps we should do something about that."
I'm not sure what it is exactly that makes the anniversaries of certain events so ridiculously difficult to ignore. I mean, some I tend to forget. I couldn't tell you the date of my divorce hearing (though I remember it was near my birthday and I just returned from Vegas with my new girlfriend at the time). Of course I can remember my son's birthday.
Next week is the one year anniversary of moving back to Cleveland. The evaluation over this important decision has already begun, pitting the good against the bad. This one is weighing pretty heavily on me. It's such a toss up about whether or not it was the right decision. I suspect that in the end, it will just be a neutral decision.
Still, a year is a long time to evaluate something and make course corrections. It's funny that I know this is true in business, but in the rest of life I often forget. A whole lot can happen in a year, and it's easy to get caught playing spectator. It's important that we don't wait a year to reflect on stuff.
Simon is getting very tall. He's about 38" now, around the 90th percentile for kids his age. He's freakin' huge. He's getting hard to carry, or restrain when you're trying to get him dressed and he's being uncooperative.
But the worst thing is that, coupled with his current hitting phase, he's constantly hitting me in the balls. The arm swinging I can generally avoid, but he also likes to put his arms in the air and drop a coordinated attack on you. If I'm sitting, this means he's going to nail me in the nuts every time. If he runs up to me standing, he's at the precise height to hit me in the balls. To add to the pain, he also has a new habit of head butting, and of course, that puts my junk at just the right height.
As men know, getting hit in the giggleberries hurts to the point you want to throw up, but it also floods your body with hormones that can send you into a rage. No one wins. I find myself yelling at Simon, and immediately feel bad about it. He doesn't mean it, but he's not getting the message that it hurts like hell.
Apple released some updates today, both to the desktop and mobile operating systems. Against my better judgment, I installed both.
First, on the desktop, there was actually firmware update for MacBook Air I just received. It says it fixes issues with using Boot Camp (which I don't use) and something about NetBoot and ethernet. All I know is that the fan doesn't sound like a jet engine when the CPU gets a little warm, which could just be the result of replacing the firmware and something being reset.
The update to OS X "Mountain Lion" seems to have a lot of minor updates, but chief among them is one that brings Facebook integration to the OS. Inputing your account is not intuitive or easy to find, because it's under the "Mail, Contacts & Calendar" preferences, of which Facebook is none of those things. Windows 8 and Windows Phone just call this "accounts."
The other completely weird thing is that the notification bar never seems to actually retain anything. I see the pop-up notification, but then when I open up the notification pane, nothing is actually there. I've checked the preferences, and they seem to think there should be something there.
Mac nerd sites say that battery life is greatly improved, but since I've only had the Air for a week, I guess I wouldn't know the difference. If the estimate the machine is giving me right now is correct, then eight hours while not using a Windows VM appears perfectly attainable. That's fairly outstanding. Of course, now that they've declared war on optical drives and mechanical hard drives, it's clear that things are mostly made of batteries now. I'm definitely not complaining.
Meanwhile, iOS 6 is out, so I updated my iPad. It also has centralized Facebook connectivity. Yeah, I'll be a smart ass and mention that I remember when Windows Phone had it two years ago. The biggest changes are that Siri is now available for the third generation iPad, and there are many smaller tweaks all over the place. Siri is neat, but talking to your iPad I'm sure looks like shooting video with your iPad. They also replaced Google's mapping with their own, and I'm not sure I like it better. The Internet is abuzz with people who hate it. I've never actively used the iPad for mapping, because my car already does that.
I think iOS is finally inching toward my complaint that it's too app-tastic when there should be more account integration. I care about that less in OS X, but they're finally understanding what people use computers the most for, in the mobile case in particular. Still, I can't help but feel like the way iOS presents itself to you is a barely evolved paradigm that launched five years ago. The more I use Windows 8, the more I'm itching for a tablet based on it. I love turning it on and finding it instantly useful, before I launch a single app. It seems like such an obvious thing now to replace a static icon with a view into the app. Even Minesweeper is going to tell me about the daily challenges without opening it!
It's such a weird time for my product likes and dislikes. Three years ago, if it had an Apple logo on it, I couldn't wait to have it. Since then, Windows Phone happened, and now Windows 8, and at least the software side of things has completely changed my view. I have zero desire to go back to iPhone. Then the whole fiasco with the screens on the Retina MacBook Pro has soured my faith in their computer hardware, for what should have been the greatest computer ever. (Fortunately, the MacBook Air has saved their hardware reputation, and I really do love it.)
It occurred to me today that I'm bored. Most mornings I wake up, excited to start my day, but then nothing is really engaging other than my little family (the youngest member of which has been a handful lately).
First there's work. It's kind of a perfect storm of boring right now, while a new manager is coming in, and I'm in a weird limbo state interviewing for a new position but not getting any feedback at all about what their plans are.
My social life is kind of poor right now, too. In fact, it entirely revolves around Cedar Point, because it's the only place I ever see anyone. That's not a bad thing, it's just that the social interaction outside these four walls during the week is pretty much limited to the bartender at the Winking Lizard, where I have lunch once or twice a week. Her quitting smoking is going well, if you're curious.
My little software projects are actually kind of interesting, but I do need a break from them. Project "ServerMetric" is actually going pretty well, and I'm up to the point where I need to write code to take money and then make it pretty. I think it's the first thing I've written from scratch ever, for myself, that has had to be "day job" quality, so some of it is a little tedious.
I haven't been playing tennis, or video games. I haven't shot any video lately or done any screenplay writing. It's like I'm too bored to do any of those things! I'm not unhappy or depressed or anything, I just can't get engaged.
Obviously, I need a vacation, and I plan to take one very soon.
One of our most cherished freedoms in the United States is our right to free speech. I can't think of anything else that is more representative of what we stand for. We accept that the good comes with the bad to a degree, meaning that even flag burning and hate qualifies as free speech.
On one hand, the power of free speech has radically changed things for the better. From the abolishment of slavery up through the civil rights movement, free speech has been critical to our national evolution. It has exposed corrupt politicians at every level. I think we take for granted just how powerful this is.
At the same time, we also tend to ignore the responsibility that comes with it. The most recent example of this responsibility is the recent anti-Islam short film, produced by Americans. At home, we can just blow it off as a bunch of fringe weirdos, but beyond our borders, it can be taken out of context as representative of a national position. Nothing incites radicalism like radicalism, and one could argue that this nonsense got Americans killed.
What you think about religion or foreign policy is irrelevant to my point. The point is that free speech comes with a great amount of responsibility, because in the digital age it has no boundaries. Think carefully about what you have to say, because the consequences can be greater than you imagine.
I've chronicled the issues I had with the Retina MacBook Pro that eventually led to returning it. That's a bummer, because it was fairly awesome to develop with (read that for general impressions about running Parallels for Windows 8 VM's). It was easily the most awesome computer I've ever used, if it weren't for the whole screen problem. My disappointment with Apple over the whole thing is pretty serious, but no amount of wishing was going to make Apple's quality problems go away.
I looked at the standard MacBook Pros, and by the time you put an SSD in them, they weren't very cost effective relative to the Retina model and the MacBook Airs. Even more surprising, when you get down to it, is that you're only giving up a few things from the Retina to the air: Dual-core instead of the quad-core, no discreet GPU, and of course, no Retina screen. Oh, and the Air, with the 8 gig RAM and faster i7 CPU options, was $500 (and a pound and a half) less than the Retina. The RAM and SSD is the same stuff, and the CPU is close in clock speed if not in cores. In other words, perhaps it wasn't the compromise I thought it might be.
So I took the same Windows 8 VM running under Parallels and ran the Windows Experience Index numbers. They're pretty much exactly what you'd expect, other than the CPU which I would have thought would be lower. The graphics are lower without the discreet GPU, and for the purpose of development, not a big deal.
|Retina MBP||13" Air (i7 2 GHz)|
The VM on the MacBook Air is shockingly fantastic. I won't rehash the dev story with the Retina, but I will write about what's different.
With a smaller screen, I wasn't sure that I wanted to be staring at that all day at my desk, so I bought the 27" Thunderbolt Display. Yeah, it's not the cheapest 27", but with the Thunderbolt connector and power, it's essentially a convenient dock with USB3, ethernet, FireWire and Thunderbolt. As a three-year owner of a 27" iMac, the giant screen is familiar and awesome.
As for the built-in 13" screen, at 1400x900, it's higher resolution than a standard 13" MBP, the same as a stock 15", and the same as the "virtual" default resolution of the Retina machine. So essentially, there isn't much of a surprise here. It's more than adequate to use Visual Studio full-screen. Also, Parallels, when displaying the VM full-screen, is easy enough to Cmd-Tab in and out of. I have a dead pixel, but I've decided it's not a big enough deal to worry about it.
I've also made an interesting observation about productivity with a smaller screen. I think for as long as Windows has supported it, and employers have paid for it, I've used two monitors. That typically means spreading out Visual Studio, browsers, chat windows, and of course, Outlook. It seems like a good idea, but what I'm finding is that all of this stuff in your view is a distraction that really gets in the way of your focus. When I'm writing code with the laptop on my couch, VS full-screen, I've noticed that I get more done. It's something I'm going to pay more attention to.
As for the battery, while running the VM, I tend to get a little over six hours. With little or no VM use, I've had somewhere around eight hours. It's about the same was what I used to get with my 2009 17" MBP.
Heat issues haven't been a serious problem, though I've seen the CPU approach 200 degrees Fahrenheit. The bottom of the unit never cracked 100, however. The fan got pretty loud, but it was very temporary, and, not surprisingly, caused by something in Flash in the browser. A 1080p H.264 video running in the QuickTime Player uses about 20% CPU, and doesn't get too warm.
And did I mention how much lighter it is? I didn't realize it at the time, but while the Retina was smaller than my 17", it sure was heavy.
The bottom line is that the disappointment with the failure of the Retina machine is becoming a fading memory with the thin lightness.
It's amusing to some extent to think about the ways our bodies change as we age. When you're a kid, they're all pretty exciting, as you keep getting taller and stronger. At some point you start growing hair in places you didn't, and then you start wanting to hump anyone that will let you.
Somewhere around 21, things start to slowly go the other way. I once saw it described as the point at which you stop growing and begin to die. That's a little morbid, but I suppose it's not far from the truth. You keep growing hair in places you didn't have it before, but unfortunately you also start to lose it where you'd prefer to retain it.
The thing that I noticed when I turned 21 was that I could no longer get away with eating like whatever I felt like eating. Granted, I didn't act on this information probably until I was 32, and I didn't really believe it as a required change in lifestyle until the last year or two. I haven't really gone all-in on this, and I don't know if I will, but it's nice to at least see that every few weeks the scale clicks down a notch. It's even more strange to admit that almost every meal at a restaurant involves too much food. It's actually a good thing when over-eating starts to make you sick.
But it's the other things that I'm just starting to notice now, as I approach that magical age of 40. Sometimes, shit just hurts for no particular reason. It could also be due to the inconsistent nature of my physical activity, but I think it's partly age. Given the arthritis that my mom has, I fear for my joint future, especially when I wake up after a day of walking to find my ankles temporarily hurt. I similarly worry about my wrists, given my trade, though it has been a dozen years since that really troubled me.
This is the age where you start to wonder what your genetic cards are, but that lottery isn't always a great indicator of anything. I mean, my dad is pretty much legally blind without glasses, and my mom has needed them since she was a teenager. While I haven't had it tested in awhile (if you don't count the BMV this year), everything is just as sharp today as it was when I was a kid. Still, my family has some amount of heart disease on one side, cancer on the other. Not much you can do about those beyond being proactive.
The harsh reality is that I need to establish a basic fitness routine if I don't want to be a mess when I get older. The basic screening implies that I'm predisposed to being highly functional, with a fantastic resting heart rate and spot-on blood pressure. I'm on the high side of normal for cholesterol even, and that's without the basic routine. Still, if I'm carrying this excess 20 pounds, it's not going to be good for long-term cardiac health, or the joints that have to carry those pounds around. And you know, 20 pounds is nothing compared to people faced with 50 or even 100.
I'm actually considering looking for a personal trainer. I need someone who can teach me how to take care of myself as part of routine maintenance. I've learned how to eat to the extent that I can watch calorie intake without explicit counting, but I need help understanding the calorie burning side of the equation, and how best to spread that across the parts of my body that need the most attention. I definitely need to pay attention to joint health so as not to be destructive when I think I'm helping. I've seen way too many injuries that end up being extraordinarily harmful. My step-dad's knees have been toast for years, and that lack of mobility has not been good for his quality of life. (Side note: That's why I think this group-think and cult-like fitness gym thing is potentially harmful, because these aren't doctors and people with degrees in sports medicine telling you what to do.)
The biggest challenge is not the physical process itself. I don't think it ever is. It's the psychological barriers that prevent you from committing to doing it. Since I don't see a chance to play volleyball for two hours five days a week, I obviously need to take a different path.
It occurred to me that, while it has been out on MSDN for about a month, Windows 8 is not technically "out" yet. Since that day, I've been running it as my primary operating system for development work.
As my friends and dear listeners know, I became something of a Mac guy in 2006 when the first Intel MacBook Pro came out. I liked OS X even prior to that, and being able to run Windows on the same machine made it a no-brainer to buy the shiny aluminum hardware. It just kept getting better, especially in terms of battery life. Heck, I even had Microsoft buy me a MacBook Pro when I worked there.
Windows Vista was such a disaster, and I kept developing on Windows XP up until late 2009, when Windows 7 was close to final. That's when I started at Microsoft, "dog-fooding" in full swing. I was pleasantly surprised at how solid it was. In some ways, I was even relieved that Microsoft corrected the Vista mess.
Windows 8 was going to involve some radical changes, most notably the construction of an interface that was obviously inspired by the excellent Windows Phone 7 interface, once called Metro, now just called "the Windows 8 interface." It was going to be touch-friendly, and a variation would run on tablets as well as regular PC's. For everything "legacy" or desktop oriented, you could still run stuff from the traditional Windows desktop.
The first thing I will say is that it's just... odd. It's not odd bad, it's just different. Like a phone, you press the Windows key, and you're on that big Metro, er, Windows 8 experience. At first I couldn't help but think, "This is kinda stupid if I'm not using a tablet or a touch screen." But then if you start to think of it as having two purposes, to give you the "at a glance" information of live tiles, and to launch stuff, it actually makes sense. If in OS X you're used to pressing Cmd-Space and start typing to launch an app, you hit Start and start typing in Windows to do the same.
Since I spend most of my time with development tools like Visual Studio, Windows doesn't look all that different to me. What I do notice, however, is that everything seems a lot faster, from boot up to app switching. The memory footprint seems consistently smaller as well. It seems like I've always got free memory in the 4 gig VM's I run. Of course, that might also be a lot of tweaking from Visual Studio, which I have open most. Regardless, the performance of Windows is pretty stunning.
Where it will obviously shine the most is on a tablet. My bro-in-law ran the consumer preview on his Samsung tablet, which is a full-blown PC, and after seeing that, I get it. In fact, it's what really started my hating on the iPad for being, well, iOS, the icon grid OS. Metro is so much more evolved and useful. It's fun to play around between instance of getting work done, but I really think the money spot for this new look involves touching, and a tablet.
There are a couple of things that may trip people up. There will be two flavors of tablets for Windows 8. First you've got the kind you would expect, running on low-power ARM processors, conceptually similar to the iPad. Then you've got those that will be full-blown PC's in the tablet form factor. The ARM machines will not run all of the stuff from the beginning of time that Windows runs. That could be difficult to teach people. On the other hand, people get so app-tastic about their devices, that maybe it won't matter.
The other thing that feels missing is that it doesn't seem possible to "deep link" some things and pin them to the start screen. It varies by app and function. For example, I can't pin a "me" tile like I can on Windows Phone, or specifically, a tile for notifications. Maybe I'm doing it wrong.
All things considered though, I'm amazed with Windows 8, even if it's true beauty will be on the forthcoming tablets. Even if it were just a desktop endeavor, and you really only use the traditional desktop apps, it's definitely snappier and prettier. Much better default font choices in particular. Live tiles are just as awesome on a bigger screen as they are on the phone. It will be interesting to see how consumers react.
I figured I'd wait to hear what Apple was doing with the next iPhone before writing some thoughts on the smart phone scene. Not that I expected anything that would sway me toward buying an iPhone, but I felt it was important to see the whole scene.
The new iPhone is thinner, faster and bigger, and supports LTE. It comes with iOS 6, which is also a big set of incremental improvements. I have to say that it's the first iPhone that doesn't have a gee-whiz feature set over the previous version. In fact, a lot of what's new is just catching up to what some of the Android, and even some of the WP 7.5 phones, already have. The world is understandably annoyed that they ditched the dock connector in favor of some new proprietary connector that's not the micro-USB that every other phone for the last six years has used.
My issue isn't so much the hardware as much as I just don't like iOS the way I used to. I don't feel like it has evolved, particularly as it should have on a phone. Yes, that perception is colored by using Windows Phone for the last two years.
Android phones have a lot of interesting hardware choices, but the fragmentation and inconsistent support by the carriers concerns me. The OS feels very me-too to iOS, only without the stronger sandboxing and protection against rogue apps.
Windows Phone, until last spring, suffered from the opposite problem of the other two platforms. I loved the OS, but the hardware was a big pile of suck. The Samsung I've been using has been OK in terms of the screen, but I was never crazy about it. Finally, Nokia started making some really solid phones, and Samsung caught up too.
There were two solid announcements, one from Samsung, with a beautiful device, and another from Nokia which makes improvements on the Lumia from earlier this year. The new 920 really sealed it for me when they revealed it had an f/2 lens with optical image stabilization. Hopefully the image quality matches the specs. Nokia is bundling a lot of exclusive apps, too. And it comes in red. :)
I'm sold on the platform, and I'm pretty thrilled to see a variation on it coming to tablets. My only concern is the apparent late finish of the OS. I'm disappointed that the phone folks in Redmond seem to be working more like Office and not like the agile parts of DevDiv.
That's a good question, especially when it comes to 9/11, because relatively few of us were materially affected by what happened that day (assuming you don't count trickle-down events like unemployment, war, and such). In a bit of irony contrary to the "never forget" meme on the Internet, which is like suggesting you could forget someone cutting off your arm, I read a blog post yesterday by a woman who was a block away from the World Trade Center when it came down, and she's spent the last decade trying to forget what she saw that day.
Something like a terrorist attack that killed thousands of people certainly can stir a bit of empathy, but like the woman who was there, it's not likely we can see it the same way via our TV's. There are a range of other things we encounter electronically as well. For example, a friend had a baby yesterday, and while there are happy moments captured in photos on Facebook, it's certainly not the same as being there.
This begs the question, does our electronic connection to people and events cheapen our lives? My take is that, like so many other things in life, it's not a binary condition. Unless we never leave our houses and interact with others, it's not that these connections lessen the value of our lives. Instead, these connections simply add to our lives, not replace those that are front and center, in the flesh. I think it's a valid point that these connections are different, and most are not as intense or personal as those in "real life," but it doesn't mean they're cheapening the whole of our experience.
I saw a link recently to a book about the top five regrets dying people have, and I couldn't help but wonder how I was doing with those. Apparently the regrets are as follows:
I'm happy to report that the last three are non-issues for me. Working too hard, not expressing my feelings and not keeping in touch are hardly struggles for me. The first two, however, are a mixed bag.
Living a life that is true to yourself can be a really hard thing, in part because it's hard to even define what that means. I tend to declare that I don't care what other people think, and sometimes that's true. There are other times where I know I do care. I've avoided certain fashions and body piercings because of what others might think. On the other hand, I've always bought (mostly) cheap cars and a reasonable house because I don't care what other people think.
Appearances aside, being true to yourself is more deeply rooted in the expectations you have of yourself. I want to be a good husband and father because I expect it, not because society wants that. We ask a lot of ourselves, and it's hard to say if that means we're being true to ourselves. So many things we do come from some kind of cultural programming or domestication, that we didn't consciously choose.
It's worth noting that the context of death bed regrets are little different from in-the-moment actions. It's easy to say you'd do things differently when you're near a point where you won't do anything.
Wishing I'd let myself be happy, that's a hard one. I remember thinking very often in 2010 that I was happy in a way I had not previously known. I was (and continue to be) in a great marriage, with a wonderful child, and a job I didn't despise. I got to see mountains every day. Did I allow for that happiness, or did I take action to make it? I've spent the last year wondering if the decisions I made about moving and career have been right, and I feel like I've been in a limbo state of happy-non-happy. In this case, I'm not sure I'm allowing it.
These are good points to think about periodically. I understand our time is finite. We want to make it count because not doing so calls into question why we bother at all, and that's not a dark place anyone wants to go.
Simon's first roller coaster was Tiny Toot at Silverwood, in Idaho. Wouldn't have been my first choice, because as a powered ride, it doesn't so much in the way of coasting. But whatever, it counts, and I got the credit, too. I was thrilled today to take him on Jr. Gemini at Cedar Point, which I haven't been on myself since I was small enough to ride without an adult.
Simon was cheering as the train came back to the station, and all of the kids on there clearly had a good time. Fortunately, we were able to sit in the front row as the first up for the next ride. I say fortunately because the trains are impossibly small, even for someone of average height, like me. Simon was a little unsure of it, with a good solid hold on the lap bar, and I think it helped that the seat belt was nice and tight.
As we started up the hill, he seemed OK with the whole thing. He continued to be OK through the big drop, but at the top of the next hill, when it kind of lurches back down, he was not thrilled and started to panic a little. By the time we rolled back into the station, he was OK again, but put his hands up and indicated, "All done, all done." So we got off while everyone else did another lap.
I was proud of him though. I won't force him to ride it again, but I will ask him when the opportunity arises. He followed the ride up with Snoopy Bounce, and seemed like he wanted to ride. I don't think he's comfortable really exploring it with all of the other kids in there, but he stood at the interest and did some jumping, and seemed pretty proud of himself. Then he came back out, got his shoes from the cubby, and brought them to Diana.
Other than that, we did a lap on the train, and he seemed to enjoy that. It was a nice little family evening at the park. I finally met up with one of the guys I've known virtually via CoasterBuzz for years, who has hooked me up with a lot of tickets over the years, but never worked the day I was at his park.
I'm admittedly not enthusiastic for Cleveland, and I hope that living here is not a long-term arrangement (unless the best job ever presents itself, whatever that might be), but the one thing about summers that I just can't deny is awesome is hanging out at Cedar Point. That I get to bring my little offspring there is awesome every time. It doesn't even matter that I don't get to ride. He loves to walk around, hold the exit gates for people, say "weeeeeee" when people ride coasters, and, as we discovered tonight, is really into live singing. Dragster scares the shit out of him, but I think that's mostly because it's loud.
I hope he's up for some Friday Halloweekends this year!
I've been sitting on this for a long time, particularly as my opinion has changed dramatically over the last few years. That I've encountered more crappy code than maintainable, quality code in my career as a software developer only reinforces what I'm about to say.
Software development is just a trade for most, and not a huge academic endeavor.
For those of you with computer science degrees readying your pitchforks and collecting your algorithm interview questions, let me explain. This is not an assault on your way of life, and if you've been around, you know I'm right about the quality problem. You also know the HR problem is very real, or we wouldn't be paying top dollar for mediocre developers and importing people from all over the world to fill the jobs we can't fill.
I'm going to try and outline what I see as some of the problems, and hopefully offer my views on how to address them.
I think a lot of companies are doing it wrong. Over the years, I've had two kinds of interview experiences. The first, and right, kind of experience involves talking about real life achievements, followed by some variation on white boarding in pseudo-code, drafting some basic system architecture, or even sitting down at a comprooder and pecking out some basic code to tackle a real problem. I can honestly say that I've had a job offer for every interview like this, save for one, because the task was to debug something and they didn't like me asking where to look ("everyone else in the company died in a plane crash").
The other interview experience, the wrong one, involves the classic torture test designed to make the candidate feel stupid and do things they never have, and never will do in their job. First they will question you about obscure academic material you've never seen, or don't care to remember. Then they'll ask you to white board some ridiculous algorithm involving prime numbers or some kind of string manipulation no one would ever do. In fact, if you had to do something like this, you'd Google for a solution instead of waste time on a solved problem.
Some will tell you that the academic gauntlet interview is useful to see how people respond to pressure, how they engage in complex logic, etc. That might be true, unless of course you have someone who brushed up on the solutions to the silly puzzles, and they're playing you.
But here's the real reason why the second experience is wrong: You're evaluating for things that aren't the job. These might have been useful tactics when you had to hire people to write machine language or C++, but in a world dominated by managed code in C#, or Java, people aren't managing memory or trying to be smarter than the compilers. They're using well known design patterns and techniques to deliver software.
More to the point, these puzzle gauntlets don't evaluate things that really matter. They don't get into code design, issues of loose coupling and testability, knowledge of the basics around HTTP, or anything else that relates to building supportable and maintainable software. The first situation, involving real life problems, gives you an immediate idea of how the candidate will work out. One of my favorite experiences as an interviewee was with a guy who literally brought his work from that day and asked me how to deal with his problem. I had to demonstrate how I would design a class, make sure the unit testing coverage was solid, etc. I worked at that company for two years.
So stop looking for algorithm puzzle crunchers, because a guy who can crush a Fibonacci sequence might also be a guy who writes a class with 5,000 lines of untestable code. Fashion your interview process on ways to reveal a developer who can write supportable and maintainable code. I would even go so far as to let them use the Google. If they want to cut-and-paste code, pass on them, but if they're looking for context or straight class references, hire them, because they're going to be life-long learners.
I doubt anyone has ever worked in a place where contractors weren't used. The use of contractors seems like an obvious way to control costs. You can hire someone for just as long as you need them and then let them go. You can even give them the work that no one else wants to do.
In practice, most places I've worked have retained and budgeted for the contractor year-round, meaning that the $90+ per hour they're paying (of which half goes to the person) would have been better spent on a full-time person with a $100k salary and benefits.
But it's not even the cost that is an issue. It's the quality of work delivered. The accountability of a contractor is totally transient. They only need to deliver for as long as you keep them around, and chances are they'll never again touch the code. There's no incentive for them to get things right, there's little incentive to understand your system or learn anything. At the risk of making an unfair generalization, craftsmanship doesn't matter to most contractors.
I don't know what they teach in college CS courses. I've believed for most of my adult life that a college degree was an essential part of being successful. Of course I would hold that bias, since I did it, and have the paper to show for it in a box somewhere in the basement. My first clue that maybe this wasn't a fully qualified opinion comes from the fact that I double-majored in journalism and radio/TV, not computer science. Eventually I worked with people who skipped college entirely, many of them at Microsoft. Then I worked with people who had a masters degree who sucked at writing code, next to the high school diploma types that rock it every day. I still think there's a lot to be said for the social development of someone who has the on-campus experience, but for software developers, college might not matter.
As I mentioned before, most of us are not writing compilers, and we never will. It's actually surprising to find how many people are self-taught in the art of software development, and that should reveal some interesting truths about how we learn. The first truth is that we learn largely out of necessity. There's something that we want to achieve, so we do what I call just-in-time learning to meet those goals. We acquire knowledge when we need it.
So what about the gaps in our knowledge? That's where the most valuable education occurs, via our mentors. They're the people we work next to and the people who write blogs. They are critical to our professional development. They don't need to be an encyclopedia of jargon, but they understand the craft. Even at this stage of my career, I probably can't tell you what SOLID stands for, but you can bet that I practice the principles behind that acronym every day. That comes from experience, augmented by my peers. I'm hell bent on passing that experience to others.
If you're a manager type and don't do much in the way of writing code these days (shame on you for not messing around at least), then your job is to isolate your tradespeople from nonsense, while bringing your business into the realm of modern software development. That doesn't mean you slap up a white board with sticky notes and start calling yourself agile, it means getting all of your stakeholders to understand that frequent delivery of quality software is the best way to deal with change and evolving expectations.
It also means that you have to play technical overlord to make sure the education and quality issues are dealt with. That's why I make the crack about sticky notes, because without the right technique being practiced among your code monkeys, you're just a guy with sticky notes. You're asking your business to accept frequent and iterative delivery, now make sure that the folks writing the code can handle the same thing. This means unit testing, the right instrumentation, integration tests, automated builds and deployments... all of the stuff that makes it easy to see when change breaks stuff.
I strongly believe that education is the most important part of what we do. I'm encouraged by things like The Starter League, and it's the kind of thing I'd love to see more of. I would go as far as to say I'd love to start something like this internally at an existing company.
Most of all though, I can't emphasize enough how important it is that we mentor each other and share our knowledge. If you have people on your staff who don't want to learn, fire them. Seriously, get rid of them. A few months working with someone really good, who understands the craftsmanship required to build supportable and maintainable code, will change that person forever and increase their value immeasurably.
Even though I left the company, I'm still very much a fan of Microsoft. The current wave of products in particular iteratively build on a lot of great stuff that came out two years ago. Of course I love the development tools, but I've also grown quite fond of Windows 8 (though admittedly don't imagine using its don't-call-it-Metro interface much until I have it in tablet form), and I continue to be a huge fan of Windows Phone.
But wow, when it comes to the really big and important consumer product launches, they really are sucking. A few months ago, they announced Surface, their totally amazing looking tablet that takes everything I like about the phone and puts it in tablet form. Do you know how much I would prefer that user experience to the iPad? Well, it doesn't matter, because pricing and availability remain a complete mystery.
Then take a look at Windows Phone 8, which is turning into a complete disaster. First, they intended to release the developer SDK "late summer," but now they'll have a limited preview that you can try and sign up for next week. Meanwhile, Nokia announces its new flagship phone for the new OS to great fanfare, but there's no indication about when you can get it, how much it will cost, or who the carriers are. I realize that's Nokia, but if Steve Ballmer is on stage, it might as well be Microsoft, too.
Compare this to Amazon, which today announced its new tablets. You know what else they announced? Pricing and availability. Next week, Apple is apparently announcing its new iPhone, and maybe even a smaller iPad. Anyone want to take bets that they'll announce pricing and availability?
It's just so frustrating because these are good products that nerds will instantly start to drool over, but general consumers aren't going to stick with the hype if they have no idea how much these things cost. Microsoft really needs to learn this, to understand that a partial story isn't good enough even if the products are amazing. Their competitors already know this.
It was a tough decision to make, but after having the laptop exchanged once for an LCD image persistence problem, and having the same thing occur within a week on the second, I've decided to return the MacBook Pro with Retina display. It makes me a little sad.
Image retention is a phenomenon where something on screen still appears to be there, even though you've switched to something else. For example, this photo shows PointBuzz and the browser chrome after sitting there for ten minutes:
Now, in real life, no one sits on a Web page for ten minutes, but you probably do use a single application for perhaps hours at a time. In my case, that app is often Visual Studio. With its toolbars and many windows, much of the user interface is static, so when I'd switch to a browser window or some other app, it wasn't uncommon to still see Visual Studio. I just can't live with that, no matter how sharp the text is, especially if the problem only gets worse with time.
What made this a difficult decision was the fact that it's so awesome from a pure power standpoint. The computer is stupid fast. I'm replacing it with the top-end MacBook Air. What I lose is the "retina" screen, obviously, less memory, and a slightly slower CPU with two cores instead of four. On the other hand, the Air will still be much faster than my previous laptop, and I gain a more portable computer, weighing less, and about $600.
I'm incredibly disappointed, because that screen really is something to behold (until you're still beholding something you closed, at least). But given the savings, it makes it easier to buy the external monitor I've been thinking about. All things considered, the Air will still exceed my expectations in most ways.
To Apple's credit, they agreed to take back the thing without question, which surprised me since it's been about two and a half months since I got the first computer. I suppose when the replacement exhibits the same problem, it certainly qualifies under the warranty laws to get a refund. There's a thread on Apple's site with thousands of replies, and it sounds like the problem has to do with LG LCD panels, while Samsung panels don't seem to have the problem. I didn't want to do the "display lottery" a third time. I took a gamble on something new, and lost. It reminds me a little bit of the heat problems with the first MacBook Pro.
I'm sure Apple will get it right, but for now, I'll stick to the Air. I look forward to it.
Last week, Canon released the C100 video camera, a sort of "light" version of the C300, allegedly for a price of around $8,000. That's half the price of the C300, but with a lot of bizarre compromises that still put it kind of high.
Ignoring image quality for a moment, let's think about the use case that I suspect a lot of people are after: using Canon EF lenses with their video camera. That was certainly my desire, given the nice lenses I already had for still photography, and I ended up buying Panasonic's AF100 with a lens adapter from Redrock Micro. Even with that adapter, the cost was a little less than $4,100, about half of what the C100 is going for. The compromises I have to live with are that the camera doesn't control the lenses, and with a smaller sensor it doesn't "see" as much, but I haven't found either to be that big of a deal.
Then there are the weird things, like recording with AVCHD, same as my AF100. A lot of people don't think you can do "serious" recording with AVCHD, and admittedly you can run into some noise issues, but it's not horrible. That said, the strength of the C300 was the use of Canon's own codec that uses twice the bit rate. The C100 also has a strange and tiny little stubby viewfinder. Most strange, it can't shoot variable frame rates, so no slo-mo for you. I love how that looks.
The C300 strikes me as an amazing camera, on the expensive side, but clearly delivering on what you pay for. The C100 doesn't quite make sense to me, at double the cost but lacking some of the features to be as good as a camera at half the cost. Mind you, good is relative, and the larger sensor and native lens control are wins, but it's a really weird camera.
Simon has gotten up a few nights in a row a little more upset then he has been able to deal with. While many suggest he's enduring night terrors, I doubt that's it. The clinical definition tends to peg kids at 4 to 12-years-old, and occurring in 1-6% of that group. It also says the kid will typically appear awake but inconsolable, and Simon is fine as soon as you pick him up.
That said, I certainly believe he's had bad dreams, or that his imagination is getting the best of him. I remember having my share of darkness fears at that age (pegging the age because it was before my brother was born). Mine was a repetitive dream, featuring a scary music box, and when the lights came on, the creepy lamp with balloons (and maybe a clown) in some ways made it worse.
Simon chills out when you pick him up and turn the lights on. The other night, I actually brought him into the spare room and crawled into bed with him, and when I asked him if he was ready for bed, he took it upon himself to go back and crawl into bed himself. Tonight he appeared almost physically sick, shaking and sweaty. He sat with Diana for a little while and went back to sleep.
To this point, I've been pleasantly surprised at how relatively independent he has been about bed. After the first couple of weeks sleeping in a bassinet in our room, he has slept on his own in his room. A few weeks ago we converted his crib to a toddler bed, and once he's ready, he climbs up in on his own. Lately he doesn't even want you to tuck him in, he'll just sit up until you leave.
I'm sure this will pass soon enough.
Last week the three of us had a picnic lunch on the lawn in front of Founders Hall at Ashland University. I've been there before with Diana, and in fact she hung out with me when I did a couple of radio shifts prior to our move out west. But it was so strange being there with Simon. I couldn't imagine or foresee Simon when I was a student there.
One of the things that Diana and I always talk about is how there's such an energy on campus. Any campus, that is. It's not just the memory of attending college, and the very intense four years (or more) that you spend there. It's that combination of all of that learning going on, inside and outside of the class room, and the sense of community there is. It's funny how you even feel that to an extent at Microsoft, as a series of buildings where groups of people work on stuff.
I've thought many times about teaching. With coaching being such an enjoyable part of my life, that shouldn't surprise anyone. That said, I don't think I have another degree in me. Maybe it was just undergrad, but I never felt particularly into class work, save for a few specific classes (like Broadcast Law, where I totally blew the curve). It doesn't help that the politics of university faculties make your average office politics look insignificant.
Still, I love that setting. It was one of my favorite aspects about working at Microsoft. It's nice to get out and walk around during the day.
I spent the evening engaging in mindless video game violence tonight, and I really enjoyed it. It seems like every time I play video games (not counting time wasters on my phone), I stop and think, "Wow, this really is fun and it helps me blow off some steam." This revelation comes every few months, because I seem to forget to play.
I've noticed that about myself lately. I've been way too focused on work, both day job and side business. I woke up this morning and I felt like I just didn't want to do anything at all, like nothing I normally do interested me. It's like I forget to do stuff that doesn't require any specific outcome beyond having a good time.
So, mental note, don't let myself get dull and too serious.