I tech!

from Concepts to Consumption

Audio Zoom

Posted by bhushit on January 17, 2012

I had this idea nagging in my mind. Auditory sense lacks one feature that visual can offer.

Today I could name it: Zooming.

Eyes can focus in a solid angle (theta and phi) to a significant resolution, without ignoring the distance (r).

Ears can also focus in a solid angle to a significant resolution.

Ears can’t distinguish between “loud” and “near”.

That is why, a camera can zoom in but a sound recorder can’t. There is just a focal length adjustment in a camera but the microphone HAS to move nearer.

***

As the readers of this blog are aware, I rate Internet and Wikipedia as great tools to humble ourselves. By the time one thinks of a problem, someone else has already thought of a solution!

Here is the news about solution to Audio Zoom.

Interestingly, Wikipedia doesn’t have any entry even about the concept of Audio Zoom.

***

The idea is good. It is just for the closed field. It can be of use of ESPN but not of Animal Planet.

However, I am very glad that someone thinks about such problems and are actually able to do something about them!

 

Posted in User Interface | Leave a Comment »

The “See” and “Show” of User Interface Design

Posted by bhushit on January 16, 2012

I didn’t realize it till today why I wasn’t able to find a decent multi-party game player gadget.

Today I realize that all the GUI is all about “See” and never “Show”.

If you were fond of Sanskrit grammar you will understand that all the UI is “aatmanepadee” and not “parasmaipadee“.

Going by Indian philosophical phrases, current UI is always “so-aham” [That is I] and never “tat-tavam-asi” [That is you]. It is like Nataraja holding a mirror in his hands.

In current UI, there is only one interface – what you see – and never what you want to show to others.

How can we achieve third party interface? Simple.

Imagine your phone, tablet or laptop to have two screens – with the other party sitting on the other side. The other side too may have input facilities – like a touch screen or a mouse or a keyboard – and probably a clipboard also.

You’d ask for the uses of such an interface. I can think of some scenarios:

  • When it comes to playing cards, you have some information (in your hands) and you show a part of that information to others. Now, show me an equivalent of that in the UI
  • PowerPoint(R) has a facility of adding notes to the slide – but it is too restricted. There is no paradigm shift that PowerPoint(R) offers
  • Cameras offer another angle. Just look at Apple’s design dilemma – should they have two cameras – One to “see what the camera holder sees” and another to “show how the camera holder looks like”? Whether it should behave like a web-cam or like a video camera?
  • Probably the same “ctrl+C” and “ctrl+X” may have one more destination than “ctrl+V” – on the “other’s view”
  • Application windows can be Opened/Closed. It can also be Minimized/Maximized/Restored/Sized/Moved. The second set of operations is limited to the user, it doesn’t say anything about the guest!
  • Logging is kind of this third party facing situation. Opening up stderr is like opening up another stdio. However, in the scenario I am describing here, stderr is not replaced
  • Communication applications have somewhat similar problem to handle – how would your web-page, mail or chat look like to the other party is a constant question in UI development community. However, the guest in those case is away in time or distance or both from the computer. In our case, we are talking of concurrent existence of the user and the guest
  • Take again the MVC paradigm. It talks of one “V”, “view”. It doesn’t talk about “Show” being different from “View”
  • Yet another view is offered by the projector interface in Lenovo desktops. When you switch your laptop to projector mode, it asks whether you want to use it for “Computer only”, “Duplicate”, “Extend” or “Projector only” mode. This in my view is the first serious awareness about the third party. You may like the guest to have the same view or use the same hardware to have more view or limit your thoughts to yourself or just use the guest’s resources

***

One of my colleagues, Arun P Y asked me “How about audio interface?”

I’d split the reply in two parts: One is auditory interface (output from the computer) and another is speech interface (input to the computer).

You’d agree that speech interface is a bit stretch anyway. It is in a broadcast medium and there is no privacy. [That is why I am a bit bearish on speech recognition and related sci-fi stuff. Did any sci-fi talk about the chaos that generated due to crying babies, honking drivers or simply a snooping third party around the speaker?]

