Categories
Uncategorized

Want to Catch Up in Vancouver or Montreal Next Week?

This article was originally published in Canadian Developer Connection.

Vancouver Convention Centre

Next week’s a travel week for me and a fair number of the Developer & Platform Evangelism team. On Wednesday, January 21st and Thursday, January 22nd, we’ll be at TechDays Canada Vancouver, the last leg of our cross-Canada tour where we show Microsoft developers how to best make use of today’s Microsoft tech and development tools. I myself will be do the Deep Dive into ASP.NET AJAX presentation (I’ll post a little more about this tomorrow) on Wednesday, and on Thursday, I fly to…

Montreal Skyline

…Montreal, where I’ll be attending CUSEC, the Canadian University Software Engineering Conference, where I’ll be giving a presentation titled Squeezeboxes, Start-Ups and Selling Out: A Tech Evangelist’s Story. CUSEC runs from Thursday, January 22nd through Saturday, January 24th. Once again, I’ll post a little more about this presentation tomorrow.

If you’d like to catch up with me at either of these cities, get in touch with me! Send me an email, message me at Twitter, or give me a ring on my mobile (416-948-6447). I’ll be staying in Vancouver at the Fairmont Waterfront on Tuesday and Wednesday nights and in Montreal at the Omni Mont-Royal (the conference hotel) from Thursday through Saturday nights. 

[Vancouver Convention Centre photo by Footloosiety; Montreal skyline photo by Anirudh Koul. Both photos are licensed for reuse, commercial use and remixing under Creative Commons.]

Categories
Uncategorized

Cheap Camera, Interesting Shot

Believe it or not, the photo below hasn’t been Photoshopped:

iphone_spinning_propeller_shot

The guy who took the photo says:

The cheap CMOS sensor of an iPhone does not expose the whole thing at once, it scans from left to right. If you take a picture of something that moves very fast (like an airplane prop) you can get some crazy pictures out of it since each column represents a slightly different time.

This oddball-but-cool effect is reminiscent of some of the distortions you see with scanner photography (for some examples, see this page).

Maybe it’s time to pull out those camera phones and start snapping pics of oscillating or rotating objects!

Categories
Uncategorized

Some Thoughts on Interface Design

This article was originally published in Canadian Developer Connection.

Comments on “The Device/Desktop” Opportunity

The Device/Desktop Opportunity got a number of comments, both in the “Comments” section and sent directly to me via email. First, I’d like to say “please keep those comments coming!” One of my intentions was to start some discussion.

I got a number of comments whose essence was “Why don’t the users simply use a photo editing tool and bring their photos down to the right size and DPI themselves, then copy them to the device?” To a geek, this suggestion sounds very sensible; in fact, I did just that to confirm what I thought the application that came with the device did.

The problem is that most users don’t see it that way. A commenter named Joshua summed it up nicely when he wrote:

I think we geeks, being somewhat more familiar with the tools than the problems, find it relatively easy to tweak an existing tool to do the job, than to “suffer” with Yet Another Not-Quite-Adequate Problem-X-Solving Tool.

Conversely, non-geek users don’t want to have to be bothered with all that hoo-hah. They see the task as moving the pictures from their camera or computer to the device. Do they really have to learn about some other program and fiddle with their photos to do just that? Weren’t computers supposed to make their lives easier?

This isn’t laziness or pride in ignorance on the part of non-geeks. It’s just that they have different interests and priorities than we developers do. To put yourself in their shoes, think of how most of us would make spaghetti: probably with store-bought dried pasta, canned sauce and pre-grated cheese. Now imaging how chef Gordon Ramsay would scream at you in a stream of put-downs and curse words for doing so. In his mind, he’s justified; in your mind, he’s being an elitist jerk who just doesn’t get the fact that you just want some spaghetti.

In the same comment, Joshua also talked about an interesting idea: putting the necessary desktop/device interface software right on the device. He wrote that the Flip Mino camcorder (which looks like a pretty fun device; Toronto-based photoblogger Rannie “Photojunkie” Turingan seems to be getting a lot of mileage out of it) comes with the necessary software for Windows and Mac stored within it.

Should “Cheap” Sites Look Cheap?

