Jeff's Junk

The sillynonsense and .NET musings of Jeff Putz

News

My Sites

Google Maps: They have humans!

The last refresh of Google Maps messed up my street. I live two houses down from an intersection, where on one side the street has one name, and a different name on the other (two subdivisions started years apart). In the last refresh, they had the name from the other street extending half way down my street. I noticed a "report problem" link on the map, so I did. Here's what I got...

Hi Jeff,

Your Google Maps problem report has been reviewed, and you were right! We'll update the map within a month and email you when you can see the change.

Report history
Problem ID: A4EE-24E3-19D7-40FE

Your report:
Beaumont Dr. actually extends to N. Carpenter. It's Red Clover to the east, Beaumont to the west.

Thanks for your help,
The Google Maps team

Interview to start: Six and a half weeks

Trying to wrap your head around leaving an area you've been around for 36 years for a destination and job 2,400 miles away is one of the single most bizarre things that I've encountered in my life. The time between my arrival in Seattle to interview at Microsoft (I was in town for just 27 hours) to my start date is going to be about six and a half weeks, or a month and a half. I'm not sure if that's making good time or not, and I'd love to hear stories from other current Microfolk who have relocated. The only unknown variable left is the move scheduling.

We're downsizing a bit, because we simply can't buy a house. The housing market here around Cleveland has been a brutal disaster, and between my wife's unsold house of 18 months, which we'll take a bath on eventually, and my own which may sell quickly but erase most of the equity, this move is very much like starting over. We're not angry or bitter about it, but it isn't the most cheery subject. Lots of nice apartments and townhouses around the Seattle metro, and we look forward to waking up to much better scenery every day.

It's weird how you can end up in a particular place for much longer than you expected. A great many life changes have affected me the last five years or so, which led me to one of the big "I'm a grown up" discoveries: That I can move if I want. Between visiting my new family out in Snoqualmie and frequent trips to Orlando to support my theme park habit, I was done with Midwest winters. Then I lost my job, twice in the span of a year, and I started to realize how awful the job market here was. Duh, good time to move.

I've only had a few other "I'm a grown up" moments. The earliest one was that I could buy a season pass to Cedar Point and go as much as I wanted to. It makes me a little sad to break the streak of 11 straight seasons of passholderness. Another moment was they day I realized I could buy a house to live in. The most recent one was about two years ago, when I had a lot of bonus cash in hand and decided I could buy a completely non-essential expensive item: a hot tub.

But the moving on to a new place and new job bit is the best moment of all for me. I've been a fan (and critic) of Microsoft for a very long time. I got caught up in the excitement of product development when I was writing my book, privy to early builds and roadmaps under NDA, and wondered what it might be like on the inside. Then the Mix conferences (I've been to three of the four) gave me warm fuzzies about how the Server & Tools division as a whole was coming along. Now I get to work with smart people who are very rapidly changing the way the customers of those products are interacting with the company. Very exciting times, indeed.

The animated featured content box: Critical design issues

I saw this post from Ken Cox about his displeasure with the preview of the new VB developer site, specifically the animated box at the bottom. You've seen these before on a million different sites, where a number of featured content items are previewed.

Putting aside for a moment that this one is particularly non-useful (no single frame hangs out long enough to read it), what do these really accomplish? We can assume that the goal is to get a number of different things in front of the viewer. News sites in particular seem to love using these. I've certainly not conducted a human factors study on the subject, but my gut feeling is that this is completely ineffective.

The first flaw is that it's easier to scan a handful of headlines that are all there. My armchair designer mind says that people are drawn to pictures and retained longer by them, but I'm sure not I buy it. ABC News used to have an annoying headline rotator, but they recently switched to something that shows the picture as well as allows for the quick scan of headlines.

 

ESPN went a step further, realizing that their strength is the mountains of video they have. They abandoned the rotator entirely for video right there, immediately available.

 

It's funny how the traditional media is doing it better, while new and trendy get it wrong. Revision3 has the classic interpretation of this, and it's a failure. First off, they're using a busy image with text over it that's hard to read. Then they have the goofy "highlighted square" navigation in the top right that you almost miss. I shouldn't even call it navigation, because it doesn't tell you anything other than the number of frames, which is nearly useless information. There's no incentive to hang out and see what's next. It also continues to animate whether you like it or not.

