Scott Hanselman

Your images are a virus. They are EVERYWHERE on the Internet

November 4, '11 Comments [13] Posted in Blogging | Musings
Sponsored By

Stuff you love to do, Stuff you're good at, Stuff someone will pay you to do.This is a silly little story of a silly little image. An image whose original conceptual source isn't me. Well, I made the image, I made it in PowerPoint with Smart Art in about 12 seconds over 4 years ago. But per my G+ friend James Saull, I know now that the concept is called "The Hedgehog Principle" or "The Hedgehog Concept" by Jim Collins. You'll find it everywhere but it started in 2001 with the book "Good to Great." I likely absorbed it at some past point and when I got the job I drew three cricles. It's one of those "duh, that's awesome" concepts. It's just a Venn Diagram with three circles with the intersection, the middle bit, being the most awesome ideal part. This isn't about the original of the concept, it's how one image is found everywhere on the internet, spreading like a virus. Once you put an image on the internet, you'll never be able to take it down.

I made the circles for a blog post when I took the gig at Microsoft in July of 2007. I haven't thought about them much since, although I've used them in some presentations a few times. They are unimpressive and rather pink.

Yesterday at lunch I was on Facebook and commented on a friends photo. Her friend "liked" my comment, and I clicked to see who that friend of a friend was. Then just scrolling down, I saw my circles on this stranger's wall. Cool! What an amazing coincidence.

Dream Job on FB

This image was shared from another page within Facebook. I followed the rabbit. The photo had hundreds of likes and many shares.

Dream Job on FB

I then started wondering how far this thing went. Well, it spread long before this funny Facebook coincidence. Kyaw Zaw suggested on Google+ that I put my original image into Google Image Search.

Googling with a custom date range shows the first instance of my image, on my blog in 2007. You can also search for images with images using TinEye Image Search.

I can't see how to reliably hotlink to Google Image Search results, so go to http://images.google.com/, click the little camera icon and paste in the URL to the image, like http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/2dc61d7e4a66_13443/image.png

Googling for Dream Job with Google Image Search

Widening the search dates to all dates, I can see there are 228 different places this image appears, mostly on career and inspirational/aspirational blogs.

Lots of Dream Job on the second page

Image search systems are a fascinating way to see how your images find their way around the web. If you had some intellectual property embedded within your images, presumably you could watermark your images but I suspect intuitively that heavily watermarked images might not spread as freely. There's just no easy way to "protect" (if you wanted to) your images these days. So they spread!

What images of yours have spread around the internet?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Google+ Ripples brings something interesting to the table

November 4, '11 Comments [14] Posted in Blogging | Musings
Sponsored By

I'm on Twitter. I'm on The Facebook. And, sigh, I'm on the snoozefest that has been Google+. I keep coming back to Twitter though for so many reasons

Twitter, today, is just easier to to use, the "What's happening" text box is always there, sharing is effortless. But the lack of real threading, of discussion, is starting to wear on me. Why do sites like even Storify exist? They are there to try to piece the shatter pieces of your Twitter discussion back together. Seriously, I challenge you to piece together anything two weeks after it happened on Twitter. How many retweets did your awesome Tweet get? 100+. Maybe more. You'll never know.

But, the Google+ mobile apps are a mess, so I've just not found a reason to spend much time on G+, except for the occasional Hangout. Until today.

Ripples. Wow.

Pick a post, like I did here, click the down-chevron and click "View Ripples."

Give the users their data. Give them analytics. Let them see how their data moves around the web and how it happened. Let them understand how the network lives and works with elegant visualizations. While you at it, animate the process. Brilliant.

Your move, Twitter. Now it's getting interesting.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Profanity doesn't work

November 3, '11 Comments [118] Posted in Musings
Sponsored By

Docoumentation is apparently VERY important. Fucking important, in fact. I was perusing the Interwebs yesterday and stumbled on a new article from Zach Holman called Don't Give Your Users Shit Work. I was a little taken aback by the swear word in the title. I clicked around Zach's site, and found his Talks area and clicked on A Documentation Talk and the second slide dropped the F-bomb. Wow, really? I said to myself, is this how to connect with someone who is trying to learn about a technology? I was surprised to find swearing to up front and center on Zach's blog.