Last week, while having a late-night post-party snack with a couple of Toronto-based tech entrepreneurs — Facebook Cookbook author Jay Goldman and CommandN co-host Will Patewe got to talking about sites that were successful in spite of their “pretty crappy” visual design. The site that got the discussion rolling was the dating site and Canadian ASP.NET success story Plenty of Fish (for a good general intro, see this New York Times article). From there, a number of examples came up, including Craigslist and a popular IIS-based site that lets you search for and book cheap airfare and travel packages. These sites all do their jobs quite well, but if you showed them to a web designer, you’d see a conniption fit within seconds.

“Travel sites all search the same data,” said Jay, “and many of them are running on the same back-end. They just use different design templates. Maybe people think that [the cheap-looking but successful travel site] gives you cheaper deals because they look cheap.”

He may have a point. Part of Craiglist’s charm is its stripped-down, not-even-trying-to-look-good design. Does that design send users the same subtle message in the same way that the no-frills “anti-design” of “big box” discount stores sends to their customers? It may be something to think about if you’re building a customer-facing site for a business whose main selling point is low prices or saving its customers money.

The New Look for Calculator in Windows 7

In the Coding Horror article If You Don’t Change the UI, Nobody Notices, Jeff Atwood makes an interesting point: if you want users to notice changes you’ve made to the functionality or back end of an application, they should be mirrored by appropriate corresponding changes to the front end or user interface. Along the way, he points to a Raymond Chen article I’d never seen before. As much as I view Raymond with the highest esteem – he’s probably forgotten more about coding that I’ll ever learn — at a certain point in his article, I did a facepalm. Can you guess when that point was?

Categories
Uncategorized

xkcd on the Windows 7 Beta

Even though this organization gives me a nice paycheque every two weeks for evangelizing:

Microsoft logo, featuring the evil monkey from "Family Guy"

…I still found today’s xkcd comic on the Windows 7 beta release funny:

"xkcd" comic on Windows 7Click the comic to see it on its original page.

The alt text for the comic does say "Disclaimer: I have not actually tried the beta yet.  I hear it’s quite pleasant and hardly Hitler-y at all."

By the bye, don’t quote me on this but I hear tell that the next Ubuntu release will do nothing but show Richard Stallman and Eric Raymond forming a sexy “Eiffel Tower” (see this post for an explanation) with Linus Torvalds in the middle. I’m just sayin’.

Categories
Uncategorized

The Device/Desktop Opportunity

This article originally appeared in Canadian Developer Connection.

brookstone_my_life_photo_album

Why isn’t Brookstone in Canada yet?

For those of you who aren’t familiar with Brookstone, a good way to describe it is “lifestyle gadget store”. A good portion of their catalog is devoted to “lifestyle electronics”: things like

and an assortment of digital photo albums like the “My Life” digital photo album pictured here. It holds up to 4000 photos and sports a 3.5 inch screen with 320 by 240 pixel resolution and will fit into a purse or jacket pocket. Sure, you can show off photos using your mobile phone, PDA, netbook or laptop, but there’s a considerable market for simple, single-use devices like this.

Brookstone is a great store, and whenever I’m in the U.S. and in a mall or Logan Airport, I can’t resist taking a peek inside.

My mom is also a big fan of Brookstone stuff, so when I was down in the U.S. for American Thanksgiving, I made it a point to get her something from them for Christmas. She loves carrying printouts of photos of the grandkids, so I got her a “My Life” digital photo album. I figured I’d pre-load it with family photos before wrapping it up.

I told my mother-in-law about my purchase and she said “I have one of those. They’re really nice, but I can’t figure out how to use the software.”

So, being the good son-in-law that I am, I decided to take a look at the software, which is called Photo Resizer. It worked just fine; the problem is that its interface could use some tweaking.

Here’s the first thing you see when you run the program:

Screenshot of Brookstone "My Life" photo frame software 

I’m no psychic, but I can say with near-100% certainty that you probably don’t store photos in your Windows/system32 directory. So I used the rather old-school directory navigator to get to my Pictures directory and then to where I’d stored my photos from PDC 2008:

Screenshot of Brookstone "My Life" photo frame software

From there, you check the boxes corresponding the photos you want to transfer.

Once you’ve done that, it’s time to select which album you want to move the photos to. The digital album contains 4 internal albums, so you can group your photos by criteria – perhaps album 1 will hold your vacation photos, album 2 will have family photos, and so on. There’s a physical button for each album, so switching between albums is pretty quick.

