All posts by joshholmes

User Interface Smackdown 2007

SRT Solutions hosted a “User Interface Smackdown” yesterday. While the “Smackdown” part of the name was a little off what happened, it was a great event with some great discussions. James Ward (a Flex Evangelist from Adobe), Drew Robbins (Developer Evangelist for Microsoft), Chris Bernard (User Experience Evangelist from Microsoft), Dianne Marsh (SRT Solutions), Bill Wagner (SRT Solutions), Mark Ramm (Contributor to Turbo Gears and author of the best book out on the subject), myself and a number of other technologists and business owners totaling 34 in all got together and discussed a lot of different options on the user interface and creating the best user experience possible. The event was in an Open Spaces format which means that none of us lead the conference but all of us contributed, none of us knew what the topics were going to be when we started but all of us got to vote on them and suggest new topics and none of us knew what the outcome of the event would be but we all helped shape it. I don’t think that the Open Spaces format is the right fit for every event, but it is a great format for learning and promoting discussion. I learned a lot more about GWT, Flex, Turbo Gears, Ruby on Rails and more. I also learned more about what people are thinking in the areas of design, Rich Internet Applications, Smart Clients and more. We talked about everything from WPF to WPF/e to the Web Services Software Factory to Click One Deployment to an amazing number of other topics. It’s really hard to capture all that we talked about yesterday.

It was not a smackdown at all – it was a coming together of minds, technologies and disiplines that I think everyone who attended was able to take something positive away from. I really enjoyed the event and hope that we will have more like in the local area.

Link to User Interface Smackdown 2007 | SRT Solutions

Martin Shoemaker speaking at the West Michigan .NET User Group

Martin Shoemaker is speaking on April 17th at the West Michigan .NET User Group. His topic is Dee Jay: A voice-controlled Juke Box for Windows Vista. This is an application that Martin is working on. For those of you that don’t know Martin, he is one of the greatest advocate for a lot of the new human interface technologoes that are coming our of Microsoft in the Ink and Voice areas. He is the creator of Tablet UML and a lot of other tools that work well on tablets. He has called me on many nights cursing the speach recognition engines in Windows XP. However, he’s been absolutely thrilled with the voice recognition in Vista. I’ve actually heard that from a couple of different sources. It should be, as most of Martin’s talks are, an entertaining talk with a lot of content. For a preview of some of the content, you should read Martin’s posts on the subject here – http://www.tabletumlnews.com/speech_and_voice_(managed_sapi)/.

BTW: Martin also wrote these books.

 

Link to West Michigan .NET User Group

 

ArcReady: Mid-Tour Update

I’m in the middle of the ArcReady tour around the Heartland district (That’s Michigan, Ohio, Kentucky and Tennessee). Tim Landgrave spoke in Detroit, MI yesterday and did a bangup job as always. It was fantastic to sit and soak in the knowledge that he has gained through the many years that he’s been in business as a consultant on a tremendous number of different projects. He brings a lot of great stories and antidotes that we can all relate to from these varius projects. The only issue is that each of the presentation brings out slightly different sets of antidotes depending on the questions and audience reactions so really, I’d like to sit through all 11 of these rather than just 3 or 4 of them.


I got some questions about the presentation so I thought I’d answer some of them here. First, the names of the books that were referenced in the Patterns and Anti-Patterns section were:


 


Second question that I’m getting a lot is when and where can I get the presentation? We will be posting it on http://www.ArcReady.com as soon as the tour is over.


The question that I have for you is what topics/speakers would you like to see in the future for this series? Feel free to email me direct or leave answers in the comments.


 


Link to Microsoft ArcReady: Reinforcing the Foundations of Solutions Architecture

Kathy Sierra: Death threats against bloggers are NOT “protected speech”

Ever since I read Bill Wagner‘s post on the topic I’ve been sitting here in stunned silence not really knowing how to react. I guess it really does just take few bad apples to spoil it for everyone.

I truly hope that there is a resolution to this quickly and I pray that Kathy’s voice is not lost forever. It’s an amazing voice that can post on everything from Crash course in learning theory to Tech T-Shirts for Girls and every post is a gem.

Link to Creating Passionate Users: Death threats against bloggers are NOT “protected speech” (why I cancelled my ETech presentations)

