Here is a fun little C# Duel:
http://pexforfun.com/Default.aspx (click Random Puzzle)
I solved my first one in just 1 try (compilations) so it doesn’t take long to try.
What is Pex and how does it work?
Basically Pex is a tool to help you write Unit Tests by actually calculating all of the permutations of a function and assisting you in creating unit tests that should deterministically “prove” that function. When used in conjunction with another tool called Code Contracts (a little bit down on the page) more information can be expressed about the intent of the function which Pex can then use to help prove by unit tests. The neat thing about Code Contracts is that it’s part documentation, part unit test in its self.
If you want to see it in action, you can try it here:
This is a branch of computer science called Static Analysis & Verification and is the future of computing in our field.
I am a continual student of good user interfaces (UI). When asked what my weakness is as an Interview question I will almost always admit that I am severely UI impaired! If the UI is designed professionally then I can usually implement it pretty well, but if I am left to my own devices to create a UI the resulting creation is U-G-L-Y!!!!! More than that it is often not as practical or as functional as a good UI design would be.
I can however appreciate good UI design. I can see that this works better than that or this is a good intuitive UI. Although I am a champion of the Ribbon Interface that so many of you despise (mostly because it took you years to memorize the crappy menu’s and toolbars you had before it) so that may put my credibility in the area in question with some of you anti-ribbon fan-boys!
Today I ran across a beautiful example of a really good UI design. Here it is:
This picture popped up shortly after I enabled AdBlock. I am a big cheapskate – especially when it comes to software! That may be oxymoronically considering I am a programmer, but usually the way I respond when I see a “nag” screen or the like is that I want to get it out of my face ASAP and I’m sometimes even a little annoyed that it’s there. For me a good example of donationware that I like is Paint.NET; whereas donationware that I feel bugs me a little too often would be Win RAR. Both are of tremendous use for me (Paint.NET more than WinRAR), but my warm fuzzy feelings are just more with Paint.NET because I don’t feel like the pester me. Of course there is the adage out of sight, out of mind and when designing donationware you will have to find new and interesting ways of accomplishing inception. Even with Paint.NET (after I’ve installed it literally dozens of times on dozens of different computers) I usually don’t dwell too much on the idea of donating. I’ve considered it for Paint.NET where I haven’t as much with other donationware, but never made the leap. I read every single word on the page, and seriously considered donation and that’s why this UI is so effective!
This UI is so cleverly done that I wanted to read every little bit of it. The first think I saw was the picture. This makes the programmer a real person and that is big! The second is “This may be the last ad you ever see” is a great headline that makes you curious. The use of the slider-bar with red/green gradient is brilliant! To add a bit of fun the “thank you” message changes when you move the slider.
To Recap, a good UI will have the elements of:
- Hook: You will want to learn more
- Intuitive: You know what it is going to do before it does it and you’re comfortable that it’s not doing something unintended
- Attractive: Gone are the days of flat-style buttons and plain looking UI. Even the most mundane of user interfaces is expected to look like a champ now days.
- Simple & Clean: There should not be too many knobs and levers on one screen
- Fun: Although not required, defiantly helps!