But in my quick survey of things, no one gets it quite as wrong as MTV. They have the good old fashioned mystery meat keyframes at right, and many of the text descriptions are too long to read before the next frame.

 

Ultimately, I think some of these attempts come from stakeholders who all get in a room and believe that their content is most important. That's a nightmare you'll frequently run into if you do client work in particular. Other attempts at this I think are simply imitation of a trend.

So what would I consider the critical thinking points around these things if I were in charge? In no particular order...

  • Is it critical that everything sits above the fold? If not, then why are you trying to cram it all into the first 400 pixels? We live in a Google Analytics world. You can see how often people are clicking down the page.
  • Is everything you want to show really that important? If it is, are you sure there aren't other means of discovery? If you're a marketing department and everyone in your company thinks their stuff is most important, rank it yourself or get someone senior to the various departments involved.
  • What is your audience looking for? This seems like such an obvious question, and I don't think designers ask it enough. If they're looking for headlines, give them headlines. If you want to pair with images, make sure they don't come at the expense of headlines. If the reverse is true, again, keep in mind that too much compromise may not effectively give your audience what they're looking for.
  • If you're convinced you have to show more than one thing in a given space, don't rely on conventions you've seen elsewhere. Mystery meat navigation sucks and it pisses off users. As it is, they're probably not going to hang out for more than a few seconds.
  • Animate only if you have to. You're falling into a trap where you have to predict the future in terms of how fast your readers can read, how long the content will be as long as you're using the animation, and you're living on the assumption that the dwell time on the page is long enough to see it all. If the average user sees 1.5 of your frames, you've already failed in getting the rest of that "important" stuff in front of the user.
Getting into the weeds like this is an important exercise I think. It's something that I've thought about quite a bit, and because of the objections I arrive at, I've never used one of these devices in my projects. That doesn't mean I won't, but I've yet to come up with something appropriate for my specific use cases. I think ABC News probably has the best implementation for their audience, and not surprisingly, it does the least.
New MSDN preview from Hanselman

If you haven't seen it (or don't otherwise subscribe to his blog), do check out Hanselman's peek at the new MSDN.

My impression is that I'll be working in some subset of this new stuff when I get there next month, so I now have a vested interest. :)

I'm joining the mothership

As I mentioned previously, I interviewed in Redmond for a position with Microsoft in the Server & Tools Online group, specifically Community Applications & Services (Codeplex, MSDN forums and other stuff in that area). I got the word Friday that I had an offer, today I verbally accepted it, and pending a background check and move, I should be starting some time in early November! I posted a few words about the interview experience on my personal blog.

From a personal and professional standpoint, there are a million reasons why this is the right thing at the right time, and I really look forward to getting started. Those who have followed me on blogs over the years know that online communities have been a passion for me for as long as the Web has been around, and that's a perfect match to my enthusiasm for much of what Microsoft is doing. I look forward to being a part of the stuff in between the products and the people using them. Very exciting times!

In the process of networking around Microsoft, I've also talked to quite a few people there outside of the group I'll be working in, and it feels good to have a greater awareness of what's going on. By the time I left Seattle last week, I was more convinced than ever that for the most part, the Server and Tools division of Microsoft is headed in the right direction. After living in a market (Cleveland) where nothing outside of medicine is doing anything with forward motion, it's a relief to see myself as a part of something good.

So for the next few weeks, I'll be spending time selling non-essential stuff, making minor house repairs, closing out the season at Cedar Point, throwing a party to end all parties for our friends, and figure out how to get the cats to Seattle without causing them major trauma. My wife is stoked too, since her brother and his family lives out there.

What a year... marriage, honeymoon, unemployment, sell a house, move 2,400 miles, start a new job and prepare for a little bundle. Heck of a year!

Redmond bound, dismal job market at home

I'm coming out this week to Redmond again to visit Microsoft and interview, this time for a developer gig.

That last time, I was interviewing for a PM gig that I didn't entirely understand, and the vetting process before coming out was not particularly rich. I was an awful fit for that job, I think, and in retrospect, I'm not even sure how they came across me because I had never applied for it. But it was still a good experience, because it gave me a peek into the culture that I would never have had otherwise.

