Craig Shoemaker
Craig Shoemaker is a developer, instructor, writer, podcaster, and a man of many hats at Infragistics.
-
4 Elements of Professional WPF Applications
-
New ASP.NET Generated Image Control
The ASP.NET team released a new generated image control on to Codeplex today. You can download the bits here and read a very simple explanation of the control here.
-
The Best 10 Years
-
Hide Your Corporate Underpants - Using Personas in UX Design
-
Installing .NET 3.5 and Visual Studio 2008 SP1 - My Gotchas
I just finished installing SP1 for .NET 3.5 and VS2008. I thought I would share the hoops I had to jump through in the event it saves you some time. Actually the process wasn't too painful. Be careful to remain patient during the install process though - the installers churned VERY SLOWLY on my machine, but eventually I had a successful install.
-
Learning to Build on Rich UI Platforms
-
5 Ways to Know If Your Software Sucks
<p><a href="http://getpixel8ed.com/shows/sucks" mce_href="http://getpixel8ed.com/shows/sucks"><img src="http://download.infragistics.com/users/pixel8/images/pixel8podcast.png" mce_src="http://download.infragistics.com/users/pixel8/images/pixel8podcast.png" width="276" border="0" height="118"></a></p>
Listen to the Show!
<p><a href="http://suckbusters.com/">David Platt</a> is an author, speaker and developer who wants you to recognize that there is a problem in software interface design. Fear not - David is not alone. Computer World recently reported that "<a href="http://www.cw.com.hk/article.php?type=article&id_article=1617">the majority of end users (60 percent) find enterprise applications somewhat difficult, very difficult or almost impossible to use, hampering employee productivity</a>." Yes – there’s sucky software out there and it just might be in your source code repository!</p> <h3>Does Your Software Suck?</h3> <p>I am sure David may have 5 or 10 or perhaps 20 ways you can know if your software sucks, but the following are 5 ways I gleaned from our conversation:</p> <ol> <li><strong>Did you design from the toolkit outward or the user inward?</strong> Perhaps you are a .NET or Ruby or Java wizard, but does your proficiency in these platforms punish end-users? There are dozens of features in any platform that if not managed carefully can result in frustrating user experiences.<br><br></li> <li><strong>Are colors, motion and other visual elements used "just because"?</strong> Designers like to design and coders like to code. Professionals are drawn to their practice often because a sense of passion and desire for a creative outlet. This can be a problem though when software features bells and whistles where elegance and proactive design is more appropriate.<br><br></li> <li><strong>Does the user have to memorize dozens of menu hierarchies or key commands?</strong> Balance is always a problem in user interface design. How do you accommodate newbies without frustrating the power-users? No one said there are easy answers, but with a little thought many features can become apparent at just the time of necessity.<br><br></li> <li><strong>Do you use your final product to test out new design paradigms?</strong> This may seem silly, because people don’t think of what they do in these terms. Often a new feature is included a new build that passed QA and got the nod from the three other developers in the room – all to prove to be too confusing or simply out-of-place to end users. <br><br></li> <li><strong>Do users have to think about using your program?</strong> When someone is using your software, if they spend a disproportionate amount of time thinking about how to use the software rather than the problem the software is hoping to solve – then your software sucks.</li> </ol> <h3>What Should We Do?</h3> <p>David’s advice is provocative. Instead of gunning off a list of do’s and don’ts David suggests the following remedy to sucky software:</p> <ul> <li><strong>Allow software engineering to split off from computer science in formal education.</strong> Software engineering is much more than high performance algorithms and compiler design. Areas of specialty like user interface design and user experience require a different need of focus all the while being in a close-knit relationship with the discipline as a whole.<br><br></li> <li><strong>Software engineering needs specialization.</strong> As hinted above no-one in this day and age can claim to be an expert general practitioner programmer. There is simply too much to know. When "back-end" folks aren’t expected to produce the front-end – then we’ve made significant strides.</li> </ul> <h3>Links</h3> <ul> <li><a href="http://www.codeplex.com/familyshow">Family.Show</a></li> <li><a href="http://uie.com/">User Interface Engineering</a></li> </ul> <h3>Books</h3> <ul> <li><a href="http://www.amazon.com/Why-Software-Sucks-What-About/dp/0321466756/">Why Software Sucks... and What You Can Do About It</a></li> <li><a href="http://www.amazon.com/Invisible-Computer-Products-Information-Appliances/dp/0262640414/">The Invisible Computer: Why Good Products Can Fail, the Personal Computer Is So Complex, and Information Appliances Are the Solution</a></li> </ul> <p><em>My favorite quote from David is when he uses "reptilian midbrain" in a user interface explanation without breaking a sweat! ;)</em></p> <h3>Progress in User Interaction Design</h3> <p>While producing this show I found an interesting post on <a href="http://techcrunch.com/">TechCrunch</a>, <a href="http://www.techcrunch.com/2008/07/29/microsoft-researchers-get-fancy-with-a-sphere-display/">Microsoft Researchers Get Fancy with a Sphere Display</a>. Here is a video of the demonstration.</p> <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/V3HGfIy_zCI&hl=en&fs=1"><param name="wmode" value="transparent"><param name="allowFullScreen" value="true"><embed src="http://www.youtube.com/v/V3HGfIy_zCI&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" wmode="transparent" width="425" height="344"></object> <p>The "surface" appliances seem to be forging closer to the idea of having software that just works.</p> <p><a href="http://popularmechanics.com/">Popular Mechanics</a> did a spot on the surface table. In this video you see how wireless devices interface with each other using the surface table as an intermediary. The best part? You can take a picture on your digital camera and load it on your cell phone: no cables, no syncing and no hassle!</p> <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/kr1O917o4jI&hl=en&fs=1"><param name="allowFullScreen" value="true"><embed src="http://www.youtube.com/v/kr1O917o4jI&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></object> <p>The last video I have for you’re here is of the TouchWall. What I like best about this video is how they spend time explaining how the technology works.</p> <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/YPrfqdl55D0&hl=en&fs=1"><param name="allowFullScreen" value="true"><embed src="http://www.youtube.com/v/YPrfqdl55D0&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></object> <p><a href="http://www.dotnetkicks.com/kick/?url=http://getpixel8ed.com/shows/sucks"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://getpixel8ed.com/shows/sucks" alt="kick it on DotNetKicks.com" border="0"></a></p>
-
UI Decisions: Why & How
-
ASP.NET MVC + ASP.NET AJAX
-
Noe Excuses for Bad Speling
I recently created a number of screen casts that highlight the flexibility of one of NetAdvantage ASP.NET's controls - the WebSpellChecker. I share them here for your spell checking pleasure.