You select the album you want to move the photos to by clicking the Browse button (it’s in the Save Photos panel), which makes a modal directory selector window appear:

Screenshot of Brookstone "My Life" photo frame software

…at which point you’d select the directory corresponding to album you want to move your photos to. Fortunately for the user, the default directory in this directory selector is ALBUM1 in the volume named PHOTOALBUM rather than Windows/system32. I suppose if I really wanted to, I could use the app for more than just transferring photos to the album, but as a quick utility for downsizing photos to 320 by 240 and saving them in the directory of my choice.

Once that’s done, one step remains: clicking the Resize button, which is the one button in the entire interface that doesn’t look like a button.

If you’re a reader of this blog, you probably could take a look at the interface and immediately understand what the program does and know what to do to get the photos on your your drives and camera cards into your photo album. But I’m willing to bet that many people in the target market for the photo album would find Photo Resizer’s user interface confounding. My mother-in-law did, and she’s probably not the only one.

Now don’t get me wrong – I actually like the Brookstone “My Life” digital photo album. The device itself is easy to use, and I know a lot of people who’d love one of these, and I’m sure you do too. I just think that there’s an opportunity for developers of Windows desktop apps here, and probably with a lot of consumer goods that hook up to people’s PCs.

What would it take to build a user-friendlier version of Photo Resizer?

Fortunately, we’re in the USB age, which means that as far as your computer is concerned, many USB devices “look” just like hard drives. Such is the case with the “My Life” photo album, which looks like a drive with the volume name PHOTOALBUM containing four directories, ALBUM1 through ALBUM4. Reduced to its essence, Photo Resizer simply does the following:

  • It asks the user to specify a set of photos
  • For each photo in the set, it creates a version reduced to 320 by 240 pixels at 96 dpi
  • It saves each of those reduced photos in a specified directory

On one level, it’s a reasonable hobby project. User interface and user experience gurus could have a field day dreaming up a revised user interface, and developers could use this as an opportunity to try developing an app using WPF.

On another level, it’s an opportunity. How many times have you used a very nice device that came with software for your computer that seemed like an afterthought? I can think of a number of devices that I own or have owned that fall into that category. Perhaps there’s a market for improved applications with beautiful, intuitive user interfaces for devices like the “My Life” photo album. Maybe they could be sold online for some small fee – I’m think 5 or 10 dollars. It could be a nice side business for a developer; at the very least, it’s another “feather in your cap” for your resume.

I told my mother-in-law that I’d write an easier-to-use app that she could use to transfer photos to her album. While I’m at it, I’ll post some articles covering what I did and maybe solicit your input. Once it’s done, I’ll post both the app and its code online for you to peruse.

Here’s the challenge for you: can you think of any opportunities to write improved applications for devices that hook up to computers? Can you write a better app for the “My Life” digital photo frame?

Categories
Uncategorized

Pragmatic Thinking & Learning: My Favourite Geek Book of 2008

Cover of

This article also appears in Canadian Developer Connection.

It’s easy to point to books on understanding and improving the inner workings of your code, the software and hardware platforms on which it runs and even the processes used in developing it. It’s much harder to find one on understanding and improving the programmer, or more specifically the programmer’s “wetware” – that is, the brain and mind. A few books aimed at programmers give a little space to the topic: Tog on Interface has a section and exercise on building your intuition, the first edition of Code Complete devotes a small chapter to character, and Cocoa Programming for Mac OS X reminds the reader that getting extra sleep when learning new material is essential. For a whole book on the topic, we’ve had to wait until Andy “The Pragmatic Progammer” Hunt’s Pragmatic Thinking & Learning: Refactor Your Wetware.

The first few chapters of PT&L form a quick introduction to the theories of cognition, learning and neuroscience on which the rest of the book is based. Among these are the Dreyfus Model, which explains how we progress from novice to expert and the steps along the way and a model of the brain in techie terms, shown below:

Diagram showing a "Dual core" model of the brain