Then remains auditory interface. Again, there are two different purposes: to hear and to tell.

His point was: asking the other party to wear earphones will kill the whole idea of this third party awareness.

I agree.

The idea is not to cover the world with leather. Idea is to wear shoes.

It should not be hurtful to wear a headphone and talk to a person. It would require you to imagine a scenario with six interactions:

  1. User to Guest – talk in broadcast medium
  2. Guest to User – talk in broadcast medium
  3. User to Computer – talk through microphone #1
  4. Computer to User – talk through speaker #1 (worn as a headphone)
  5. Guest to Computer – talk through microphone #2
  6. Computer to Guest – talk in broadcast medium or through headphone #2

Complicated, right? Yes. Dealing with the third party was never easy!

***

Now extending the logic of Arun, what about touch (tactile) interface? Third party touch recording, manipulation, transmission and reproduction could mean huge business!

What about olfactory interface? The difference between “smelling” and “wearing perfumes” could be hardly useful.

The same applies to the final sense, long ignored by hi-tech – taste!

***

Again, y0u may ask what about “fourth party”? I’d say, let us conquer the third party problem first. Let applications emerge. The problem solution is very simple then – multiple I/O with multiple views :-)

***

In the next generation of UI design, more than

  • yeh goat naheen, yeh boat naheen” interface of Spice phones or
  • sixth sense magic of Pranav Mistry or
  • the mouse-less motion sensing of that Korean genius or
  • boundary-less-ness of Synergy or Multimouse
  • eye tracking from Gaze

… we need the “other guy’s view” ingrained.

Yes, we need to have two sets of teeth – one to show and another to chew.

***

Now the question is to readers – for what kind of (existing and future) applications do you think the difference between the user and the guest makes the most sense?

Posted in User Interface | Leave a Comment »

Policies of distribution of an entity over many possibilities

Posted by bhushit on January 13, 2012

  1. First Come First Served (Always order the first dish)
  2. Randomized (Close the eyes and put a finger on a random menu item)
  3. Round Robin (Go around the menu)
  4. Weighted Round Robin (Order every %3=0 dish twice)
  5. Hashing (Order every “day%7″th dish)
  6. Most Used/Historical correlation (Always prefer to order the same dish)
  7. Historical anti-correlation (Never order the same dish again)
  8. Priority based preemption (Order my favorites as they are made and toss away the one I am having)
  9. Favorites (Some dishes are always popular, no matter who orders)
  10. Least Recently Used (Order what we haven’t eaten in a while)

Which ones do I miss?

Posted in Uncategorized | Leave a Comment »

Dream like Turing Machines?

Posted by bhushit on January 12, 2012

I am fairly ignorant about theoretical computer science.

Recently on Wikipedia I learned about a variant of Turing machines that actually generate decision trees instead of decision paths of the classical Turing machine. This new type of Turing machines are proven to be functionally equivalent of classical Turing machines. The article notes that such machines could be in theory more efficient than the classical ones. There ceases the interest of a theoretician.

I am not very sure about the theoretical soundness of my extension of this idea but I note it here nevertheless.

Loop Unrolling is a well-known strategy in Parallel computing. However, my readers know it very well that I am never against loops.

I don’t like the idea of decisions made by programs unless forced by environment.

If we evolve into an era of millions of simple (probably load and store) microprocessor cores on a chip, we can eliminate a lot of decisions. That means, no matter what the dynamic state of the program is, all the possible paths (or at least, breadth first paths) will be distributed as code to each core. Each core will have its stack and data (and global and text) segments.

There could be an “aha” trigger that finally selects a computation to be output.

Also, there could be other triggers (like need to I/O physically) that may trigger a “state swap” out of cores.

***

It is quite interesting from practical point of view.

It makes programming very simple to debug.

It is like our dreams – very less logic and a lot of loops.