When I lost my job in April, the day after my honeymoon no less, my game plan became pretty obvious after a few days. I had to broaden the search and think more nationally in terms of the kinds of places I wanted to work. I also wanted to use the time I wasn't working (which has been a lot longer than I expected) to try new things, learn new things and develop my side business (mostly CoasterBuzz) into something that could sustain me for the duration. I feel like I did most of that.

Locally, in Northeast Ohio, the work potential is the worst it has been since 2001. The smaller short-term contract stuff kept leading me to the "over-qualified" response (seriously, for three months, doesn't that make me a low-risk bargain?), and the three really solid gigs I encountered after long interview processes ended up in two "we can't spend that money right now" endings and one that went to one of my mentors from two jobs ago, who also got let go and was clearly the better candidate, by a long shot.

We're not at all tied down here in any way other than real estate (another dismal market), so I've been targeting a number of well-known companies and watching their job postings, mostly in the Pacific Northwest and Central Florida. Good choices, too, as Forbes recently named Seattle as the best place for tech jobs, and Orlando was third place. I never forgot the trip to Microsoft, and going to conferences and what not just made me want to be a part of what goes on there even more. It's a far cry from the start-ups I've been working at, but internally, there are a lot of people taking initiative to better their product areas. Who wouldn't want to be a part of that? I've been watching the boards for start-ups and small companies as well, but the number that are hiring in these regions seems to be nearly zero.

This trip feels much different already. I had two brutal phone screens that were far more intense than most face-to-face interviews. The vetting process was solid and I go in feeling like I understand the gig, they understand me and flying me out there is a good decision for everyone. I'm really psyched for the trip. Plus there are bonus points because I'll have a short window to visit family out there.

I'll share more about the process after I get back, and hopefully have good news to share as well!

Dependency injection, providers and ASP.NET MVC

I've been thinking a lot about all of the frameworks we have now to use with our, uh, frameworks. There's a framework to solve every problem. Dependency injection frameworks are of particular interest to a lot of people because they make unit testing ridiculously easy. They're also well suited to something like ASP.NET MVC, where you're trying to make as few dependencies as possible between the various concerns.

But I was chatting with someone the other day about all of the frameworks for DI, and he expressed concern that he wasn't comfortable depending on a lot of external libraries for some things. His view (pun intended) was that you start to junk up a relatively simple framework like MVC by putting all kinds of other stuff into it to support another framework, and that introduces different kinds of risks. For example...

  • You're decorating everything with attributes.
  • There are all kinds of configuration files or classes to do the hookup.
  • You'll replace the standard controller factories, perhaps giving new devs one more thing to learn about for your project.
  • Global.asax becomes even more of a dumping ground (more because of the placement of routing there plus DI framework init).
  • It just feels dirty to some to be using another library you don't own.

I think these are all valid concerns, though the scope of them depends a lot on your specific scenario. The funny thing about using frameworks that are named after design patterns is that everything becomes an academic debate about where and how you do this and that. And if you're a junior developer wanting to impress your peers, or a senior developer not wanting to set a precedent for the "wrong" thing, you want to get it "right."

Many of the examples published on the Web and in books suggest simply using different constructors on MVC controllers to handle DI in a rational way that doesn't require an additional framework. That allows you to keep the default controller factory and let your unit tests instantiate them with your mock objects. I read a lengthy discussion forum thread that suggested this wasn't proper either because you aren't testing the way that the objects are created in the real production environment. I thought that was a pretty thin argument, but I do see the point.

I got to thinking about how the provider model introduced in ASP.NET 2.0 worked pretty well for a lot of things, and it was used effectively before that in wiring up swappable data access layers on various apps. Creating a lightweight container to do that wire-up would be pretty straight forward, even if it did reinvent some wheels.

I don't really have a point that I'm after here. I guess these are things I'd like to hear people talk more about. What are you doing in the real world to keep things testable and maintainable?

On constant connectivity and information overload in the online social age

There was a solid post on the Mix blog about just letting go of all the stuff going on in the online social world and getting back to work. It's a subject that I've thought a great deal about lately for a lot of reasons. With a baby on the way, balancing life is important to me. I see friends who can't got five minutes without checking Twitter. Sometimes I worry about whether or not I'm learning the right things. The presence of information itself causes worry.

The thing that I keep coming back to is that there are a number of means to limit what you're exposed to, and they're not always electronic tools. Some people make it their job to find stuff and filter out the unimportant stuff (heck, I'm applying for just such a job). I find that in areas of expertise or interest, your overload is reduced when you find these human filters. The method of transmission is unimportant. I've been filtering out amusement industry news for almost ten years on CoasterBuzz, with a Web site. Remember Web sites? Pages, hypertext, pictures? It doesn't matter if it's a blog, Twitter, Facebook or a newsletter printed on dead trees. Fundamentally, there are still sources that act as information aggregators for things you care about. In the .NET world we have these folks, and they're authors, Microsofties, code project owners, etc.

The bottom line is that I don't think you need to be on 100% of the time trying to follow it all yourself. The trickle down filters work pretty well for most people.

If it's your job to have a higher awareness, then yes, engage at an appropriate level. But at the same time, make sure you're monitoring your peers, and if people report to you, listen to what they have to say. The tools and conduits are only a discovery mechanism, and most of them don't even offer a lot of depth or context. Engaging with people is still necessary.

Don't be lured into the real-time trap to the extent that you feel you have to see every last thing. If it's important, it'll keep coming up, and you'll see it tomorrow. The only exception I can think of is if you're a thought leader, but in those cases, shouldn't you be the originator of the important brain snacks in the first place?

Snow Leopard impressions

I was one of the nerds that went to church, er, the Apple Store, yesterday to pick up Snow Leopard, the OS X update. For $29, I think it's a pretty reasonable upgrade price (are you listening, Windows 7 pricing people?), considering it's an evolutionary upgrade and not feature heavy.

The first win was getting back 10 gigs of space from my hard drive. I thought it was supposed to be only 7, but I'll take what I can get. My Mac Pro's system drive is also where I put my iTunes library, and it's getting crowded.

Booting and shut down is faster, as they said it would be. Time Machine backups are crazy fast now, where it used to be that the icon would swirl for ages without anything new to even backup. Everything in Finder seems snappier, though it's hard to quantify it. The slider in Finder windows for icon size is a welcome addition. Spotlight seems faster. Stack navigation out of the dock is far, far better now that it scrolls.

I wonder if they haven't tweaked memory management. Parallels seems to be more responsive when I've also got Photoshop and/or Aperture open. Perhaps it's the CPU core management. It's all that under the hood stuff that's hard to measure.

Lots of little tweaks that I've read about, but not encountered, are intriguing. That it can figure out what time zone I'm in and adjust the clock is really cool. Definitely a worthy and inexpensive upgrade. And did I mention there are no install keys or other such nonsense?

Twitter: I begrudgingly get it

More than two years ago, I made a post on here about how I didn't get Twitter. It's one of the most popular posts I've ever made for some reason, which perhaps I'm not proud of. I been meaning to follow up on that for, well, at least a year, because obviously things have changed a great deal.

My view was skewed in some respects because I never looked at it much outside of the context of technology circles. In its earlier days, Twitter was dominated by attention whoring tech pundits, and that seemed boring to me. These days, it enjoys more widespread use, but there are still some critical points that measure how effective it is as a communications medium, and furthermore, it serves different people different ways.

That 80% of people never post anything and have few followers indicates to me that a lot of people are tending a flock, and that's OK. In reality, this is a lot like any other Internet media we have, whether it be blogs or Web sites as a whole. It's a minority that publishes content while the vast majority are consumers only. This has been true for a long time. In fact, the forums on my sites over the years have always been a 95% read-only affair. Many view, few post.

The development community has a much more robust two-way audience. Its effectiveness is rooted in using the right tools, like TweetDeck, to follow not individuals, but hash tags and search terms that matter to you. You get and give help pretty quickly. There's a lot of re-tweet noise, unfortunately.

The bigger story is that it has finally achieved a more critical mass, making it useful by volume. So these days, yes, I'll admit that Twitter is useful if you cast out the attention whoring. Yesterday, I got RT'd by @scottgu, and within an hour, added 15 new followers. Can't argue with that as a means to get your words out. (Wonderfalls reference!)

More Posts Next page »