Andalib Blog

Better UI. Better World.


Archive for the 'Uncategorized' Category

Blur fade

Monday, April 23rd, 2007

I implemented the blur fade technique, it is in the latest copy of Andalib Desktop. When the desktop first shows up every icon does a blur fade, it also occurs when you add a new file/folder to the desktop. Try not to vomit while looking at the moving background image. That is some placeholder 3D UI, that should be replaced soon.

All of the normal desktop icon operations are now supported, so please feel free to start using it as your new desktop.

Time to add another dimension to my UI

Wednesday, April 18th, 2007

The next project is all about 3D UI. I reworked my rendering platform to support mapping 2D UI onto textures mapped to meshes and render all of the 2D UI using Direct3D. Little known fact, modern day video cards are actually a 2D video card glued onto a 3D video card. They are designed to run in either mode, but not both at the same time. So, if your program renders in 2D using GDI then tries to render in Direct3D it will be slow. For the sake of performance, my entire rendering platform can run completely in GDI or in Direct3D. Why bother with all of this work? The answer is simple pixel shaders. Probably the coolest example of parallelism since the texture pipeline. With pixel shaders, my software can do photoshop-style layer effects real-time. Blurs, sepia, drop shadow, bloom, saturate, etc. can all be used between layers of UI. Plus I can incoporate live data into the rendering, such as light sources and do bump mapping.

This is not a well travelled space so I would like feedback on some UI ideas. Let me know if you think either of these ideas would make software better:
* blur/fade - fade in new UI while going from a blurred image to an in-focus image
* mouse light cursor - use the mouse as a subtle source of light that well effect the brightness of the UI, could be really compelling with bump mapped images

What do you think would be a compelling use of 3D?

p.s. go check out Andalib Desktop it is using the 3D rendering platform.

Calculator and the distractions of finishing a product

Tuesday, March 27th, 2007

I just finished the first release of my calculator software. Anyone who has ever gone through the final days of finishing a software product can relate to this experience. It is a difficult time to update one’s blog thus the little hiatus. I recieved a lot of feedback on this release, but I would love more for future releases so download it and try it out.

This is actually the 3rd calculator application that I have created. The first one was built for Microsoft when I used to work there, it was called powercalc or PowerToy Calculator. It even got a mention on wikipedia, but only to comment that it did not graph some function correctly (not a problem in this release). Then I made a second version for a handheld, also while I at Microsoft. I could not find anyone interested in taking it to market so it died. Now I just finished a newer better version. Calculator software is essentially the origin of all software, even the name computer (device that computes) derives from the initial use of computers and thus the software than ran on them. Ironically, normal personal computers are not particularly well suited to do calculations they have many internal limitations, rounding errors, limited precision, etc. To build a useful calculator you first must build a math engine to perform abitrary precision calculations which means redoing all of the cos, sin, tan, log, sqrt functionality built-in to all computers. I like to aim high, so I threw in support for complex numbers which, trust me, seriously complicates calculating logarithms.

Despite all of these maths, the original motivation for working on a calculator was actually to tackle a difficult user interface design problem. At first glance, this calculator software differentiates itself. Instead of a sea of buttons you have two big white boxes for input and history followed by a handful of menus. Advanced functionality like graphing is hidden just below the surface and can be triggered simply by entering a function. Most of this user interface design is simply theory, so what I really want to know is how individual users respond to it. Please send me feedback.

Interactive Density

Wednesday, December 27th, 2006

As far as I can tell, I just coined this word. A simple google search seems to agree with me. Interactive density is the number of possible ways to interact with an application at any given moment divided by the area used to display the UI. For all of these measurements let us assume you are using a display running at 1152×864 on a 15″ display (12″x9″). If every pixel on your screen did something different it would be an interactive density of 10,000 (interactive points per square inch). If you have a single button on your display then it would be 0.009.

Let’s look at the values for a few common cases:

  • Photoshop: 1.11
  • Word: 0.84
  • Andalib Organizer: 0.28
  • Google homepage: 0.16

It would be interesting to do a study to see if there is a strong correlation between interactive density and the percentage of the population that can figure how to perform tasks using a given UI.