Is swearing in technology conference presentations appropriate? When did this start being OK? Swearing has always been a part of popular culture and certainly always been a part of technology and technology people. However, in my experience swearing has been more often an after work bonding activity, if at all. It's hanging with fellow coders in a pub after a long day's debugging. It wasn't a part of presentations and certainly not welcome in the boardroom.

I propose that David Heinemeier Hanson popularized swearing unapologetically, or at least brought it out in the open at large keynotes and presentations. David says:

...I’ve used profanity to great effect is at conferences where you feel you know the audience enough to loosen your tie and want to create a mental dog ear for an idea. Of all the presentations I’ve given, I’ve generally had the most positive feedback from the ones that carried enough passion to warrant profanity and it’s been very effective in making people remember key ideas.

As with any tool, it can certainly be misused and applied to the wrong audience. But you can cut yourself with a great steak knife too. Use profanity with care and in the right context and it can be f***ing amazing.

He rightfully notes that it's a tool used with care and isn't appropriate for all instances, but from what I've seen of DHHs talks as well as in pursuing Zach's (who is a lovely chap, by the way), it appears they believe it's a good tool more often than not.

Perhaps it's generational or cultural, but more and more a lot of new under-30 web techies drop the F-bomb and swear liberally in their presentations and slides. Is this the way young web technologists do business now?

I believe that having S*** and F*** in your conference slides or titles doesn't make you cool or professional, or a better coder. It makes you look crass. When is it appropriate and why is it appropriate when other things aren't?

A few years back there was a controversy when some sexually suggestive pictures were used at a popular technology conference in a database presentation. From Martin Fowler:

The main lines of the debate are familiar. Various people, not all women, lay the charge that the images and general tone was offensive. Such material makes women feel degraded and alienated. This kind of presentation would not be tolerated at most professional events.

Defenders of the presenter point out that the slides were humorous and no offense was intended.

Clearly everyone agrees that sexism has no place in technology presentations. They agreed before this incident and many re-declared their support for sexism-free presentations after.

However, many top presenters don't agree that words that are evocative of sex and feces are in fact not appropriate. They would argue these two words have transcended their original meaning and are now well-used as punctuation or that the F-word is useful as nine different parts of speech. Both of these arguments are demonstrably true, but there's so many other words to use. Is the linguistic usefulness of the F-word too tantalizing to give up? Martin mentions DDH using his own words:

David Heinemeier Hansson is happy to proclaim himself as an R rated individual and is happy to consign "professional" to the same pit to which he cast "enterprise".

Why so mean?I personally don't put the word professional in the same overused category as "enterprise." Professionalism is well understood, in my opinion and usual not up for debate. Perhaps swearing is appropriate on a golf course where the Sales Suits make deals, but it's not appropriate in business meetings, earnings calls, or technology presentations.

There's hundreds of thousands of perfectly cromulent words to use that aren't the Seven Dirty Words. Or even just the two words that evoke scatology or copulation. At least use some colorful metaphors or create a new turn of phrase. Shakespeare managed, thou frothy tickle-brained popinjay. Zounds.

However, I do recognize that swearing, or specifically the choice to swear in a public forum is stylistic. I wouldn't presume to ascribe intelligence or lack thereof based solely on swearing. To DHH and Zach Holman's credit, their swearing in presentations is a conscious and calculated choice.

Zach says, via Twitter:

I love words. And those words evoke a lot of emotion. I want presentations to be emotional. I want a story to be told...it's certainly a stylistic choice I've made (and connected with). I actually am fine with offending or alienating a few. Because I believe it lets me connect deeper with others.

And this last point is where Zach and I differ. While I'm known to swear in person occasionally, I don't swear on this blog or in presentations. In fact, when I did swear in a recent "off the record" podcast, many found it out of character and off-putting.

DHH on being arrogant Swearing in presentations or as a part of your public persona might be attractive to some technologists who admire your "passion" or "zeal" but there's no doubt that many others will find that kind of unnecessary coarseness turn off.

It's worth noting that DHH is Danish and it's been my experience all over the world that it's primarily Americans that are the most easily offended by the use of our own swear words. You'll often hear the F-bomb on even teenage television shows in many European countries and their movies are almost never censored for language.