Only when we wake up (“aha!”) or need an I/O (like hearing child crying or an earthquake sensed) we wake up and take a path that makes sense.

What do you say?

Posted in Decisionless programming | Leave a Comment »

Protected: Thoughtless approach to call display

Posted by bhushit on January 12, 2012

This post is password protected. To view it please enter your password below:


Posted in Phones and Cell Phones, User Interface | Enter your password to view comments.

Protected: Something is wrong with phone address books

Posted by bhushit on January 12, 2012

This post is password protected. To view it please enter your password below:


Posted in Phones and Cell Phones, User Interface | Enter your password to view comments.

Simultilinguality

Posted by bhushit on January 9, 2012

We have software.

We have many human languages.

We have Unicode.

We can install various software in various languages.

We can start an OS in a particular human language – but can’t change the human language of the computer in-between?

I work with people speaking multiple languages. I need such stuff. Sometime working with my one friend and needing Hindi, another time, another friend and needing Kannada, yet another time, Chinese.

Why can’t we come up with a standard protocol of “Simultaneous Multi-linguality” or “Simultilinguality”?

Posted in User Interface | Leave a Comment »

About displaying a lot of entries of structured data

Posted by bhushit on January 9, 2012

… pagination is the standard answer. [Imagine your Yahoo! mail being displayed.]

Searching and sorting are also thrown in as standard interface features. In some environments, filtering and/or grouping is also featured.

This post deals with the frustration of deletion.

Just try deleting a lot of mails from Yahoo! or Gmail. You will be fine deleting for around 75% of your first page or so.

Then the pain starts.

Everything above your mouse pointer is worth keeping – and small number of useless stuff still lurks below. So you delete one or two of these mails.

Then the page refreshes and yet another differential of two or three mails are pulled from the database to display – and you decide to delete or keep them – in a diminishing return on time spent.

Why can’t we change the sorting method itself? For example, if we decide to sort on the Subject of the mail, it should actually split the query as if tabbed dictionary is being opened up – all starting with an “A” on one page, “B” on another page and so on.

That way, say you are guaranteed to scan all the mails in 26 (or at least some tractable number) of clicks. There will be no more annoying reloads of diminishing returns!

If you are sorting on a time criteria, sorting could be like a calendar.

If you are sorting on attachments, read or not, replied or not, forwarded or not etc., the problem still remains – because the number of equivalence classes is just two.

However, for large number of fields, the problem is solved.

Why don’t we do this?

Posted in User Interface | 1 Comment »

A genuine use of machine learning

Posted by bhushit on January 5, 2012

AI winter apart, as I mention in my previous post “Do you want to help us enhance the product experience?“, I suggest one more use of machine learning – learning the preference of users about various GUI controls.

Deriving genuine use cases for a GUI is an exciting possibility, isn’t it? Has anyone tried this before?

Posted in User Interface | Leave a Comment »

Do you want to help us enhance the product experience?

Posted by bhushit on January 5, 2012

A lot of software nowadays ask this question. They collect anonymous crash reports and send it to the developer.

There are two other ways I can think user experience can be enhanced.

One I discussed in previous post titled “One Way Help“. If automatic crash logger sends Severity 1 issues, such an “Inverse Help” may send in Severity 2, 3 and 4 bugs.

The other idea is about the GUI layout. Outlook is the worst example of organizing menus. Just try to “Search” for the “Search”!

I don’t know what experts of GUI design say. I can see menu organization as a learning exercise. When I say “learning”, I mean “machine learning”.

A Hidden Markov Model or an Artificial Neural Network that learns the sequence of GUI controls pressed can get a gist of how the software is “controlled”.

Such learning can periodically and with explicit permission of the user, be sent to the software developer for realignment of frequently used GUI controls.

Based on various conventions (like “the top 10 controls should become buttons”) next version of the software can become very user friendly.

What do you say?

Posted in User Interface | 1 Comment »

 
Follow

Get every new post delivered to your Inbox.