What’s the Default Answer?

Darrell Hawley said something very intrusting in a conference call one day that sparked a lot of thought on my end. We were trying to hash out a decision on a conference call and as a lot of group decisions go it was taking time. Darrell said, “Well let’s pick the default answer and then if we have time to come back to the decision, we can maybe move off that default.” I started thinking about “default answers” and it came to me how brilliant this is. Almost every question in life has a default answer. We just have to identify the default answer and see if it’s palatable. If it is, then we can leave that question alone and focus on those where the default answer is not palatable. Once we answer those questions in a satisfactory way, then we can circle back to the default answers that were just palatable and improve the decisions there. That part alone is worth buying into because it does two things. 1) It frees us up to focus on the questions that we need to focus on rather than spending a ton of time fighting with decisions that we don’t have to make anyway. 2) Just as importantly, it accelerates the decision making process.

You probably already employ this method to a degree. Think about your favorite restaurant. You probably have a favorite meal. Well – that’s your default answer. When I’m in a hurry, I will just go with the default answer whenever I’m ordering food. When I’ve got lots of time, I’ll read the menu and think through the possible answers and possibly choose something else.

Something that’s very important to understand – the default doesn’t have to be very good. You can review it and improve it. Continuing the dinner theme – the default answer for me at most restaurants is a burger with fries. Often, there are much better choices on the menu. However, I default to the burger a lot of times because of time or lack of focus on the menu or something.

Then I started thinking about those repeatable decisions and how we have to make them over and over and over and it burns a lot of cycles. The easy example is paying the mortgage. Is that a question – yes. Every month you have the decision to pay the mortgage and the default answer, if you don’t decide one way or the other, is that the mortgage goes unpaid. Is that default answer acceptable? No but we are forced to make that decision over and over again. Among all of the other questions in our lives, it’s another thing that we have keep on our mind and struggle with. The result of all of this thought is that I’m starting to look for ways that I can apply technology or process to start changing the default answers. This is different from the first part because moving off of the default takes action every time we answer the question whereas changing the default answer to something at least palatable means that you don’t have to take action after that. Applied to the mortgage example changing the default involves setting up online bill pay or something in that vein. Once that’s in place the default answer is that the mortgage gets paid and you have to take action to stop it. At that point it’s a decision that make itself and you don’t have to do anything which frees you up to focus on other things.

After I shared my thought process with Darrell, he posted the “Philosophy of If“. He wants to break it down to code and write things in If statements. I don’t think that it’s that simple.

However, since Darrell is insisting on me codifying the solution – it would be in the form of database lookups. There’s a table of questions and a table of possible answers with a link table between to put them together. Each question has a link to its default answer. Replacing the default requires identifying better answers, injecting them into the database and replacing the link. Writing the code in Ifs assumes that you have a set number of possible answers and that you have identified all of them.

The question table has the following fields:
ID
Question
AnswerNeedsReview

The link table has the following fields:
QuestionID
PossibleAnswerID
IsDefault
SortOrder

The PossibleAnswer table has the following fields:
ID
Answer
FirstAction -> nod to David Allen and “Getting Things Done” (Great book and process that everyone should read)

Any time that you find a new answer, you insert the answer and alter the AnswerNeedsReview to false. Once you have reviewed, sorted and set the default again, the decisions is just made until the next time that the AnswerNeedsReview somewhere.

Sharepoint Web Services For Remote Portlets (WSRP)

In conversation, someone brought up a Java WSRP implementation and I thought it was an interesting idea. Web Services for Remote Portlets (WSRP) is an Oasis standard defines a set of interfaces and behaviors that allow you to embed content from as web service on your page but more importantly, it allow that content to be interactive with the web service so it’s more than just pulling the HTML. Clicks and other events funnel back to the origional site so that you don’t have to write the backend processing for those controls. This is an interesting idea so I started looking into it.

I was thinking on what would be required to write one, but it turns out that I don’t have to since there’s already one on GotDotNet for Sharepoint. There you can find the WSRP Consumer Web Part Toolkit and the WSRP Producer Web Service Toolkit.

It’s a facinating idea and I can see real possibilities with it. The question that I have is – has anyone used this yet? How well does it work?