Swearing in presentations isn't unique to DHH or Zach, and it's not unique to one technology or another. I'm just using them as an example. Both are reasonable and logical guys, so they both realize this is a difference in a opinion and not a personal attach. In fact, Rob Conery and are working on getting both fellows on the show to talk about Swearing, Connecting with your Audience and Professionalism sometime soon.

My question is, do swear words add as much as they subtract? Do they increase your impact while decreasing your potential audience? I believe that swearing decreases your reach and offers little benefit in return. Swearing is guaranteed to reduce the size of your potential audience.

As I've said before:

"Being generally pleasant and helpful isn't sugarcoating, it's being pleasant and helpful."

I appreciate and respect that profanity in presentations is a deliberate choice. You're cultivating a personal brand.

However, you take no chances of offending by not swearing, but you guarantee to offend someone if you do.

Better if it's a focused style, a conscious choice and all part of your master plan but it's not for me. I choose to blog, speak and teach without swearing. My message is clearer without these words.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

It's the transparency, stupid!

November 2, '11 Comments [34] Posted in Musings
Sponsored By

Sad TivoI have long said it's important to not give bile a permalink so don't take this as a post that's picking on a specific company. Nearly every company is guilty of withholding information for no apparent reason. Sometimes it's to protect shareholder value but most often it's motivated by fear, the unknown, and fear of the unknown. This is my opinion.

I really believe there's little reason to not be extremely transparent in business today. Especially when business means releasing software or hardware on a regular cadence. Apple is great about being secretive and announcing "one more thing" that  no one expected, but that's not an easy culture to maintain.

I'm a fan of clear roadmaps. It's OK if the roadmap gets blurry long term, but at least tell me where the road is! The thing is, if you don't release a public roadmap, it'll get leaked or someone will make one up for you.

Also, if you aren't transparent with your customers you take a risk that the customer use your opaqueness against you.

  • "They haven't said anything about Product X, I wonder if they themselves know what they're going to do!"
  • "We've asked for Feature Y for the last 2 years and while they say it's coming, they won't say when or what's taking so long!"

The irony is that the customers who are pounding on you the most, demanding updates and status are your best customers. They care!

I'm not saying my Mom needs to know the technology roadmap or the release notes for her Universal Remote Control. I'm saying I do. Why? Because I'm an enthusiast and I've likely sold more of these remotes just by being a fan than Best Buy.

Here's a concrete example. I've got a TiVo (Digital Video Recorder) and I like it. Except when I hate it. It works great and then stops working, and this is a known issue. The TiVo Premiere I have has a dual core processor. Except it's slow because only one of the processors is enabled. It uses Flash for its UI and much of the UI is in HiDef with a 16x9 ratio. Except a bunch of the menus are NOT in HiDef. You move in an out of the menus with a jarring leap from HiDef to Standard Def and back. It's been like this for years, plural.

If you search the web or forums where TiVo enthusiasts hang out, you'll hear them complaining. Understand that these are folks that have a TiVo, sure, but they care enough to want the new features. They care enough to participate in an online forum. For every one customer who is complaining about you online, there are like 100 just like them complaining offline.

Online discontent is just the beginning. The spark of discontent can ignite into the fires of rebellion.

So why not just be straight with them? I'll pick on TiVo VP of User Experience Margret Schmidt for a moment. First, to be clear, she's exceedingly helpful on Twitter, positive, kind and has put herself out there as a public face for her company, so kudos and respect for her. I've asked her questions like "when will the second core be enabled" and "when will Flash stop hanging" and "when will all the menus be HD." Unfortunately it's clear that her hands are tied by some higher level mandate. 

