Saturday, September 19, 2009
Jeff Barnes has published a wonderful array of material to his Sky Drive:
You can read his description and get the link on his blog. If you have the Windows 7 training kit, you may recognize a lot of this, but if you're just starting to think about developing for Windows 7, this is one way to get started. For others, try my Client Development category.
Thursday, September 17, 2009
Recently, I read an inspiring document. It included these quotes:
- “Everything is best for something and worst for something else. The trick is knowing for what, when, for whom, and why.” —Bill Buxton
- “Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.” —Antoine de Saint-Exupery
- “The ability to simplify means to eliminate the unnecessary so that the necessary may speak.” —Hans Hofmann
- “Simple things should be simple. Complex things should be possible.”—Alan Kay
- “Everything should be made as simple as possible, but not simpler.”—Albert Einstein
- “I have only made this letter longer because I have not the time to make it shorter.”—Blaise Pascal
I especially like the Einstein one, which I've used in works of my own. But what's surprising about these quotes is the document where I found them. It's 828 pages long and most of those 828 pages is more like this:
- To achieve coolness, start not by thinking about what the technology can do, but by focusing on what your target users really need. Before adding that “cool” feature, make sure there are clear user scenarios that support it.
- When asking a question, use labels that match the question. For example, provide Yes and No responses to a yes or no question.
- Don’t give error messages when users aren’t likely to perform an action or change their behavior as the result of the message. If there is no action users can take, or if the problem isn’t significant, suppress the error message.
Can you guess? It's user interface guidelines. Specifically, the Windows User Experience Interaction Guidelines, brought to my attention
by Qixing Zheng, a User Experience Advisor with Microsoft Canada, and available on MSDN
as a tree of web pages or for download as a single PDF
. And man, are they good! The philosophy behind them really resonates with me. The document starts out very generally, then drills in a bit, then drills in a bit more, then explodes into hundreds of pages of incredible detail about just the right way to use a button or a link or radio boxes or whatever. Here are the headings in a 19-item list that I just love:
- Nail the basics
- Design experiences, not features
- Be great at something
- Don’t be all things to all people
- Make the hard decisions
- Make the experience like a friendly conversation
- Do the right thing by default
- Make it just work
- Ask questions carefully
- Make it a pleasure to use
- Make it a pleasure to see
- Make it responsive
- Keep it simple
- Avoid bad experiences
- Design for common problems
- Don’t be annoying
- Reduce effort, knowledge, and thought
- Follow the guidelines
- Test your UI
In the real document, there's a paragraph or so for each of these that flesh it out just a little. But as you read the whole hundreds and hundreds of pages you will see how these 19 concepts are really informing all of it. And I love the courage to stop at 19, a prime number, instead of trying to come up with another one to get a round 20.
I'm only quoting the philosophy stuff here but man, there are plenty of technical details like how far apart to space controls, how to design a good ribbon, choosing your button text, working with pen, touch, keyboard shortcuts, and the mouse, when to use menus and toolbars, when your application should take focus, how long tips should hang around before fading away again, and on and on and on.
Read it, live it, pass it around. See if you can't use some of the philosphy and design guidance in your web apps too.
Tuesday, September 15, 2009
WPF applications are beautiful. Using WPF themes and controls helps to make that possible. So control vendors make apps that show off their controls - it's a smart thing to do. And here's one that you can use every day
- that I will be using every day - and it's free. Take a look:
This is a snapshot of the Task Board view for a real project I have underway at the moment. Green are requirements, yellow are tasks, and red are bugs. (Why is Create Project Plan still Active on a project that is well underway? Because it's a living document and I check in changes to it against that work item through the life of the project. We're not talking about a .mpp file here.) The views are wildly customizable, of course, but this is a nice one. There are plenty of others. I especially like the Search box at the top. I think we all have fake queries we use for searching, but this is so much neater.
It's a client application (so's Visual Studio, of course) that runs on your machine and connects to your TFS server. You can add/edit and generally play with work items here (including dragging and dropping them from the Active side of a view to the Resolved one to resolve them) and interact with the repository. It's prettier than Visual Studio, faster than Visual Studio, and probably a whole lot more acceptable to the managers, project managers, and QA reviewing types in your life than Visual Studio. The one I showed it to sure liked it.Download your copy today
Sunday, September 13, 2009
I'm a big Joey deVilla fan (known fact.) I'm also a big fan of the book "How to Work a Room", which inspired a line of thought that led to one of my earliest blog posts, over five years ago - What You Want to Get Could be What I Need to Give. So if Joey is quoting "How to Work a Room", you've got yourself a must-read. And then he's doing so while discussing a conference I'm going to speak at!
Why do you go to a conference instead of just watching the sessions online? So you can meet people. But gosh, when you're first starting, having conversations at conferences can be HARD. And it gets harder if you start beating yourself up for not doing it. Once you start doing it, and start reaping the benefits, you'll do it more and more, trust me. But to get started, relax. It wouldn't hurt to follow Joey's two big tips: "It’s especially important to talk to people you don’t know or who are
outside your usual circle" and "The best way to make weak ties at a conference is to work the
room." He follows that with 9 specific things you can do.The last one reminds me of another post from the same era in my blog: Know
What You Want From the Meeting. They're all excellent and I really recommend you come to TechDays and put them into action!
Friday, September 11, 2009
There's still time to plan a trip to Boston for the BizSpark incubation week, October 5th to 9th.
As Sanjay blogs, you don't need to be in BizSpark to come - it's an event to help startups learn about Windows 7, how it can make your product better, and how to be a successful entrepreneur. You need to be at least interested in building an app that will include touch, sensor and location, the new taskbar or the new ribbon. That covers a lot of ground!
It's a free five day event, though you have to get yourself to Boston and find a place to stay. Up to three people from your firm can attend. Nomination details are on Sanjay's blog, but if you have a BizSpark sponsor you should ask your sponsor to send your nomination to Sanjay.
My firm is a BizSpark network partner. Generally speaking, we sponsor our clients - folks we're mentoring - and not people who are contacting us only to get into BizSpark. If you think completely legal free developer software (Visual Studio Team System, SQL, Windows etc) is just the ticket to get your startup started up, you should definitely look into BizSpark. It's a tremendous opportunity.
Wednesday, September 09, 2009
Sasha Goldshtein (not the same as Sasha my MVP lead or for that matter Sasha my nephew - seems some names just follow me around) has another great Windows 7 post
and this one features native C++ code for extra fun. It tackles a problem you're likely to run into if you're doing Windows 7 development - what should you use as a toolbar preview if your app has a number of tabbed views? As you probably know IE 8 shows you multiple previews, one for each tab (within reason - I have dozens of tabs open some times and it doesn't show all of them) so you might want the same effect for your application.
The idea is that the app looks like this:
And the thumbnails look like this:
One for each tab. Sasha has provided a pair of blog posts explaining this, and you can download the code from his SkyDrive. Very nice!
PS: Want to do it in managed code? Well go get the Code Pack
then. Tabbed Thumbnails are handled nicely there.
Monday, September 07, 2009
Keyvan Nayyeri knows Visual Studio Extensibility all right. He even wrote a book:
Now he's written a multi-part blog series about extending Visual Studio.
- Part 1 clarifies the difference between an add-in and a package, and acknowledges that there are also other ways of extending Visual Studio (it's actually incredibly extensible in a lot of different ways). It's a nice history review to show us how we got to where we are.
- Part 2 is about the IDTExtensibility2 and IDTCommandTarget interfaces. All add-ins implement the first, and those that are on the Tools menu implement the second.
- Part 3 turns to packages, which inherit from the abstract class Package (and therefore have plenty of work to do implementing various interfaces.) Keyvan recommends C++ for package development, interestingly enough.
- Part 4 can now talk about the differences between them in some detail. Add-ins are easier, can be written in more languages, but just can't get the same level of integration that a package can. It depends on the functionality you plan to offer your users.
Looks like there are more parts to come ... stay tuned!
Saturday, September 05, 2009
The MVP program is a little unusual. Members are rewarded for what they've already done, and get all the benefits for a membership year even if they do nothing further. Of course, most of us just keep right on doing what we're doing and get awarded for multiple years. Do we do it for the benefits? Probably not. Most of us like doing community "stuff" whether that's speaking, writing, forums, blogging, or whatnot. But the benefits matter - they actually enable us to do the community stuff. We get extra information in the form of access to betas or conversations with product groups. We get access to each other, a treasure trove of information. And we get recognition, which can open doors for speaker selection folks, article selection folks, and so on. I also know as someone who regularly hires developers that "Microsoft MVP" on a resume makes a huge difference for me.
Now my MVP lead, Sasha, has written a pair of articles that summarizes many important things about the program. Part 1
calls us super heroes and Oscar winners (blush) and has some useful links. Part 2
goes into the benefits a bit.
Of course many people want to know how to become an MVP. It's a bit like how to get to Carnegie Hall
... practise practise practise. Do the community stuff every chance you get, throw yourself into sharing your knowledge, and when you've been doing it for a while and you know an MVP or two, ask one of them if you think you're at that level yet. If they say yes, ask if they're willing to nominate you. If you think you're really active in the community, but not a single MVP knows you and knows what you've been up to, you haven't been active enough yet. People who don't actively share their knowledge often underestimate what "active" means.
Even if you're not nominated or awarded, I am confident that the community work you do will be its own reward. Approach it like that rather than to earn an award, and you're sure to be happy.
© Copyright 2022 Kate Gregory
Theme design by Bryan Bell
newtelligence dasBlog 2.3.9074.18820
| Page rendered at Friday, May 20, 2022 1:12:05 PM (Eastern Daylight Time, UTC-04:00)
On this page....
Pluralsight Free Trial