I think that this provides an interesting way to analyzing UI and hopefully will provide insight into the appropriate level in interactivity to provide in the UI to solve certain problems.

Date Slider

Friday, December 8th, 2006

dateslider.PNG

Andalib products are designed to be distinctive and intuitive. This is a challenging task involving a balance between new design ideas and potential of user confusion. The Organizer product contained an innovative method for selecting the date to view; we call it the Date Slider. It is a combination of 3 selectors, a selector being a control designed to allow the user to pick or select. Combobox, dropdowns, tab controls and radio buttons are all selectors. When choosing a selector you need to decide if the values are fixed or infinite, the numbers of values to pick from, the importance of the value, and how quickly you want to change the value. Combobox has a dropdown with a list of fixed values plus it lets you type in a new value, which makes it a good option for lists of infinite values with a few commonly used values. Tab controls and radio buttons present every choice at the top level, which make them good for important values that need to be quick to access. In the case of the Date Slider the value is important and the range of values is fairly limited. Plus the values have an inherent order, January precedes February. We came up with the idea of presenting them group into year, month and day in vertical sliders. It provided a very distinctive design element without much confusion. What do you think? Did we make the right call? Do you like it?

Talking to your computer

Monday, December 4th, 2006

As a thought experiment I am pondering whether or not our daily interactions with our computers can be considered a form of communication, a language. We can consider buttons to be verbs, data and files to be objects, the cursor is the pronoun “I”, and attributes on files or other data are adjectives. That would seem to provide sufficient building blocks for constructing a language. You can take the analogy a little further and look at the grammar, ordering of the basic components of this language to provide meaning. Take the simple example of making text bold. You select the text then press the “bold” button. You could think of it as this sentence, “I want to make bold text from word ‘Talking’ to word ‘computer’”. How does the computer respond to all of this communication? It can change the pixels on the screen, send data across the network, modify data on the hard drive, or print. I believe that provides more than sufficient means to respond to our communication. As with all thought experiments, the important question is whether or not we can use this method of thinking to further our understanding of the underlying topic.

Why do people think that Word is complicated? It is probably because there are a lot of buttons and options. If we use this computer language concept, then we could rephrase this statement to Word has too many verbs. But now the statement starts to feel absurd, does English have too many verbs. Clearly Word has fewer verbs than English, so the problem is not the number but the presentation of the verbs. You can think of communicating with Word like trying to talk to someone speaking another language and using a dictionary to find each every word used in your communication. If we want to overcome this problem we must remove or improve the “dictionary”. Many people have tried to enable actually speaking to computers, with very little success, so I am going to ponder the improvement of the “dictionary”. Let us take all of the verbs, objects, and adjectives of our “language” and put them in big database. For each verb and adjective define the criteria that allows it be used. Can I use the “bold” verb on a table? Now we can build a new version of Word where we can record which verbs are used most often, which ones are likely to be used during the same session as the other verbs, which verbs are likely to be used by which types of people, which verbs are likely to be used with which types of objects. With this data we could re-arrange the UI to most optimally present verbs to the user. We can show them in context menus, menus, toolbars, ribbons, sidebars, etc. We can also develop different versions of Word for different types of users. We could have a doctor version, student version, teacher version etc. This is similar to professional terms, or words specific to certain professions.

In conclusion, there is no conclusion just a bunch of ponderings. Please feel free to add comments explaining the futility of this thought experiment.

What is the best UI (user interface)?

Thursday, November 30th, 2006

I love this question because it taunts you to provide a nice simple answer, which of course would be wrong. UI is the layer between a human being and a computer, the bridge between the irrational and the rational. Because the problem involves an irrational human being then the solution is also equally irrational. Thus the simple rational question about what the best UI is becomes very complex to answer. Clearly, everyone wants UI that is performant, intuitive and unobtrusive. We are also highly emotional beings and tend to want something that connects with more subconscious desires. Something that feels welcoming, friendly, professional, calculating, beautiful, tempting, etc. Not everyone’s subconscious desires are the same which makes designing UI a challenging process.

Contact Us | About Us | Digg Digg Us | del.icio.us Del.icio.us Us | Copyright ©