Once PT&L has laid out these foundations, it dives into the brain-refactoring, including:

  • Taking advantage of R-mode (often called the “right brain” in pop psychology), which often gets ignored because of its non-linear, non-linguistic, unpredictable and even “artsy” nature. It’s actually an amazing problem-solver, so much that PT&L suggests that you should “lead with R-mode and follow with L-mode”, or more colloquially, “write drunk; revise sober”.
  • Working around the bugs in your brain. And there are many, from the primitive “lizard brain” that likes to override our higher cognitive functions to cognitive biases to generational affinity.
  • Learning deliberately: what learning is and isn’t, how to plan to learn, figuring out what your learning style is and how to best take advantage of it, and harnessing mind maps, documentation and teaching in order to learn.
  • Gaining experience, which includes understanding the importance of fun and how pressure kills cognition, learning the “inner game” and why your mantra shouldn’t be “learn to build”, but “build to learn”.
  • Managing focus, a very important topic since there are so many things vying for it, from office interruptions to the siren song of the internet, with email, IM, Twitter, Digg, Reddit and LOLcats. One of my favourite bits in this section was some research whose results indicated that constantly checking your email lowers your effective IQ more than smoking a joint.

PT&L does a great job following its own advice by presenting its material in ways that best take advantage of how our brains work, reinforcing its with anecdotes, metaphors and visuals and using the enjoyable style for which Andy Hunt’s other projects, such as The Pragmatic Programmer and his various training sessions have become famous.

As with any book that proscribes a new way of doing or perceiving things – think of books on Agile programming or “Getting Things Done” methodologies – you’ll have to pick and choose which ideas and techniques work best for you. In his review, O’Reilly editor Nat Torkington found the section on generational affinity a little too “Malcolm Gladwell”-ish in the way that it treats anecdotes about generations as data (personally, I think there’s some truth to the generational affinity thing). I do agree with Nat that some of the exercises, such as “Morning Pages” that seem a bit too new-agey/hippie even for me – and I’m the kind of guy who’d go to Burning Man.

This is the only book of which I’m aware that covers how to improve the tool that really develops code: not your platform, language or editor, but your mind. It’s worthy of several readings, first straight through and subsequent dives into specific sections. I took it with me on my flight from Toronto to TechDays Calgary and found it both not only informative, but engaging and entertaining as well. Best of all, barring some quantum leap in cognitive science that invalidates what we know today, PT&L will probably have a much longer shelf life than most of the tech books in your library.

It’s my favourite geek book of 2008.

Pragmatic Thinking & Learning is available in both dead-tree (US$34.95 direct from the publisher, CAD$30.69 from Chapters/Indigo online) and PDF formats (US$22.00). It’s a finalist in the “Books General” category of the 19th Annual Jolt Awards.

Would you be interested in hearing more from PT&L’s author, Andy Hunt, himself? Let me know either via email or the comments, and I’ll see what I can do about arranging an interview in some format with your questions!

Categories
Uncategorized

Now Appearing on Canadian Developer Connection

Screenshot of my first article on "Canaidan Developer Connection"It’s time for me to stop lurking and start posting on Canadian Developer Connection, the official blog of the Microsoft Canada’s Developer Evangelism team. I posted my first article there today: a quick introduction telling the readers who I am and what I’ll be doing over the next little while.

Of particular note is this paragraph in the article:

I don’t know if you’ve got this feeling, but I do: over the past few years, while Microsoft has continued to deliver its excellent developer tools, the outreach seems to be directed at the decision-makers — the people with the "buy/don’t buy" powers of approval — rather than at those of us who get our hands dirty with the code and make the stuff actually work. I call this the "Fourth-Party Developer Feeling", the sense that although you’re person who has to ultimately use our stuff, you’re not the one getting the love and attention. I think it’s time for that feeling to end.

As for good old Global Nerdy, I’ll still be publishing articles here, just as I did when I worked at Tucows and wrote tech articles for both The Farm and this blog. Right now, I have no formal process for deciding if an article belongs in Developer Connection or Global Nerdy, just a couple of guidelines:

  • What does my gut say?
  • Very Microsoft-specific? Developer Connection (with a possible cross-post to Global Nerdy).
  • General geek culture? Global Nerdy.
  • Speaking with my Microsoft hat on? Developer Connection. Speaking with it off? Global Nerdy.
  • Really long technical article with lots of example code and diagrams? Global Nerdy, and if it’s specific to Microsoft tech, a link to it from Developer Connection.

Keep an eye on that blog!