@tivodesign TiVo Margret Schmidt - @shanselman No updates I can share, but updates are coming. (Sorry, I know that isn't helpful.)

It's apparently company policy not to comment on new features or their roadmap, even when those features have been speculated about online for years. Nurture the community you have by entrusting them with your plans. They'll understand if you don't know exact dates. But don't hide the truth.

I would encourage TiVo, Microsoft (I work here and pushing for transparency is part of my job) and companies like them who release products on a regular cadence as well as existing products to just be transparent.

Think of the hundreds if not thousands of forum posts with anger that would be assuaged with a TiVo Release Notes blog post that said something like:

"We know our users have been waiting for an updated that enables the second core in your dual core TiVos. We've had some _______ problem with _____. It's been a sticky issue but our engineers tell me they've got it cracked. Look for an update in the next __ months that enables this exciting feature. Thanks for your patience and most of all, for your enthusiasm! Viva Tivo!"

It's not hard. Just say something.

Related Links

Here's some examples of some technology roadmaps that are clear and organized:

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

NuGet Package of Week #11 - ImageResizer enables clean, clear image resizing in ASP.NET

October 31, '11 Comments [7] Posted in ASP.NET | ASP.NET MVC | NuGet | NuGetPOW | Open Source
Sponsored By

The Backstory: I was thinking since the NuGet .NET package management site is starting to fill up that I should start looking for gems (no pun intended) in there. You know, really useful stuff that folks might otherwise not find. I'll look for mostly open source projects, ones I think are really useful. I'll look at how they built their NuGet packages, if there's anything interesting about the way the designed the out of the box experience (and anything they could do to make it better) as well as what the package itself does.  Today, it's imageresizer.

Bertrand Le Roy has long been an advocate of doing image resizing correctly on .NET and particularly on ASP.NET. Last week he posted a great post on a new library to choose from; a library that is pure .NET and works in medium trust. It's "imageresizer." What a creative name! ;)

Seriously, though, it couldn't be easier. Here's a nice sample from Bertrand's blog showing how to do resizing of a JPEG as stream of bytes using the imageresizer library directly:

var settings = new ResizeSettings {
MaxWidth = thumbnailSize,
MaxHeight = thumbnailSize,
Format = "jpg"
};
settings.Add("quality", quality.ToString());
ImageBuilder.Current.Build(inStream, outStream, settings);
resized = outStream.ToArray();

There's a complete API with lots of flexibility. However, how quickly can I get from File | New Project to something cool?

ImageResizer

Well, make a new ASP.NET (MVC or WebForms) project and put an image in a folder.

Their default NuGet package is called ImageResizer, and their ASP.NET preconfigured web.config package is "ImageResizer.WebConfig" which includes a default intercepting module to get you the instant gratification you crave. I used NuGet to install-package imageresizer.webconfig.

I've got an image of my giant head that I can, of course, visit in any browser.

imageresizer

And now with the intercepting HttpModule installed with imageresizer.webconfig I can add ?width=100 to the end of the query string and I get a nice resized image that fits into the constraints of "100 wide." It's a trivial example, but it's a nice touch to have them do the "figure out how tall this should be" work for me.

imageresizer2

Of course, I'm sure you could DoS (Denial of Service) someone's system with resizing request, but for small sites their intercepting module is a quick fix and a great example. DoS problems aren't unique to CPU intensive requests and a problem solved elsewhere.

UPDATE: Please read the comment from the author below. He points out a correction and some useful stuff.

I'd like to clarify that it's not just for small sites. It's been running large social networking sites for years, and there are at least 6 companies using it with 10-20TB image collections (it powers a lot of photo album systems).  It's designed for web farms, Amazon EC2 clusters, and even..... Microsoft Azure.

"Performance-wise, it's just as fast as GDI (despite Bertrand's article, which he'll be updating soon). Default behavior is to favor quality over performance (since it's never more than a 40% difference even with the worst settings), but that IS adjustable."

He also tells me in email:

"All the cropping, flipping, rotation, and format conversion can be done from the URL syntax also. Everything you can do from the Managed API you can also do from the URL."

For more sophisticated use they include a separate API dll where you can do even more like cropping, rotating, flipping, watermarking and even conversion. Bertrand has a chart that explores their speed issues, as they are slower than straight GDI and Windows Imaging Components, but as I said, they are pure managed code and work in Medium Trust which is a huge win. Their quality is also top notch.

ImageResizer also includes plugin support that you can buy. Genius, seriously, I tip my hat to these guys. The most popular and useful features are free, and crazy easy to use. If you want to do even more you buy plugins like DiskCache for huge performance wins, S3Reader or AzureReader for Amazon or Azure support, and lots of free plugins for 404 handling, DropShadows and more. So polished. Kudos to Nathanael Jones and team for a really nice use of ASP.NET, .NET, NuGet and a clever open source library with a plugin model for profit.

Related Links

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.