RSI, WIMPs and Pipes; What Next?
Tetard asks: "Long live the pipe! Since the `|' was invented by Doug McIlroy in 1973, has there ever been a more effective way of reusing tools and connecting data ? The mouse is a device of the Beatles era; Rather than try and provoke nostalgia in the older ones among us, I'm asking myself, as are others: when we don't try to reinvent the wheel, or at least improve it, why must we try and copy it every time ? Xerox PARC exposed us to WIMPs and we haven't done better: some innovation, some plastic surgery -- but no "paradigm shift" -- where's the
creative destruction that will take us further ? Graphical component programming is turning us into click-happy bonobos^H^H^Hchimpanzees, as we fail to find new ways to manage and connect richer data streams. My web designer friends are damaged for life because of mice, and yet we persist... Where do we go from here ? If we ever invent the graphical pipe, let if have keyboard shortcuts." Yes, you've probably seen a similar question to this run by Ask Slashdot before, but this time I'm wondering if maybe we need new input devices before the WIMP paradigm is replaced with something better. Might any of you have ideas on what form these input devices might take?
For those interested, here are the previous stories that have handled this type of question:
So what it will take to break us out of the WIMP box (or prison, depending on your bias), maybe new input devices would do it, but quite frankly, I wouldn't be surprised if a 3D interface might be another route (it would possibly spark interest in designing a new input device that would work better with 3D interfaces, or maybe data-gloves could serve this purpose?). Going on a limb, maybe this guy might just be the ticket.
LONG LIVE THE PIPE!
computers? what are those?
With a sub-$100 webcam watching you, look at the point of the screen where you would click, and blink.
Are there lots of problems to doing this? Yes. Should that stop me from throwing out the idea? No.
Or some kind of direct line from the brain is the next logical step. Any device that relies on the hands will wear out the muscles over time.
At least if you are weraing out your brain, you might not notice as dementia sets in.
My penis is a pretty good input device.
This is some kinda market research thing isn't it. You just want us to spill out all these ideas so you can steal the best one and make a huge profit off of it. Ive seen your type before and refuse to be dupped by you. SS Disclaimer: The above is a sarcastic comment and as such should not be taken seriously. If you are wondering why such a comment would need a disclaimer than you have never run into the anal retentive types who's only purpose seems to be to pick things apart and point out every fault. To them I bite my thumb!
What do Weakly Interactive Massive Particles have to do with pipes?
Tarsnap: Online backups for the truly paranoid
Natural Language Processing has my vote. Some of these folks are working on it already. Wouldn't it be nice to say "move this thing over here", or some other combination of speech and gesturing, rather than all these inane menus and clicks? Someone still needs to develop the pipe infrastructure, tho. Just *don't* make it so narrow as to become worthless.
"What is the sound of one belly slapping?"
There have been some attempts at foot pedal controls, and I think that would be useful, for one. I hate having to take my hands off the keyboard to find the mouse. Also, a mouse device that would actually work in 3 dimensions rather emulating it would be great. That is, add a z dimension so that something would happen when you raised your arm off the table (don't ask me what or how, though). I know these are not exactly revolutionary ideas, but it would be am improvement over what we have now.
Send lawyers, guns, and money. Dad, get me out of this.
We're still using *wheels* on our vehicles! I've got a nearly brand new car, and it's using 5,000 year old technology to get around? From Detroit to Stuttgart, automakers are clearly devoid of imagination!
Get over it -- sometimes it makes sense to stick with what works. A love of change for the sake of change is the one thing that unites geeks and fresh-out-of-school MBA's.
-b
If I wanted a sig I would have filled in that stupid box.
This is exactly the topic of the new Slash site that I just set up at http://nooface.net. The goal of the site is to promote out-of-the-box thinking about truly next-generation user interfaces that are designed for new types of users and computing devices, and go beyond the WIMP (Windows, Icons, Menus, Pointing Device) method that most current interfaces are based on.
Nooface
In Search of the Post-PC Interface
Nooface
In Search of the Post-PC Interface
IBM has been working on eye-tracking movement. Supposedly it can tell what part of the screen your eyes are focused on. Would be cool for first person shooters, but for an OS I think moving a mouse is just as simple.
I saw this on TechTv, i think it was fresh gear, but I'm not sure, anyone have a link?
This might be an urban legend, but my Doctoral advisor told me this story about a graduate project that went like this :
An HCI (Human Computer Interface) student was looking for a new way to get input into a computer. Partnering with a biological science student, the two created a device which measured simple brain activity and transformed it into keystrokes. After training himself for a few weeks, he was able to type 25-30 words per minute by thinking about each letter.
The response from his defence committe : "So? I can _type_ faster than that!"
There is a reason why early web browsers (and most of current ones actually) *hilight* HTML links : because not every word is supposed to be linked to some other place.
This question was painful to read - I could not understand what you were refering to until I visited the two dozen places you linked to - as if I was reading a long private joke and only got part of it until I spent time reading the links (when they were relevant).
So to answer your question, I hope the "next step" is NOT linking data to every word man can type to avoid using the terms in question. It just defeats the purpose of HTML.
Sorry for the offtopic rant, but I wish less people would redact text the way this guy does.
Ala Johnny Mnemonic or anything out of a Gibson Novel. Need to hook into a wetwire sort of apparatus and feed the input (and output for that matter) directly into the Cerbral Cortex. Fast as lightning, and you save cost on the monitor
;-}
It is the next evolution. Anything that involves physical movement should be put to the wayside. Therefore we can truly be "Gods" in that if we can think it, we can make it happen.
You keep going until you die..."Me".
Pipes seem necessarily linked to the command line. The only way I could see doing similar in a GUI would be to have an "alternate view" window where each program would have however many appropriate pipe fittings on their icon where input and output pipes (hoses?) could be joined until your screen resembles a game of pipes. Even this would be too much effort. You might as well type.
or do the two links to the Pipes in GUIs stories link to the same place?
So far, we're pointing at things on a screen, moving them around, and typing messages. Datagloves and other visual manipulations will be important for all sorts of specialized tasks, but the way we tend to communicate is through speech and body language.
Speech recognition is only useful for very limited functionality, mainly because computers haven't been fast enough or with large enough databases to really make use of syntax and context. Continuous speech recognition today typically uses waveform profiles with no contextual or grammatical analysis.
But with faster processors and larger memories, I expect speech recognition to go to the next quantum level within 5-10 years. Once we add contextual and grammatical constructs to speech recognition, computers will start to be able to really understand what we're saying. To go from that to understanding what we *mean* is another step, but that's coming too.
I also expect computers to have video cameras and to be responsive to our body language and facial expressions. They will be able to judge whether what they're doing is interesting or useful, and will ask for guidance or attempt to correct based on that feedback.
In other words, I expect interaction with computers to become more like interaction with people!
Reading this story was like reading a story on IE-XP: do you think you could have made some more words into links?
Furthurmore, it wasn't PARC that introduced us to GUIs, it was Douglas C. Engelbart.
However, this IS a good question - is the "Desktop" metaphor the height of the GUI? I've read about some folks playing around with REAL uses for 3-D on the desktop: modeling files as a sort of "billboard" shaped like a U, with your point of view being at the bottom of the U. The part you are focusing on is at the bend of the U, closest to you and in highest res, the other parts are on the sides of the U and are show receding into the distance in decreasing res. You scroll data along the U, bringing interesting bits close but still having some awareness of the other parts.
Now, why doesn't somebody make THAT into a UI?
Simple: the same reason KDE and (to a lesser extent) Gnome look like Windows - if you make a radically different desktop interface, Joe Bloggs and his family will have their heads explode when they see it. Their tiny little minds are burned like a PROM to only accept the Windows(tm) way, and anything else will cause catastrophic cranial overpressure failure.
www.eFax.com are spammers
I'm serious.
No, really.
Nothing gives me hand pain as quickly as using mice, especially ones with that wheely thing. Keeping my hands in good form over the "home row" of my keyboard -- and away from the mouse -- has virtually eliminated pain from my computing life. I spend half of my waking hours in Emacs, and I have come to love (and depend on) its there's-a-key-for-everything nature.
Dump the mice. Keep Emacs.
Easy, automatic testing for Perl.
Maybe you just want to read Jef Raskin's "the humane interface"?
I strongly urge the writer of this article to check out XML-RPC combined with AppleScript, one of (imho) the strongest aspects of OS X. It allows for web-based services to be accessed at an application level. While this is nothing new for most developers, OS X is the first operating system to have support for XMLRPC and SOAP out of the box.
c es/ and SOAP at http://www.soapware.org
This may not seem very interesting until you see the demo where, upon dragging an image on top of an AppleScript icon, you then see that image automatically uploaded to a website, resized, and made available to the public-- truly a "graphical pipe" in action. What once took probably ten minutes worth of time now takes five seconds.
Check it out -- XML/RPC at http://www.xmlrpc.com , OS X's implementation at http://www.apple.com/applescript/macosx/web_servi
Glad you were able to stay on topic.....
FWIW, A losing battle is to stay with NT for Enterprise based Services. Not desktop, and Windows already sucked the populace into that realm, but in true Server functionality. The only stable platform for this is some form of UNIX. Linux is Stable, a form of UNIX and FREE.
You do get what you pay for. In Linux only though. Windows always makes you feel like you need a refund....
.
You keep going until you die..."Me".
My personal favorite would be a ultra-high resolution touch sensitive LCD screen (like SONY now makes, but bigger and better) with reliable text recognition built into all the widgets used throughout the software - plus gestures.. MOre dimensions in input will allow for creation of a better interface then - current single point + keyboard..
<^>_<(ô ô)>_<^>
This seems a bit like asking what it would take to replace the current way of driving a car (steering wheel, gas and pedal brakes, etc.) with something better. But the interface between humans and automobiles is pretty much a solved problem, and nobody seems to spend much time speculating on what a paradigm change in automobile control would be like.
There's a curious assumption which I've seen repeatedly-- namely, that a paradigm shift in human/computer interaction would be a good thing. Why, exactly? I see no reason to pursue a paradigm change for its own sake; I view it as a problem which has basically been solved for now, much as the problem of steering cars is a solved problem.
I know it's not relevant to the question, but I would like to ask Tetard how he manages his bookmarks.I mean that I may had all the links that he throws in, but either :-) )
a) I would have forgotten that I have them (too many, too scattered), or
b) I would have 10 level subdirectories in my bookmarks
and they would be a mess.(Unfortunately they already are
If you have the dexterity with your feet you can work a trackball with your feet and keep your hands on the keyboard. I had a prof in college who was quite good at this. It was impressive to see hime typing with both hands and mousing with his feet.
Add a touch screeen so that when it comes to window selection less fine manipulation, you can use the large muscles of the arm and shoulder, then use the mouse for the finer that you cannot get with a touch screen.
The more important aspect is the comfort and the breaks. No matter what mechanism is used, trauma can accumulate over time. You need time to allow the body to recover from that trauma.
Fight Spammers!
You'd tend to think that pipes would relate better to Massive Astronomical Compact Halo Objects [MACHOs], what with the tool belts and asscrack.
"Understand you're having a little Jimmy Page trouble."
Use the right tool for the right job. That's the UNIX/Linux philosophy. If you think that the WIMP interface is cramping your style with respect to whatever task you are trying to accomplish, then you are using the wrong tool.
With regards to the command line or WIMP interfaces being old, and not particularly forward looking, you are also missing a fundamental point: A graphical "pipe" isn't innovative either. You're simply shoehorning two paradigms together, and even worse, two totally incompatible paradigms at that. The pipe is a useful metaphor and operator for stream-oriented I/O. The WIMP is useful for (obviously) visually oriented information, and its designed for a completely different purpose than the pipe. The WIMP is designed to allow humans to manipulate data and abstract objects in a visual manner. The pipe is designed to allow users to allow the computer to do the same, without intervention.
If you want an innovative computing interface, worrying about streams, or visual representations of data is a waste of time. You're going to have to come up with something totally new. One good example is the use of sound to communicate the health and performance of networks or systems.
The hell with that, I've decided writing batch files is the only way to go for writing system administration tools. I spend far too much time trying to figure out what the difference is between @array and $array in Perl, when I can easily crank out batch files to do the same thing.
Go not to the Elves for counsel, for they will say both no and yes
The real problem with computer software advancement is that its all very firmly based in 2D land. WIMP environments are about as eficient as you can get. Even assuming that you can wrap your work habits around something as 'next-gen' as 'The Brain', you're still stuck in 2D land.
The real advance that will open innovation (real innovation and not some corporation's twisted idea of it) is the beginning of a 3D workstation environment.
We already have the primatives for this kind of environment in games like Unreal, Q3A, and Black and White. Assuming that we implement a 'graphical pipe' that will work for a truly 3D application system, ie: Allow 3D applications to pass information back and forth between each other semi-effortlessly, this will ignite a new 'interface revolution' similiar to what we experienced as a result of Xerox's early WIMP system and the first versions of Apple's MacOS.
Once programs and applications can truly be represented as 'objects' in a 3D environment, we'll end up with something like the 'God' interface in Black and White, where processes are represented by animated people and files are represented as other objects. Tasks best handled in 2-D such as composition, coding, or painting will still be easy to handle, but tasks best performed in 3-D such as file management, database management, and even some advanced programming tasks like linking and compiling files, will take place in a representational environment. Imagine opening up your HDD and pouring objects into it, then sorting them into containers based on type, as you would sort files into directories.
Eventually, I see us moving into something like Stephenson's 'Street' metaphor for shared environments.
Along with these advances, will come new interfaces. I think that eye-tracking cameras have the biggest potential, but we keep coming back to the data-glove in one form or the other. I know CADesigners who still have an old Nintendo powerglove hacked for basic 3D manipution tasks. We're also probably going to see a renaissance of 'body tracker' devices that will track human motion via sonar or laser. Any one of these has the potential to vastly reduce RSI injuries.
The real trick in jumping from 2D to 3D is reverse compatibility. All the shells I've seen that attempt 3D interaction do it badly. Even then, they fail completely when faced with most of the tasks we do on a daily basis, like write or paint. I think we're going to have to use 'easels' or something similiar. In Cowboy Bebop, Radical Edward's computing environment is shown as a multitude of 2D windows hovering around her in 3D space. This wouldn't be that hard to do, really.
Navigation will be the true challenge for any 3D application designer. It will be that itch to scratch that will spawn new, inventive input and coding ideas.
The next Slashdot story will be ready soon, but subscribers can beat the rush and slashdot the links early!
(WIMP = Weakly interactive massive particle; MACHO = Massive compact halo object)
sulli
RTFJ.
I love when I have to visit 15 Goddamned links just to understand what the fuck this guy's question is!!
How about next time, you make individual letters & punctuation into hyperlinks?! THAT WOULD RULE!!11!!
There are several programs out there that make use of graphical pipes - Maya, Eddie, Shake, grphedit (DirectShow graph editor) to name but a few.
The nice thing about graphical pipes is the ability to easily and transparently connect several forms of data to one node. With command line pipes, you've effectively only got one input and output.
What would be needed would be graphical terminal programs (built into the OS, or at least window manager) for connecting these things together, Oh, and a standardized way of defining input and output types - I dunno - would MIME work there?
I expect somebody can point us at a project that has already done this?
IMHO it's not mice that cause hand funkiness, it's switching back and forth between keyboard and mouse. Mostly-mouse user interfaces are just as pleasant as mostly-keyboard, at least as long as you're not using those screwy Apple hockey puck mice.
I do have a serious ergonomic bone to pick wrt emacs, anything that makes me use CTRL, ALT, and/or ESC frequently is going to give me hand cramps real quick becuase of the distance those keys are from the alphanumeric ones (i mean finger distance, not whole-arm-movement distance). Vim with appropriate settings and nedit get my vote for Things That Just Let You Type. But to each his own, the whole point of ergonomics is after all that "one size fits all" is a steaming load of livestock byproduct.
News for Geeks in Austin, TX
I have seen (and maybe somebody else can provide links) some innovations in the research of data representations. Basic approach is to display data in more than 3 dimensions, using colors, forms and relative position to enrich the data and provide a better decision making process (first usage is in risk management for Financial Institutions, analysis of brokerage data, etc.) One very impressive example was done by SGI and it consisted of a wheel with different rings that you could turn and move freely that would directly indicate the performance of of certain stocks. It could be used for long-term analysis or day trading. I believe, if I am not mistaken, that it is (was?) in use by Morgan Stanley. ...
The point is, once you have a different representation of data a different GUI approach (using the data) has to follow. I see data representation of large streams paving the way for true "Cyberspace" GUIs, allowing the user to walk through the data, adding movement, position etc. to the user experience.
Just my 0000010 cents
To improve on the classic WIMP interfaces, I immediately would exclude anything that had to be physically connected to the user. That eliminates data gloves as a significant mainstream input device.
Gloves work well technically (at least from what I've seen of them), but are fairly inconvenient to use. I suspect that some basic speech recognition will be mainstream in the not-too-distant future, because processing power is cheap enough to handle simple speech without impacting performance. Maybe eye tracking will be used some as well, but eyes tend to wander.
So I think the biggest trend in interface design over the next few years is going to be a return to simplicity. Fewer clicks, fewer mouse movements, and greater use of predictive interfaces - where the interface guesses what you'll do next based on experience and learning, and has it ready for you just in case. The Mac-style version of the UI (but not necessarily the Mac itself) will probably be the dominant strain overall - Microsoft is converging in that direction now as well as evidenced by the Luna interface in XP. I think mainstream mice return to two buttons (from the currently popular multi-buttoned models), or maybe even one. And mouse gestures will be used more instead of clicking in some cases.
Mice themselves I can see working by gyro rather than by ball or light sensor, which would allow a mouse to be held and moved within 3 dimensions (even if it only tracks in two), rather than skated over a desk in two dimensions. It's potentially a more natural hand motion. Keyboards probably won't change much due to inertia. They haven't really changed in basic layout for over a hundred years.
Of course, I may just be blowing smoke, since my intuition is no better than anyone else's. But the Slashdot crowd is very different from the "mainstream" - we are typically more forgiving of a complex interface and would trade off in favor of power over simplicity. So we may not be the best people to forecast.
-- Josh Turiel
"2. Do not eat iPod Shuffle."
Have you tried to do anything useful with relational database output using a pipe? Perhaps if a hairy perl script is the first fitting in the pipe, I guess.
Perhaps the carpal tunnel is not a result of bad interface, but the exponential increase in data that needs attention, in relation to the linear increase in interface usability.
Almost nobody talks about the fact that the WIMP interface was made possible by the hardware made available at the time (mouse, high-quality graphics) and until new hardware comes along, there will be no "paradigm shift".
There have been a lot of interesting research (the Oberon system, Xerox's Information Visualization research, 3D windowing systems) but none is compelling enough for us to switch.
A no-compromise 3D system (plain screen with 3D capabilities without the need for special glasses or head gear) could make it possible for researchers to come up with something new. Otherwise, forget it.
We can expect nothing but some clever modifications here and there (such as the mouse gestures in Mozilla and Opera) unless we get new, fantastic hardware.
I've been increasingly reading more articles like this one which seems to show that all these claims about typing causing RSI or carpal tunnel syndrome is a bunch of garbage. The neck cramps you referred to is more along the right path I think. Just something for everyone to keep in mind!
Zed's dead baby. Zed's dead.
OK so a lot of people have pointed out various devices that rely on gestures like gloves and such as imput devices that will alow us to break out of the WIMP box, but have any of these people played Black and White? I don't know about evryone else, but those gestures wern't 100% or for me 80%. Researchers have been using brainwaves to control computers for quite some time, and have been quite succesful at it, but it takes a heck of a lot of learning to be able to move the pointer to the left third of a screen. The problem here is precision. Even if you control your pointer with a finger in a glove, it still is stuck in the WIMP realm.
The only way I can see of breaking out of the WIMP box any time soon is by voice recognition and understanding combined with the ability for the computer to produce an educated response or graph. I'm not just talking about simple command like "open word" or "begin dictation", but having a computer answer a question like. "Who do the Mariners play next week?" It wouldn't be enough to just add voice recognition to Ask Jeeves because if you do the computer will say some thing stupid like "Don't you mean to say: Where can I download MP3 players for Windows?" (try it) This sort of thing is a possibility it requires a lot of AI, but adding more AI into a user interface reduces the amount af precision movement needed to control a computer, and will allow us to break away from WIMP.
In the introduction to "Learning Perl", Larry Wall observes:
"What nobody noticed in all the excitement was that the computer reductionists were still busily trying to smush your minds flat, albeit on a slightly higher plane of existance. The decree, therefore, went out (I'm sure you've heard of it) that computer incantations were only allowed to perform one miracle apiece, "Do one thing and do it well" was the rallying cry. and with one stroke, shell programmers were condemned to a life of muttering and counting beads on strings, (which in these latter days have come to be known as pipelines)."
And while Perl has not made many contributions to user interface design-- it is half line noise, after all-- it does share a "everything but the kitchen sink" approach to product design.
From a programming point of veiw, the small program does have numeous advantages. The code base is small, it is easy to test and debug, and the "do one thing" edict tends to focus the design.
With large monolithic applications, the APIs and coding peculiarities differ from application to application-- so instead of writing a spell checker pipe based app to work with dozens of other apps, one has to write additional application specific glue code to work with each monolithic application.
Or take multimedia frameworks. Xine, Alsaplayer, OMS, VideoLan, and Ogle each might have a different plugin architecture. A creator of a audio or video codec would have to write hundreds of lines of extra code to support each multimedia framework...
most people will be more than happy to get rid of WIMPs alltogether and trade it in for a slightly intelligent agent.
/.ers WIMP is just dandy, but I bet the majority of the world will be more than ahppy to do away with it and request with their vioce and scroll with their eyes...
"Computer, go get the news and put it on the screen in the bedroom and bathrooms."
"OK, sir." says the mindless but usefully understanding vioce from the wall.
I agree about the right tool for the right job. For most
we speak the way we breathe --Fugazi
Wow... are you serious? Besides being off topic, your judgement sounds a bit suspect. Good consultants create solutions with the right tools for the problem at hand. Fortune 500 status or number of employees have little to do with solving a problem for the client. The fact that you quote kernel revision numbers as opposed to a favorite distribution hardly qualifies you to implement a good Linux solution. Apache is good for some solutions, how about AOLserver or Tux? Your best solution might not come on one CD, and might require more added value from the consultant (you) as opposed to the operating system or software vendor. One thing to remember is that IBM (who has many more large clients than you) is betting heavily on Linux. That's not to say that you didn't implement the right solution for your client. Or that Linux is the best solution all the time. Just that you're unqualified in your accessment of Linux. Your post reminds me of the song lyric by Kansas: "If I claim to be a wiseman, it surely means that I don't know."
Since the `|' was invented by Doug McIlroy in 1973, has there ever been a more effective way of reusing tools and connecting data ?
..well, text processing in general. Sed, awk, grep, and cut are all hackish workarounds for a problem that should have been solved a while ago. If I need to find out my IP address, there's no way I should have to cut text out of iconfigs output. I should simply ask ifconfig to output the first entry in the field `IP Address' for the first record in the set. This won't change because the command line afficionadoes (who seem to hate all non structured document format) are so familiar and have invested so much wasted time in text processing they cannot see it for the nasty hack it is. Thank god the rest of us do.
Yes there has. Pipes only offer a very limited flow of information between applications and has a horrible tendency not to seperate content from presentation, so you end with nasty hacks like
Most Unix users think all graphical programs are limited in UI because all they've been exposed to are poor graphical apps (notice the same people who complain about GUIs are fine using ncurses - perhaps its not GUIs, but slow and unresponsive apps that are the problem. So much of the Unix world remains stuck in the mistaken idea that Unix philosophy (small apps that work together) is somehow magically limited to command line apps. It isn't - the way ifconfig communicates with grep via pipes is much more limited and hackish than the way khtml communicates with konq via kparts.
As a carpal-tunnel sufferer, I would be ecstatic to see WIMP (or at least the P) go away. Face it, our current input devices are less than ergonomic by their very nature. A fundamental shift in computer interaction would probably be towards an interface more suited to the human than the machine. Our current system of sitting motionless, staring at a screen, twitching a mouse, and banging on a keyboard are as archaic (and potentially painful) as the lawn sickle.
I firmly believe that my grandkids won't be using a keyboard and mouse like I do. They also will probably never know the term "RSI", and they'll wonder why Grandpa's wrists make those funny noises.
This
What we need is an interface that operates like a little joystick that you put in your mouth, perhaps in the shape of one of those baby sucker things. Click by biting down, maybe have a few extra "mouse-buttons" added to the keyboard, which could be operated by two hands.
Telephone conversations may be impeded, but think of all the geek-girls you could get when they find out how much exercise your tongue gets.
The mouse is a device of the Beatles era
And the steering wheel is a relic of the Jazz age. I don't plan on giving up either of them any time soon.
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
That sort of thing will be the wave of the future, and it will mean that apps will have to be smarter and communicate a lot more than they do today. My personal agent should reside on my local machine, not the network, and should watch out for my personal privacy. It should divulge only what is necessary to others in order to perform the commands that I give it. It should be flexible and configurable, but I should never have to configure it; it should learn what I like by how I interact with it.
Several large companies have been working toward this holy grail for years, but thus far not even common voice recognition much less NLP has emerged from their research. Sure there are some voice recognition packages out there, but there's very little integration, and AFAIK nothing at all in the NLP arena. We could start working toward the level of integration that would be a necessary foundation for a lot of this stuff, but I don't know that you could get the necessary level of cooperation in ANY software development community.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
No, I'm serious. Computers should be working for us, not against us. Today, we don't give a computer a task and ask it to complete it, we instead worry about interfacing with it. The interface should be natural and change depending on what you are doing. Let's go through this using Star Trek (TNG) as our baseline:
Computers should have voice recognition for general tasks such as environment management and collabertion. The crew uses this to dim the lights for example.
Computers should have keypad interfaces for general reading and writing. You'll notice the workstation on Picard's desk for exactly this purpose.
Computers should have remote/networked interfaces for passing sneaker-net info. This means datapads and remote voice uplinks. (Hold on captain, I'll email the info to your chair! Yeah, right.)
Computers should be able to present information in the most efficient way possible. This doesn't mean the prettiest, but instead it means dynamic graphical/audio interfaces. These interfaces must be easy to create and use. This means that the readouts might one moment be tracking the progress of Warp plasma then next moment display starcharts of the ship's course.
All of this makes the Star Trek interface very useful and is quite possible with current technology. However, there is one thing that really makes it easy to use:
Computers must be able to automatically analyze, process, and display any information. Filters should be able to be applied automatically. Artifical intelligence should be able to translate speech from any language to any language and add new patterns without reprogramming. Answers to theoriretcal questions should be able to be answered given a current set of information on a subject. Information should be able to be retrieved and stored no matter what the format and new formats should be able to be analyzed and added to the database.
This is much more difficult due to the fact that computers today have a very monolithic nature. Pipes are a good example of dynamic linkage of programs, yet at the same time are very primitive. They require a great deal of operator understanding of the information in order to use.
What if we could build layers of software on top of layers of software, which are then again used to build greater layers of software? This would require that we accept standard functionality at each level of the layering process and then allow people to write ever simpler code due to this great deal of layering. Why should anyone be required to rewrite a quicksort once it has been written?
The first and best key we have today is the Java class file format. Class files are allowed to layer on top of others by nature. The computer can pull apart the structure and investigate the usefullness of a class for a specific function. With enough layers, the computer can make extremely intelligent decisions automatically. Witness JINI.
So here is my challenge to every programmer/newbie/manager/hardware designer in existance. Stop trying to focus on how we can optimize or tweak each individual computer function so that you gain temporary marketshare, outperform your competitor, or push your political agenda. Instead, begin pushing for hard standards in the industry. Don't worry if they have the "highest performance" or if they have the "coolest widgets". Instead worry if they have the best design, if they are technically "right" for the task at hand. Stop worrying about making languages that allow you to produce specific functionality in fewer lines of code, and worry about producing the highest level of quality.
Many people will find this a hard pill to swallow, but the end result will most certainly be worth it.
Javascript + Nintendo DSi = DSiCade
The mouse and keyboard work well together: the keyboard is very versatile (eg for games and typing), and you can switch very quickly between the keyboard and mouse without looking. The pen, OTOH, works poorly with the keyboard because it takes too long to switch: you have to locate the pen and pick it up in the right way before you can use it. You also have to hold it in the air rather than rest it on a surface, so it's more fatiguing.
I propose a development of the mouse I call the wand: it's shaped kind of like a mouse but can also be picked up and used in space, or stood on one end on the desk and used sort of like a joystick. It's sensitive to its orientation and motion in space, and can give tactile feedback as clicks and buzzes and things. It has buttons and levers and whatnot in suitably devious spots for all your fingers so you can work all sorts of games with it.
So: you play Quake with it by sliding it around on a desk, rotating and tilting it. You use it just like a mouse with your word processor. You do 3D modelling with it by just waving it around in the air. And so on.
It can have a little thumb joystick for even wilder input combinations.
It's portable. You can carry it in your pocket to use with a wearable computer (or it can be the computer). It's potentially reasonably cheap. It expands on an existing paradigm and hence is compatible with existing software and interfaces.
It slices! It dices! When will someone make me one?
Where would leet script kiddie haxors be without the pipe? It is the backbone of |33+5p33|
I think it's interesting that WIMP in many ways uses a virtual document paradigm. Our use of documents has been around for milleniums. The idea that we'd get away from that any time soon seems a bit weird. I think speech recognition and A.I. are the next breakthroughs... along with ultra high definition displays. Even after some large advances in technology and supposed paradigm shifts, I think we'll be surprised at how often we'll be looking at some sort of virtual document. After all, aren't menus just TOC's? Visual organization hasn't changed much. What we need to do is change humans to allow them to have a larger data pipe. Genetics, anyone?
I always thought that the reason there was no innovation was that people had their brains stuck in windows/mac mode or unix mode, and were too busy thinking that one was better than the other to realise they were both a bit poor and to do something about it. I no longer think this is the main reason, I think it might be market forces.
Market forces require that you choose windows or Unix. The majority of the market is windows, so if you decide you want to go in a different direction then you must go the Unix way (or something heavily unix based) as being able to port a complete set of development tools that people already know how to use is the only way to get up to speed fast enough to be viable (even OSS projects compete in a market of sorts - the currency just isn't $).
The problem here is that both windows and unix derivitives come with hopeless amounts of backwards compatibility baggage (and we have no input into the direction of windows anyway).
If for instance, if you think it's odd to need regular expressions to pluck data out of streams when they should have been marked up in the first place, you'll have to rewrite all the command line apps and the shell. After you've done that, you've just broken everybody's perl scripts (depending on how idealistically you did it) and other apps will still not take advantage of it. And if you decide on major renovations, like the shell being able to communicate with its command line apps, or that the continually emergence of buffer overrun and other errors are silly and maybe C wasn't the ideal language to write an OS in afterall... well, better to try and put all that childish idealism away and stick with the pragmatic of evolving the old than to rock the boat and achieve nothing.
Seems like the only way to go forward these days is to build a layer on top of an existing OS and try not to look at whatever OS is under the plaster (And if you think that was a low shot at any one project, I suggest you look around at some of the other things in development out there).
I'll avoid the theoretical for a moment and just speak to this:
My web designer friends are damaged for life because of mice, and yet we persist... Where do we go from here ?
Just thought I'd mention that when I started showing symptoms of RSI I went out and bought a couple of trackballs and a couple of Wacom Stylus tablets.
For design work, the Wacom products spoil me rotten, and though it hurts me to say so I've had nothing but luck with the Microsoft thumb-controlled track pads.
Though if you have political problems with them try the Kensington (which are excellent) or Logitech versions. I might try the new Logitech units myself actually.
It really changed the way i work, any desktop I loose to the tablets is mitigated by not halving to mouse around. So anyway, no more pain for me.
let if have keyboard shortcuts
At least in MS Office apps. Just record a macro that types the word "if", and assign a keyboard shortcut to it.
--
"Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
I worked in Microsoft Research for several years on Speech Recognition and Natural Language.
Some of my collegues did a study that concluded these technologies will NEVER be a good user interface. Even once the AI-complete problem of speech recognition and NLP are solved.
This study, as you might not be surprised, was totally shut down and buried. There are a LOT of people at MS Research working on this stuff, and a LOT of money is being spent. My friends came up with "the wrong answer", and where basically told to shut up.
I agree with the study: Speech Recogition and Natural Language is not a good user interface, and NEVER will be. The basic reason is direct manipulation of data is much more efficient and intuitive. Language is very low bandwidth.
No, I think we should do it the traditional way, by clicking the mouse.
A speech interface would be nice, but only if it was supplemented with a standard mouse and keyboard (and maybe a touch screen) and would accept natural language commands. As far as the user interface goes it should have a complete abstraction from applications and the file system leaving the user to only be concerned with documents.
The reason they should also have mouse and keyboards are for security so passwords etc wouldn't have to be spoken (see the recent user friendly strip series for a humerous take on that), and so things you're doing could be kept somewhat private. Imagine starting up a long build or whatever on your machine and figuring you'd take a short break while everything compiles and telling your computer 'open mozilla. go to hot asian chicks dot com. click hot and horney', you might get more than a few head turns from local cube dwellers unless you bookmarked it and renamed it to something like 'intranet' but the renaming process would also have to be vocalized.
It should also accept natural language commands for complicated to speak text. The main example for this is programming. If I wanted to do:
for (int i = 1; i = 10; i++)
cout << i << endl;
I would like to just say 'for loop. local integer i from zero to ten step one begin. print i and end line. end loop'. instead of having to articulate each puntuation symbol as 'for open parenthesis int i equals 1 semicolon i less than equal ten semicolon i plus plus close parethesis. enter. c out less than less than i less than less than end l', not to mention if I had to put spaces in there too.
The next thing we would need is an abstraction from the use of applications and the file system which would go in very well with a speech interface. The user would only be concerned with documents and data. The user would just ask the computer to start a new report on photosynthesis and the computer could ask the user what to call it and they could just respond with a natural name like 'biology 101 mid-term'. Later the user would just ask the computer to open the biology 101 mid-term without having to care if it was opened with word or starwriter or kword, etc, it would just be there and they could work on it.
The abstraction from the file system would be a natural extension of this because the user doesn't need to know where anything is because the computer takes care of it for them. The user just needs to remember documents/files as he would anything else 'I was writing that letter to Bob', 'I was working on the bio mid-term', etc. This also furthers the use of a computer as a tool, because it would actually help you get things done and be easy to use by anyone because speech is a natural interface for us, but keyboards and mice are not.
The best example I can think of having something like a touch screen is for web browsing or editing documents/preparing presentations, drawing (but maybe a graphic tablet would better for that), etc. so instead of telling the computer to open the 'Read more' link, I could point and it would open whatever I pointed to.
Microsoft is trying to do this with things like the My Documents folder and automatically naming documents with the first line of the document, but it's still somewhat cludgy because it relies on keyboard and mouse interaction. They are kind of on the right track in terms of abstraction from applications and the file system, but still needs a ways to go. This is why they have the Documents folder in the start menu and New Office Document and Open Office Document on the start menu instead of the programs menu. This is also why they have extension associations with applications so the user can just click on a document and it will spawn the right application (or maybe they just stole it from macs).
These ideas are nothing new, I've seem them all somewhere else before, but I just thought I'd post them here for discussion because I think they're good ideas. It should also be noted that this type of interface is for the 'average' user not the average slashdot reader since we all like our keyboards and CLIs.
Things you think are in the Constitution, but are not.
...hey, it worked for HAL, anyway.
A study we did concluded that your theory is incorrect: indirect manipulation of information is very frustrating, even for very novice users. This was assuming human quality recognition and AI.
Voice recognition obviously is next. Atleast it could be, but the way things go with IP, who knows. There are but a few ways to input, mechanical such as hands, fingers, etc. visual such as moving eyes, hands, etc. sound such as voice, waves such as brain waves, which is far off from any product. It's obvious to see that other than using mice, keyboards and various other devices that are similar, voice recognition is the alternative. Although there is always visual, but I doubt that will ever make it, it seems to inefficient.
Question everything.
I think that the new interfaces will be voice recognition and voice generation. Like in StarTrek, Commander, I need warp speed now. Its alot faster to talk to the computer than write, also to listen to a computer could be better in some situations. For example if you should read a loooong report or so, just hit the text-to-voice-generation (tm) button, tune in a soft voice and lean back in the couch. But there are several problems, how should the computer get the voice right, depending on situation. for example irony/sarcasm. Or how should it interpret spoken sentences, there are a varity of meanings of the same sentence. Perhaps if it is composed with direct manipulation so gestures can be interpreted to. It could work with a scanning of the face to get facial expressions that can signal emotion, add emphasis to the speech and support the interaction in a dialogue situation.
But inventing that kind of "wheel" is really hard, at least with the technology we have today. But were on the way of getting there, in the mean time check out this link about Talking Heads, and no it's not about that music group.
2 reptiles beneath your current threshold.
Amen
It's really refreshing to see I'm not the only one.
I've been mulling the concept of graphical pipes for a while now (not knowing it had a name and papers published about it until today--darn!). The primary limiting factor isn't the input device. Input devices are invented to make software work better, not the other way around.
Operating systems are built around preconceived notions of how people need to work and how software needs to be written. In the early days of X and MacOS, lots of designs were thrown at the wall, and those that stuck were most compatible with the mentality of the users at the time. Not to say that they were incorrect in any particular way, but they had limited computation and memory, as well as a pretty high grasp of technical aspects of computers. Contrast that with today, where several hundred million computers are hooked up to each other and most people know very little about their microscopic magic hamsters that make their computers work right.
Some meaningful, elemental mapping of one program's outputs onto another's inputs is the next major technological step that might bridge the gap between functionality and perpetual re-engineering. How much would you love to have a web browser whose UI was defined by you, customizable trivially, and could be extended or constrained with minimal programming effort and by changing around the order certain data flowed through pipes to reach your window? Almost every piece of software I've ever ran was flawed in one way or another, all of which I knew what changes I'd make if given the opportunity, even if it was simple presentation changes. Graphical pipes makes such things possible and even trivial in many ways.
Ultimately, there's only two functions: content generation, and content filtering. Once you have those bases covered, it's all a matter of presentation.
Any connection between your reality and mine is purely coincidental.
Piping generally connected text.
If we wanted to do this in a GUI it would be trivial. The problem is, nobody wants to do it. Most things that we would have used text processing tools and piping for is now built into one program or another (Excel & Word can probably do 90% of what used to be done with piping and unix text utilities).
When you're working with a GUI, all of a sudden you're thinking in terms of folders and objects. You're thinking about how to solve your task and not how to get your data into format x so it can be pushed into program y.
If you really want the equivilent of piping, just make it. Write a little program that allows you to connect unix programs with lines, and then dump a document in the top. I'm sure this has been done, but of course nobody uses it because it really doesn't solve todays problems.
And I can tell my project - GO, FIX YOURSELF!!
<^>_<(ô ô)>_<^>
What are the potential adcantages of a 3d interface? Most of us are satisfied with a 2d interface (the GUI) and there are lots of people who are are perfectly happy using 1d interface (the CLI). I can't think of any reason why adding another dimension to the workspace would be necessary other than the coolness factor. Plus, once 3d interfaces are the norm, these message boeards will be full of complaints from angry sisadmins about having to go and "find" users who keep "wandering off" and getting themselves "lost"... I do, however, think a nice crudproof touchscreen monitor (like on ATM, only more crudproof for heavy-duty use) would be a good upgrade. I could ditch the mouse and just use keyboard shortcuts and the touchscreen. Also, think of the prOn applications a touchscreen would make possible...
Yeah, we can see that you have the typical Microsoft attitude. It will NEVER be anything, until someone implements it. Then, it's just a matter of throwing money around until the innovation becomes a Microsoft monopoly.
>to this run by Ask Slashdot before, but this
>time I'm wondering if maybe we need new input devices before the WIMP
>paradigm is replaced with something better. Might any of you have
>ideas on what form these input devices might take?
>
>
If it ain't broke,why fix it when the net result will be little or no gain. Learn from the CueCat. But that's asking/expecting too much from *ASSHOLES* like you.
What would the name space for grapical pipes be?
With bonobo don't you have to know what you are
talking to? However, why not use the filesystem
as a namespace and attach programs to files.
So you want a random signature in every email.
create a translator that spits out your signature
and a random bit and use that file as your sig
in every email client. Hey what code reuse.
Welcome to GNU/Hurd http://hurd.dyndns.org
You mod up a Microsoft put down with out paying any head to the original post. Typical of fanatical thinking.
You know, it is possible to learn from other peoples mistakes, even if you don't like the company they worked for once. How many studies have you personally done which examine the [long term] effectiveness of SR and NLP interfaces?
I think our whole UI is restricted by the fact that there is only one pointer on the screen at one time. Almost every sci-fi (film|TV show) I've seen has a touch-screen where you can manipulate multiple things on the screen at once. We have yet to be able to do this with X.
You will notice, however, that no one has ever written a script to connect khtml to, say, wget. Is this a limitation of scripting? Is it because there's no graphical way (a la the java beanbox) to tie components together? Without being a coder? While it's true that text processing is an ugly hack to handle formatted output, that doesn't mean that the pipe and command-line idea is the wrong one; something like XML-formatted output would help the problem nicely.
I think the posted question more-or-less assumes the component model, because otherwise it doesn't make any sense; the question is, how do we make stitching components together as common as stitching command-line programs together?
-_Quinn
Reality Maintenance Group, Silver City Construction Co., Ltd.
I never did figure out how to click or anything. Making the Z-dimension mean "click" was kind of a pain to use. In fact, after waving my arm around for a few minutes I felt very achey and painy. Plus, the device scared people, and a friend of mine claimed that it was microwaving her hand! This might be an idea whose time has not come yet.
I'm too lazy to make an account, but write me at broken_form@yahoo.com if you want circuit diagrams or something.
And then why would there be any symmetry between text processing and graphical user interfaces? I mean, it's worthwhile to look, but I checked and there isn't any. Hook my 'hierarchy generator' up to my 'explorer interface to hierarchies' sounds like a winner until you realize you need type safety to prevent the whole thing blowing up, and then the expressive power of functions to make more useful stuff happen (and documentation, so the GUI can prompt you to fill in the occasional blank).
At this point I sound like I want to replace pipes with something a bit more strict, which is true. But not for GUIs. Oh no. I want TeX.
Why have I ever in my life had to position or resize a window? That's like manually pushing text around in a terminal. And then menus are a step in the right direction, but they hide too much information. Icons are a little helpful in my file browser, but then graphic artists run off and think I can understand what they mean by just looking at them.
I want a text formatter to lay out my entire computer. I want to control how many pages I see at a time, and be able to navigate between the pages. I want a help system that shows me what hotkeys are available right this second. Instead of menus where I get to hunt in little 30x60 text lists, I want to go to help mode and maybe get a little text search to find the page of the user interface that lets me set margins or whatever. I want documents, not applications. I want an object database, not files. I want interfaces with conformance tests, not standards.
Our development environment is twenty-five years old. Our GUI comes straight from the first 'well maybe we should make these things easy to use' thoughts a few (dozen) academic leaders had. We need some independent thinkers to try something different.
Oh- no mouse. There's GOT to be a way to send the computer commands with having to take my hands off of my 101-key keyboard. Buttons remind me what I can do; that doesn't mean I actually have to walk over there and push the things.
Just to imagine that I had a job offer from MS Research after Ph.D.. brrrr.. ;-)))
<^>_<(ô ô)>_<^>
It seems like a good idea, but I think typing and clicking little command bursts is faster than explaining to my computer what I want it to do. Maybe for searches, like 'find me a picture of a cow', or 'where was that document I was working on yesterday'?
But I think you're right; what I really want to see is a 3D device, not everybody trying to improve on the 2D paradigm. Of course, that means existing drivers and existing operating systems would need to be abandoned.
Go reread my post, then think about it a little. Then, you may notice that Microsoft's attitude is the opposite of the one expressed in my statement! You see, Microsoft is *still* working on these things, even when given evidence by their own people that its a dead end. You are correct that Microsoft isn't innovating, but it isn't innovation because they are doing the dumb thing by sticking to a loser, rather than thinking up new ideas! They are doing this to keep their six figure salaries of course.
I'll be the first one to get one implanted
I see where he's going with this...he wants an interface where stuff blows up! Oh, wait, it's already been done
And on the next Ask Slashdot, we ask: why isn't the world a better place?
Objects like files and folder could be scripted with methods allowing them to be graphicaly chained together to perform tasks. The resulting chain object would probably look like some sort of Rube Goldberd moustrap contraption. This is similar to a command line like "kill -9 `ps aux | grep netscape | awk '{print $2}' `"
Objects could be created, extended and saved in in a MOO environment. The next level is to make it 3D and interactive like some sort of interactive, cartoon fiction.
It kind of reminds me of ps Doom
Dennis
Jesus Christ, now the future of human-computer interaction is being decided by a bunch of loser MBAs?
I think if one argues that pipes are used more "in the heat of the moment" on the command line, then there will NEVER be a true graphical version. Going to the File menu and selecting Print (or more aptly Print One Copy) is as close as we'll get, on the fly. On the other hand, if you look at the importance of the pipe in a batch scenario, where you set things up ahead of time and resuse them like components, then G is your man.
Effectively you program modules that are object oriented, and made up of other parts. You then draw "circuits" between the parts. G is a bit headier than needed for novices, but if you could imagine a window in which you could drag and drop things, with a scriptable glue--well viola! Drop Wordprocessor and printer. Open toolbox and grab "On Drag and drop". Wire "On drag and drop" into the Wordprocessor. Double click on wordprocessor, opening its toolbox, and drag out "Find & Replace" (or substiture your own component--maybe one that supports grep) and configure it--it would automatically be wired into Word Processor. Then wire word processor into printer...
It would create an applet to take a file, find all "slashdot is lame" and replace with "slashdot is cool", and then print the document.
A graphical batch tool where the output of something is piped into the next. Of course the environment would need to be conscious as to what INPUTS the components could accept.
Scott
"Hokey religions and ancient weapons are no match for a good blaster at your side, kid."
Aparrently you are unaware of a phenomenon called "Gorilla Arm" which occurs when people's arms tire from holding them up to touch your touchscreen. Your arm feels heavy, like a gorilla's, and you end up holding it in the same way. You might try putting the screen flat on (or in) a table, but then you have people bending their necks unnaturally, and that's bad too. Maybe we should use joysticks...
--
Seeing is believing; You wouldn't have seen it if you didn't believe it.
I do have a serious ergonomic bone to pick wrt emacs, anything that makes me use CTRL, ALT, and/or ESC frequently is going to give me hand cramps real quick becuase of the distance those keys are from the alphanumeric ones (i mean finger distance, not whole-arm-movement distance).
About 20 years ago, when we didn't have mice on Unixoid systems, and therefore didn't know to complain about Carpal Tunnel Syndrome and Thoracic Outlet pain (informally "mouse shoulder"), everyone whined about having "emacs pinky". You could always tell the Unix geeks at the Comp Sci parties - their Vulcan-style pinky-swung-wide-over greeting spoke volumes (usually "No, I don't have a date. Ever.").
In those days we counted ourselves lucky to have intelligent ASCII terminals like the Wyses, TeleVideos and ADM3-As that could do more than just write characters at the bottom of the screen, and the predominant editor was something called "tvedit" (Yup, Don Lancaster's "TV Typewriter" inspired lots of us!). I distinctly remember one professor refusing to switch to emacs until he could get foot-pedals for CTL and ALT - he even got the EE Dept. to cobble up an experiment for him! Too bad it didn't catch on.
Firstly.. I don't think that 'all graphical programs are limited in UI'.
In general, they are.
If I take a windows PC, and a Linux PC, and I want to do something 'innovative'.. like have my IP address automatically posted to a web page, and have my incoming ICQ messages automatically logged to a file, as well as copied & zipped to another file, then ftp'd to a remote host...
These sort of tasks are very difficult to automate in Windows, and very straightforward to automate in unix. That's why people think this way.
And on your point about the unix philosophy being 'mistaken'. You seem to think ifconfig should output exactly what you want... like a single ip address, for instance. The problem is.. that philosophy requires the designer of ifconfig to determine exactly what kinds of output every potential user might want, and forsake the rest.
That's not the unix way; the unix way is to make the program output as much information as you could reasonably want, and let OTHER tools sort it out, so the user can always get what they want.
The reason, in my opinion, that we haven't seen anything like pipes the any really well known GUIs is that they don't implement Drag and Drop very well. On the other hand, I know of one GUI that does allow something like a GUI pipe to be performed - RISC OS's GUI.
On RISC OS, an application can optionally install an icon on what's known as the `iconbar' at the bottom of the screen. Generally, when a program is run, the only really noticable effect would be that a new icon would appear there. To create a new file, you'd click on the application's icon. To load a file, you can either just double-click on it's icon or drag it onto the icon of the application you want to edit it. RISC OS's desktop is essentially document-centric, rather than application-centric like most others.
Now, here's where the power of such a paradigm comes into play. When you want to save a file, a little dialogue box like this appears:
Well, I can't actually because the stupid fucking lameness filter won't let me post ASCII art. In the mean time, take a look at some ROX screenshots, in particular this one.
To save the file, all you have to do is drag the icon to the directory you want to save it in. If you want to get an idea of how this looks, take a look at ROX.
The great thing is, you can use this mechanism for transferring data from one application to another just by dragging a file from one application to another. I used to have a whole plethora of little tools that I'd use just like this: Image Converters, deformation tools, etc... Simple though it is, it's quite powerful.
I don't like trolls and mod against me if you like, but I'd prefer if you'd reply.
The Precient User Interface
We know where you want to go today.
This seems a bit like asking what it would take to replace the current way of driving a car (steering wheel, gas and pedal brakes, etc.) with something better. But the interface between humans and automobiles is pretty much a solved problem, and nobody seems to spend much time speculating on what a paradigm change in automobile control would be like.
Oh yeah? Two words: cruise control. It completely redefined the "car interface". How about two more: intermittent wipers. True, the inventor got shafted by Detroit and had to fight tooth and nail for years to get his due, but he too changed the "car interface" dramatically.
There's a curious assumption which I've seen repeatedly-- namely, that a paradigm shift in human/computer interaction would be a good thing. Why, exactly?
Simple: because the quantum increase in computer access that was engendered by the WIMP interface isn't by any stretch of the imagination the endpoint of interface evolution. Want an example? Don Hopkins has been pushing his concept of Pie Menus for about 15 years now, and has implemented them everywhere he can find an amenable display system (starting with (*shudder*) X10 and including MS-Windows!). If you think you know how user interfaces should work and you haven't read any of Don's exhortations on the human-factors improvements inherent in non-linear menus, you need to get with the program.
I think we need to see more/better keyboard controls that make sense, like controlling volume, eject, and CD/DVD functions into the input (media keyboards). We need to see rarely-used keys eliminated (insert, forward delete, home, end, page up, page down) and their functions incorporate into the rest of the keyboard (command/alt arrow keys, command/alt delete).
There needs to be a better setup of keys, and more OS functions need to be standardised in the keyboard ( I don't count Dvorak as a better setup. Check out FITALY for a better setup.
I'm not sure exactly what would be better, but functions like closing a window should be built into the mouse, just like scrolling. (Yes, my scroll wheel is programmed to that function).
Not since Marie-Antoinette played milkmaid has looking simple and honest been so fake and complicated.
lol
I think user interfaces are one of the areas where science fiction (especially Star Trek) has been completely unimaginative. There's still using keyboards and flat screens on the Enterprise? Why isn't the whole freakin' ship a holodeck? In particular, why isn't there a 3-dimensional display to show nearby ships? And wouldn't it be convenient if the consoles (which it seems someone is always fatally banging into) were immaterial? Etc.
MS-DOS -> Windows :
Single-process text -> interacting-multi-process gui
Pretty big leap of paradigm, that one. I figure the only way we'll get that kind of leap again is to introduce robots. Instead of clicking on a cell, inputting a number, and having the computer use a formula in another cell to complete a calculation, you'd tell the robot "Take care of that payroll spreadsheet I've been meaning to do".
"Oh, and while you're at it, call over a few of your buddies and take over the world for me?" *PiewPiew! (lasers)*
Yay Robots!
Last post!
The *real* problem with mice is that you have to take your hand off the keyboard and put it on the mouse to go from "type" mode to "cursor" mode. If the cursor was just pointing where you looked, computing would become very intuitive. Also, you wouldn't ever have to lift your hands from the home position... Which might just be enough to get lazy programmers like me to use and enjoy GUI pointers. Once we did that, some *useful* gui app's might appear.
An efficient one handed keyboard might do the same if widely adopted. But that's about as likely as the U.S. switching entirely to metric.
http://www.acm.org/uist
I attended UIST 94 (in Marina del Rey), and a lot of the work was cutting edge (for that time, and some even for now!). Somebody did some presentation there that was similar to the visual pipe concept. I'll have to drag the proceedings out of storage, though...
General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
You will notice, however, that no one has ever written a script to connect khtml to, say, wget.
These connects aren't limited to scripts, they'll work in most interpreted or compiled langauges with KDE bindings. But yes, one can embed for example, a netscape plugin viewer kpart inside khtml.
So first, I'd posit the 'I part of WIMP is not necessarily the best thing, and that symbolics have a place. When we look at mathematical notation, we see a broader variety of symbols somewhere between plain text and icons. There is milage to be found in the space between text and icons.
Second, the problem with the 'MP' part of WIMP is that it is indirect. What we have always wanted is what we used to have: a crayon, pencil on pen that we directly manipulate. The correct display device for interactive use is almost certainly a flat panel on your desk that has the effect of those science fiction displays -- you can touch "buttons" that are indicated with your gross motor skill fat fingers, and you can pick up a sharp pointing device, like a pen, pencil or crayon to write with when you want to. In a perfect world, this pointing device has a tip that literally changes color and shape when you change what you want to do with it. Touch the greep chip, it goes green, etc; touch the point and it gets sharp, and touch the brush it goes soft and blunt. Then you get it to read handwriting better than a palm when you need that. I've long thought of this as the "electric whiteboard." On the walls, on your desk, in 100dpi resolution for square meters.
Third, the real problem is figuring out how to get high bandwidth, high accuracy entry of words, words, words. Right now, the best we have is the keyboard, and it sucks, as does voice entry.
I remember a Mad magazine talking about teen-idol singers making a record. The studio had so much echo, the producer said in the strip, that the guy didn't even need to sing the words, he could just think them. The answer will be something that we can jack in to, from which well formed strings of words and punctuation will appear as we think them up. We don't need the Matrix all-encompasing VR -- we do need some way of transferring thoughts out of our heads into language accessible by others without physical instrumentalities.
(Then we will crawl where the Krell once stood).
-dB
"It if was easy to do, we'd find someone cheaper than you to do it."
The "desktop" is pretty much the ideal paradigm for managing documents but when connecting processes we don't just need pipes... we need plumbing.
Oh fine, I'll refute this. Voyager is a piss-poor choice for holding up any sort of technology. In their world you could retake the ship just by rerouting the EPS conduits through the deflector dish in order to create a Tachyon pulse. Besides this being just STUPID (tachyons travel backwards through time and thus aren't very useful for the types of things Voyager uses them for), it is also not very realistic.
In TNG (which was why I mentioned that series in specific), the computer was locked out on several occasions. "Rascals" and "Brothers" come to mind. I'd say those are pretty secure instances. Oh, and there was an episode of TNG where they saw a tachyon anomoly and Picard remarked something to the effect of, "I thought tachyons couldn't exist in normal space time" denoting that they had no control of tachyons much less pulses and beams. So please crawl back into your hole. Thank you.
Javascript + Nintendo DSi = DSiCade
Like many of my friends, I started getting RSI a few years ago, and it got worse and worse. I found out what to do though. You can reduce the RSI (like carpal tunnel syndrome) you're getting by some very simple procedures. The R in RSI stands for repetitive and that's what you get it from - having your hand on the mouse for hours and clicking it. I have a ball mouse at home and a Microsoft one at work so I use different muscles at home and work. I also switch-hit, switching the mouse from left hand to right every half hour. This way, you can stay at the computer like normal, except you're not hurting yourself as much. Switch-hitting every half hour gives your hand half an hour of rest while you keep working. Of course, resting, hand exercises and other things are good too.
Programming guru Jamie Zawinski, the guy who wrote the original Netscape for UNIX has a great page on RSI. Check it out, and other pages on RSI. I really think there should be OSHA regulations at least *informing* young guys that prolonged use of mice and keyboards can damage their wrists and leave them so they can't type.
JWZ's RSI page is:
http://www.jwz.org/gruntle/wrists.html
I have an idea. It is a board covered with buttons. Each button would be asinged a value. The values could then be associated with thing such as functions or characters. They could be used in combinations. This would enable the user to use the versitility of a language, with syntax and meaning imbeded in a context, to control the computer. Since the buttons are reminicent of the keys on a musical instrument, I think the name "Keyboard" would be appropriate. So much better then pointing and grunting!
But what really sucks is that Slashcode's inane . link exposer for people who are too stupid to look at the bottom of their browser's window to see the URL that they're clicking on has basically ruined this joke.
Jordan Bettis
``Wherever you go, there's another stupid sigfile quote.''Dear Playboy advisor,
I am a heterosexual male who likes pussy and hates queers. I mentioned to my girlfriend that faggots need a good beating, and she got mad and stated that there was nothing wrong with their "lifestyle".
Since she's so accepting of their lifestyle, I asked if she would let me fuck her sexual ass-pussy, but she refused. She doesn't like to suck my dick either. Is she the world's biggest hypocrite or what?
Oh boy, the bloat, and the slowness with which apps are launched, wow, GUI based OSs just own so much. . . .
Seriously now, much easier to just script it all out so that you just type in a programs name and it runs. You just type in the program name, and it would launch, simple as that!
Oh yah sure GUI interfaces for various TYPES of -APPLICATIONS- is a good thing, heck, Photoshop/Gimp/Etc would defintly NOT be the same if they where CLI based, but that is not my point.
GUI OSs suck, period.
Need help treating your acne? Come here!
Autocad, in my opinion, is a program that has taken the WIMP GUI, use of the mouse and keyboard interface to its highest level. Granted, new people still use the Windows menus, but if you know what you are doing, you can completel a drawing super-quick simply by using a combination of keyboard shortcuts/commands/data entry, and the mouse as left click, enter, and repeat last command. This interface obsiously doesn't work for everything, but they have managed to use it extremely well. We need more people thinking like that.
-Michael Roy
-Michael Roy Some people are like Slinkies. Not really useful, but you can't help smiling when you see one tumble down
Until my computer scans my brain and knows what to do, nothing is going to matter. Speech interfaces will change things for certain applications, but because computers are still oriented around words, it will be cumbersome to work with a computer in applications where a mouth just is not fast or versatile enough (I can speak one word at a time, but I can idepedently operate at least four keyboard+mouse buttons simultaneously.). Speaking to a computer is also useless for much of the computer using community, as many people become hoarse from talking over extended periods. It would also make offices intolerable, as the noise would become a terrible racket, and phone calls impossible.
Others have mentioned eye motion tracking. A cute concept, but worthless for anyone who regularly moves his head while using a computer (As I do endlessly, moving back and forth between books, a phone, and several PCs at once, typing nonstop.).
Touchscreens have been around for decades, anyone familiar with one already knows why we don't use them.
To advance at a higher level, computers must become able to interperet thought. It sounds mad, but it is an imperative.
The reason they should also have mouse and keyboards are for security so passwords etc wouldn't have to be spoken
"My Voice is My Passport"obviously no deficiencies vs. no obvious deficiencies
With WIMPs the menus list all relevant commands, and they're always in the same place, and you just drag across the menu titles to see them all. It's not going to get much easier than that. (Quick digression: yes, I do demand a convenient turing-equivalent for the things I'm good at, but when I don't want to invest, I'll wimp out pretty damn quick and be grateful for the opportunity: I just want to do this one thing, say, make a log-log graph of some data, which I do about once every tenth blue moon, and last night, in about ten seconds with unfamiliar software).
Okay, you knew all this and maybe even agree: wimps make being lazy easier.
So, what now? Personally, I think IBM have left a lot of really fine ideas just dangling around the place. Check out what they've done with pipes, for instance. Maybe they're taking it too far, maybe not. I wish that stuff were in bash, and C++ for that matter. I wish I had time left to work on it.
For the really creative, world-smashing new directions, I believe they're right where we've learned to expect: cuddled up in everybody's blind spot, closer than anybody seriously believes.
As always, all IMO. Insert "I think" everywhere grammatically possible.
Where is Bowie J. Poag when such of an important topic of computer interfaces is raised? We need his gayness immediately!!
Alias|Wavefront has been using their version, called "marking menus" in PowerAnimator and Maya for a couple of years. They fruiggin' rock!
By customizing the Marking Menus a little but, you can drive PowerAnimator with a 3 button mouse and the Control, Shift and Alt keys. Way cool.
It doesn't mean much now, it's built for the future.
I think there are a lot of ways that today's GUI software could be made more hackable. For instance, every window and dialog box that an application ever pops up could be a fill-in-the-blanks XML file, sort of like the way CGI and JavaScript fill in the blanks in HTML. If the user wants to change the way a window looks, s/he should just be able to edit the XML file, and the software's behavior should change appropriately. A cool way to implement this in a GUI system would be to have an Edit Source command that you could do on any window, sort of like the way web browsers have View Source.
For instance, suppose you have a program that always pops up an annoying dialog box saying "Warning: By erasing this file, you will be eliminating all its data, and you won't be able to use it any more. Do you really want to do this? [No](default)[Yes]" It would be nice to be able to change the default to Yes, and maybe to go further and make it not pop up at all. And you should be able to do this with
Of course, if it's open source C code or something, you could recompile it with your changes. But there are a lot of practical problems with that: (1) it's too hard for non-programmers, (2) it's time-consuming, (3) you have to maintain your own fork, and reconcile it with new releases of the official fork.
Find free books.
Hmm,
Perhaps what you are after is an option for machine readable output - xml or something.
Maybe all tools could be converted to xml
The trouble is people are - in my opinion - overly afraid of bloat.
For example I patched tar to auto detect the compression type, and ppl hated it. "why do tar filename.tgz when you can just do gunzip file.tar.gz | tar -xf - (or whatever it is)"
I would _love_ to see everything cleaned up.
All apps _required_ to have --version, --help, -help, -h, -v, --display in X progs, an option to output everything in XML, integration of common combinations of tools (like tar and gzip) [just auto call gzip, not integrate the two code bases] etc etc
is there such a project being done?
The CLI was the first UI
The GUI was the Second UI
The third UI is related to the pipe.
The Third UI is the side door to application control.
It is the UI that programmers equate to the API, script writers use thru
the primitive pipe, but Users accesses thru an applications side door. An
example of this is the Amiga Arexx "PORT" (not AREXX mind you, but the
side door) to sending the application commands/instructions from outside
the application. Meaning you have a command/instruction vocabulary set
that the application can understand (I.E. ImageFX [amiga] doesn't need
arexx for the user to send the application such commands/instructions).
These three user interfaces are like the primary colors of light, Red,
Green, and Blue, where having these three the user can make up any other
color, but remove one of these primary colors and you greatly reduce what
the user is allowed to do.
But once you have these three primary user interfaces established on a
system and in applications, then you can think about the functionality
that ties these three together (and any other UI that comes along like
voice to text, etc..)
So innovation is not at the level most preceive it to be, and it is this
perception so many have that is the biggest problem or barrier to get
over.
But once it is gotten over, then you can begin to see that what
functionality and configuration of, that is needed to provide ultimate
versatility to the user in handeling such application, library, OS
functionality vocabularies. This includes the vocabulary sets of GUI, as
well as CLI interfaces and the side door, so there is no restriction as to
what interface the user ends up using.
Computers and programming them is a matter of automation. By identifying
the core set of required functionality to enable ultimate versatility in
user manipulating and even creating/extending such vocabularities, you'll
have nine commands.
RFC to Patent Office response covering nine commands
And believe it or not, these nine commands fit rather well the characters
in the movie, The Matrix. 3rd of a 3 page loop
And a python start to creating this "Virtual Interaction Configuration."
Just one of the commands using facets of some of the others to make it
stand alone Python IQ
The problem with the Star Trek paradigm is that is fake! As in Hollywood fake. Dramatic licence is used all over to make the show flow smoothly.
Many people have tried to build systems like Star Trek, and in fact you can get a lot closer than you many be aware. The problem is that in real life, that interface *sucks*!
In real life it is painfully annoying and insanely slow to tell a room/computer to do something.
We just don't realize how good a user interface a lightswitch is.
The Star Trek data pads are touch sensitive; we have had touch sensitive technology as long as the mouse; but the mouse is what we use because of its acceleration property.
I have built and analyzed [CMU,MIT, Microsoft et al] many systems designed to solve the exact problem you are talking about.
And although the technology isnt up to the task, you can evaluate it as if it is by using humans to "Wizard of Oz" the test. Turns out [in my and others opinions] that the whole idea is dysfunctional and annoying.
When they introduced computer based sythesizers, where you could move digital sliders to change the sound parameters (threshold frequencies etc) to make it sound different, musicians that were used to the old analog synthesizers, with dozens of buttons, sliders and knobs, hated the new interface. Why? Because with the old interface they could use both hands at once. They could even use 4, 6 or 8 fingers at once (plus thumbs), each touching a seperate control. But you didn't have to. You could just change one knob at a time if you wanted to. This provided an easy migration path from learners through to experts. And provided much more power and flexibility to create a much wider variety of sounds.
I'm not suggesting we create computer interface gadgets with dozens of sliders and knobs. I am saying that the main current interface on computers (the mouse) which is limited to one or two buttons is geared towards novices, and not toward expert users.
Power users would be much more productive with an interface that lets them use all their fingers simultaneously, and lets them change several things at the same time.
What is this interface? It is a combination of software and hardware. Software that allows you to select lots of things at once and manipulate them at the same time (eg multiple brushes and textures in Photoshop) and hardware that can assign each finger to a thing or process (eg perhaps a dataglove). And remember, each finger can potentially have up to six degrees of freedom, which allows for tremendous expression and power (not limited to the image example mentioned above).
That's a great idea. I'm going to start looking at adding a "-xmlin" and a "-xmlout" parameter to GNU tools, so they can "hear" XML-formatted data from a pipe, and "speak" XML-formatted output.
So a grep like:
would output something like:
<xml>
<matching file> file1.c </matching file>
<matching line number> 42 </matching line number>
<matching line text> "blah blah blah BUGBUG blah blah blah" </matching line text>
</xml>
(That's not good XML, as I don't know it yet, but you get the idea.)
I feel fantastic, and I'm still alive.
The best interfaces I used were WordStar 2 in the mid 1980's and Displaywrite 3 in the early 1990's. I am a fast and accurate touch typist. The two fingered commands in Wordstar basicly linked brain to keyboard to screen for me. I have a visual impairment so it meant my eyemuscles could stay on the screen and not have to move and refocus. I also had no mouse to mess with.
I love doing graphics which for me mainly means scraping the backgrounds off of photographs. I also draw with a mouse. I have pulled my right trapezius muscle four or five times. The first time was in 1996 and my boyfriend and I left for vacation as I ached. Passive motion in a car or bus is agony though standing and walking feel good. I did not sleep and through most of the second day of my trip from Utica to El Paso I stood in the aisle of the Greyhound with my arm upstretched.
My boyfriend had trouble walking in the Texas heat so when we rode the Via buses I stood again because to sit with my arm in my lap would have been unbearable. I remember touring the military post they hae in El Paso and laying down periodically to rest that sore shoulder.
I think the bad muscle has gotten stronger with time. I still would like to be able to word process without a mouse and with all keyboard commands. I realize for a lot of people this is not practical but for those of us who are GOOD TYPISTS this would be a more comfortable alternative.
Eileen H. Kramer/Roanna/ZOIDRubashov
http://zc2zc3.st
Please visit ZOID CITY Community and Community Competition http://www.zc2zc3.st
think about this /foo /bar you can just say "Computer: move all the files in slash foo into slash bar"
:)
instead of doing cp -Rf
its great for lazy people
and wouldnt you like to be able to control your entire house from your desk?
its great
not very likely to happen within our lifetimes but i can dream
One that I stole from http://www.geocities.com/ResearchTriangle/Forum/67 51/,
the LinuXML site. Go look there for some ideas. And good luck!
-_Quinn
Reality Maintenance Group, Silver City Construction Co., Ltd.
Looky. A little-considered effect of all this inter discplinary convergence is that we're going to start running out of acronyms. Some poor slob has been trying to use T&A to mean "theory and application".
The good and new comes from no quarter where it is looked for, and is always something different from what is expected.
Before we have face/gesture/intention recognition, a theramin input device would be nice. Here's an instrument that bridged analog and digital instruments, something of a primitive.
The problem with the Star Trek paradigm is that is fake! As in Hollywood fake. Dramatic licence is used all over to make the show flow smoothly.
I won't refute that. It is merely a paradigm that people can identify with, that's why I used it.
Many people have tried to build systems like Star Trek, and in fact you can get a lot closer than you many be aware.
Lemme see, flip phones (communicators), horseshoe bridge design (used on some aircraft carriers), the biobed design was studied by the military, phasers (tazers and other non-lethal weapons), etc. Star Trek mythology has had a large impact on civilization and technology as a whole. Only a fool would deny that.
In real life it is painfully annoying and insanely slow to tell a room/computer to do something.
We just don't realize how good a user interface a lightswitch is.
The idea behind what I am proposing (and what you actually see on Trek) is that the interface is multifaceted so that you can use what's convienient. Which is more convienient when you walk into a dark room carrying groceries, saying "computer: lights!" or fumbling for a light switch? That's not to say that some of the current attempts are really not good interfaces, but given enough technology and design and it could probably work quite naturally.
The Star Trek data pads are touch sensitive; we have had touch sensitive technology as long as the mouse; but the mouse is what we use because of its acceleration property.
Most laptops use touchpads, I once had a remote control that had a touch LCD, most fast food restaurants use touch screen registers, etc. Having actually used touchscreen cash registers, I can personally say that not only are they a good interface, but they are FAST and generally have a lower rate of error than key or touch-key (these things are a joke) registers. Part of what makes them so nice is that the interface is specialized and reconfigures on the fly. Now that's not to say that touch screens are optimal for all situations, but they definitely are useful.
To be perfectly honest, you make some good arguments, but they are based on current emerging technologies. Natural voice recognition (much less speach) and touch screens are in use in many industrial areas, but as of yet are extremely specialized and need time to mature. One day the technology will be there, and then we will be able to have a much more realistic conversation on these pieces.
Javascript + Nintendo DSi = DSiCade
Perhaps, but there's a reason why this "hackish" communication is popular and effective. Ifconfig's text output is its API (the output half, anyway). Since I already type ifconfig to learn about interfaces on the machine, I don't have to learn a new API to stick data into a shell pipeline. Khtml may have this wonderful relationship with konq, but I feel left out. I read and write ASCII, not binary. Suppose I want to try using khtml for something - can I invoke it with different arguments in a few seconds and see what it does? And if I invest enough time to understand and use the interface, how do I troubleshoot it when it breaks? If a complex shell pipeline starting with ifconfig is malfunctioning, I could start by trying a plain 'ifconfig'. How will I isolate some K-component from its friends and see what it's putting out?
I think a lot of the power of Unix is the overlap between the machine-readable and the human-readable. When you can read and write a language yourself, it's easier to write code that reads and writes that language. And it's easier to debug.
when/if you can simply tell your computer to do something aren't you simply vocalising a command-line.
Complete wimp/gui systems are the equivalent to not knowing the language and having a sign with a few phrases written on it. When you want to tell someone something you point to the appropriate phrases. Quick and easy but no where near as useful as actually learning the language.
'Welcome to Rivendell, Mr. Anderson...'
You make good points, but I think the layering you describe is not what the OP wants. All these layers of crud supporting Java on Unix are just to give it the abilities of BASIC on a VIC20 - input, output, RAM access. We have a good degree of code reuse for GENERIC purposes, as you illustrate. But we are not yet good at reusing task-oriented code.
I'll try to explain. How do you find out the temperature in a city? To start with, we still don't have a standard way of coding cities. I encountered this when trying to (automatically) draw a world map showing the hosts in a certain network. The location information for each host was free form. It took a large amount of effort and special casing to get a program that could locate 90% of the hosts on the map.
On every project I've seen, we reinvent the wheel. Not the OS or GUI, a higher-level wheel. What kind of contact info do you ask from a user? How do you validate it? I think MS is aiming at that problem with Passport. And SOAP may be the first step towards getting computers to talk on a high level without the explicit intervention of programmers. In fact SOAP may be the real answer to the OP's request. The only place I've seen real reusability (in the high-level sense) is CPAN.
We have flat screens, we have lightpen recognition, we have gesture recognition (this is probably the bit that needs most work).
What I envision is something the size of a clipboard (though probably thicker), the entire front surface of which is a flatscreen display that can be written on with a stylus.
The WIMP could be almost totally eliminated. You write what you want to do and can even store custom gestures for frequently used tasks. The only time something WIMP-like appears is if you need to know what programs you have available. The Virtual Paper would recognise filenames and URL formats (for example) so just writing "www.bob.com" would open your browser and "letter.txt" would open the file in your text editor.
You could have a virtual eraser at the end of your stylus (like my graphics tablet has now). Things would be automatically copied to clipboard when you circled them, and pasted where you tap.
You could press the edge of your virtual paper against someone else's to transfer files. With wireless technology, your virtual paper can hook into the office LAN.
No mouse, no keyboard, much more natural interface. The only problem I can foresee is that it wouldn't work well for games...
Apple's new APIs are really interesting once you get into them. There is a port of Cocoa to linux called GNUStep. If you want mac applications on linux, help them out.
Each command should have XML as an optional output and input mode. This way the proccessing of the input and the ouput could be done via standared XSLT scripts
why not implement a graphical version of the pipe? Or at least improve cut and paste
How about making "virtual desktops", similar to Evolution's virtual folders: instead of simply having desktops number 1-8, you could have named virtual desktops. Any particular window could then exist on several desktops at the same time. You could switch between different "views" of the same windows by flipping between virtual desktops. This would save a lot of time resizing and switching between windows.
:) Can this be done in sawfish? Anyone care to mail me with some ideas?
Another nice thing to implement would be an xterm that can be connected to other xterms to produce a pipe, simply by right-clicking-and-dragging. Imagine, you open a pipe window, drag the output from window#1 to the pipe. Flip to another virtual window, where you have the same pipe open, and drag the from pipe to window#2. Now you can type away on window#1 and the output gets piped to window#2. It sounds complicated but I imagine this could be very nice for a power user.
People would get horrible damage to their eyes, perhaps drying their eyeballs out trying to control their blinking ;-)
Either that or the engineers who build life imitate Star Trek, but anyhow, let's see what they use...
Very good NLP, and buttons.
Physical buttons in TOS; touch panels subsequently. They have pointers but seem to only use them for signatures.
Hmmm... Of course they don't seem to have taken account of the fact that you can't use an upright touch panel for more than a few minutes before your arms felel like they're going to drop off.
~~~~~ BigLig2? You mean there's another one of me?
A number of other possibilities are discussed in Jef Raskin's book The Humane Interface.
Then there is the whole Lifestream concept.
...richie - It is a good day to code.
They already did. :-)
At least one UI research lab has been playing with new ways to visualise large amounts of data more efficiently than we currently do. One of their "pet examples" was visualising a directory tree in pseudo-3D.
Essentially, you draw the root at the left of the screen, the next level down is drawn to the right of it, and so on. To draw each level, you form a "ring" of the available entries in 3D, around an imaginary axis running left-to-right across the screen. So, the "nearest" entry to you in the ring is the current directory at that level, and those with similar names are "nearer" to you than those without (which are still visible, but on the "far side" of the ring, and so much smaller).
The result is that you can usually choose any given directory at a particular level within a matter of a couple of clicks. Even if you miss the first time, the ring will rotate around so the entry you clicked (which is presumably at least near the one you wanted) is closest to you, and hence it, and the entries near it (presumably including the one you wanted) are more prominent and easier to select. Two clicks instead of having to scroll up and down dozens of entries as we do now is a serious improvement. (Scroll bars, as often implemented today with buttons at opposite ends, must be one of the worst pieces of UI in history, BTW. Bravo to those who've put the buttons altogether.)
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
I think use of such a device would be much too tiring over long periods. IMO, it'd fall under the category of an input device handy for certain specialized things, but unsuitable overall.
;p
As far as mice in general, I doubt we'll see any more one-button mice. An extra button or two doesn't add too much complexity, and it matches well with the "activate and manipulate" metaphore, IMO. There's usually more than one way to manipulate an object, and that's where an extra button or two, as well as context menus, come in handy. If you have a single button, you haven't solved the complexity issue; you've just moved it to the GUI you're interacting with, with the multiple ways of interacting with objects repeated over and over again when you want to do something to something in the UI.
There's a balance to be struck here. Don't be too quick to go to one end of the scale with one button mice.
Perhaps a two button mouse plus a wheel is and will remain the best solution for the mouse class of devices, although more buttons can be handy for some things like games. Just another joystick, in that case, and joysticks can be bought. How often do you see someone using a joystick for word-processing, though?
- Ithil
It surprises me that I haven't seen anyone mention some of the best user interfaces known to man:
When it comes to ability to transfer information easily and efficiently, few interfaces beat these old staples, even today. Why?
When someone comes along with a computer interface that meets these basic requirements, they'll be in with a chance of beating technology that's been around since before anyone knew what the word "computer" meant.
I think the truly key thing here is adaptability; given that, the rest will follow. The interface of the future will adapt to its user like nothing any computer does today. For example, instead of a keyboard with fixed keys, there might be touch-sensitive panels, where the "keys" change to match what I'm doing (or aren't keys at all, for example, if I want to draw a diagram or I'm playing a game). Instead of fixed commands, there might be natural language interfaces, and some easy means of resolving ambiguities.
I don't think anyone can predict the physical nature of UI of the future, but I think we can predict some of its basic properties. First among them will be adaptability, and from that base will come ease of use and everything else that follows.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
i have seen a lot of "fps" style guis , you fly around a deskspace thingy and the windows just hang around in the air. there is some cool stuff to play with but i always thought that they were just to complicated....
:) )) but you cant move around. the "crosshair" is your pointer , the "windows" curve to the sphere (maybe) , and everything else is the same.
anyway , i thought well if theyer to complicated , just restrict what you can do to make them less complicated , and after some thought i came up with this :
instead of a desktop , you have a big sphere. your head is positioned in the middle of the sphere. the mouse looks up,down,left,right like a fps game (but can rotate all the way around (scarey floating head
maybe also a modifyer would toggle between "looking around mode" and "oldschool pointer moving around the veiw mode" so your not always looking around. i like the idea of say having 2-3 windows open and focusing on another just by looking away , or "turning around".
i hope i have made myself clear....
samael
Maybe nobody realizes this, but there is a board specifically for discussing UI issues. There's been some really good stuff there, but like most slash sites (other than this one) the traffic seems a tad slow. Go liven it up.
Constitutionally Correct
I'd agree with you, but there are several other
languages out there that might be a better example
than Spanish. The benefit you point out is actually
not uncommon -- many languages have a regularized
pronunciation/spelling parallel. The disadvantage
that Spanish, German, and many other European
languages have is genders -- nouns all have one of
two (or 3, for German) genders tied to them, making
them harder to remember and also creating different
conjugation rules. The genderlessness of nouns in
English is a big plus. Instead of a European
language, I would like to suggest either Korean or
Japanese as admirable languages. The main thing
about Korean is it's alphabet, which is rather
well designed. The main thing about Japanese is
that it also is very regular, and pretty
position-independent (thanks to positional tags,
which Latin used, although Latin is far too
complex). Sadly, the Japanese writing system is
too complex (2 alphabets, one huge set of
chinese-derived glyphs) to be directly used. I
suppose the language I would choose for the world
would probably be Japanese, with its written form
simplified to purely hiragana (discarding katakana
and kanji).
For every problem, there is at least one solution that is simple, neat, and wrong.
Next time, though, perhaps you could wish that fewer, rather than less, people would redact text the way the submitter did.
I see even classic Slashdot is now pretty much unusable on dial up anymore.
In my experience these interfaces sucks bigtime (think paperclip here...)
BUT! If these interfaces really could learn how you work without making any assumtions (like that paperclip bastard) about you, it would be really great! What i relly hate is when someone has already decided how I'm supposed to do things and try to force me to do them their way. (...still thinking paperclip here..:)
Make my entire desk the screen, and let me write on virtual paper with a digital pen, and let the computer do my typesetting for me. Now that's what I'm talking about.
Glückwünsche, haben Sie Slashdot ermordet, indem Sie zum korporativen Druck beugten und Subskriptionen einlei
If we go as far as that by emulating reality, then I think we are better off with the actual thing. For one thing, it's cheaper. For the other, you don't have to stuff yourself with all the gadgets.
If I remember correctly, a GUI pipe scripting metaphor was part of Job's NextStep OS.
At any rate, I was always a bit surprised that people (me included) didn't write a generic TK interface that would wrap around sed/grep/cut/perl/etc and provide a way to save off a script that you were building and allow you to tie such blocks together. For me, building shell programs is fast enough that this interface wouldn't create much of a speed-up.
The problem with Mice are well known. The basic interaction is silly, i.e.: Shake the mouse around until you see the cursor, coordinate your hand movement with something that happening in a different location,click or drag, and stare at the screen to see whether your efforts were recognized. Mice aren't particulary useful for people who have poor fine motor control and they don't help people who have impaired eyesight.
The best interface is where beginners have no problem interacting at a basic level, commands are accepted in a variety of formats for more advanced (or special needs) users (speech, gesture, command line, pen, keyboard shortcuts, etc.) AND experts are not hamstrung. Current UI's have bred a pool of perpetual novices.
The problem is that you then have to program every possible output into each and every possible program. ls has a whole wack of options, but it doesn't have enough options to list only the files owned by me sorted by the group printing only the group and filename. Even if you added that functionallity to ls, then I can think of a new problem, and before you know it, ls is a 50mb binary, with so many options that no-one can remember how to solve their problems anyway.
>>Can you name a single improvement to the concept of the wheel in those years?
m l
http://www.maa.org/mathland/mathtrek_7_13_98.ht
Just as a square rides smoothly across a roadbed of linked inverted catenaries, other regular polygons, including equilateral triangles, pentagons, and hexagons, also ride smoothly over curves made up of appropriately selected pieces of inverted catenaries.
Otherwise Amigas can do some pretty nifty stuff with Arexx, the amiga version of rexx. Basically letting you add functionality to apps, or provide bridges between them.
Erik Dalén
A mouse is a very logical device. Its operation is trivial to grasp, even for a new user. In fact, as far as I can tell, it has a much shallower learning curve than even a trackball, and that's simple enough to where they used to put them in video games. Now that we have optical mice with no special pad required, mice don't even suck any more! They're just not a very good device for 3D navigation. Even then you could use the wheel (if you have one) for motion along the Y axis. It just wouldn't be much fun.
For three dimensional movement, until we get the direct neural interface (which I think we will have eventually, but I suspect it will require nanotechnology, which is something else I think we will have eventually and hopefully not wipe ourselves out with) the best interface is likely to be the dataglove. 'Smart' gloves will become better and better refined until they are [at least] as good as high-end two dimensional pointing devices are today, but for dramatically more input.
As for interfaces, most of the metaphors we use today will still apply. When you want to write a letter, you will still write it two dimensionally. You might end up penning it by hand, with no pen, and no paper, but it'll still be the same thing - A letter. Oh sure, by that time we'll all have enough bandwidth to embed big video clips in it, and maybe no one will bother with text messages when it's so easy to send off a video clip alone, but there will always be holdouts. Besides, text has some special properties which make it desirable.
I've put quite a bit of thought into three dimensional interfaces. If I had a worthwhile dataglove, I'd be into doing it now. I think that without too much hassle you could make a three dimensional interface which would work with your two dimensional apps. You'd just be able to grab their title bars (or something) and position them around you so that you'd turn your head and see more windows. To hell with virtual desktops...
I was thinking that a new X server would be the way to go on this for conceptual design, but since a couple of complete X replacements seem to be on the way, maybe that's not the way to go. But all you'd need then would be some new libraries for creating three dimensional applications, and you'd be able to run legacy X apps without their ever knowing anything about the 3D windowing system. I don't know, maybe it's a good idea, maybe it isn't.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
The space bar also works for most uses of enter, including repeat last command. Enter is a right-hand (mouse-hand) key.
My preference would be for a 'Johnny Mnemonic' kind of interface. No keyboard, no mouse, just 3D video glasses and data gloves. You could use a variety of objects to do different actions (standard or set up as you please), or call up a keyboard or a mouse by 'touching' those icons if/when you thought it necessary or convenient.
Example: looking through the glasses you see a superimposed 'screen', of any size since you can fill the entire visual field if you so desire. You can also see your disembodied hands when you lift them into your visual field (but if below that line, you could drink a cup of coffee while reading the news without triggering a selection).
To the left and right of the screen would be a selection of icons that you could 'tap', opening up submenus of more icons or choices that would allow you to run programs, etc. These icons could either be whatever the industry standard is or icons that you've set up yourself, with your own menu choices. Two of these icons would be 'mouse' and 'keyboard'. Tap 'mouse' and one of your hands becomes a mouse pointer, tap 'keyboard' and a standard virtual keyboard pops up at the bottom of your field of vision which you can type on (and if you can't touch type, that's fine - remember, you can see your virtual hands while they're in your LOS).
Minimal equipment, as customizable as you could possibly want, and you can summon up virtual keyboards and mice with a simple gesture.
Max
My god carries a hammer. Your god died nailed to a tree. Any questions?
...are thousands of enslaved human minds. Anyone else out there a Vernor Vinge fan? Ever read 'A deepness in the sky'? Something like that Focus virus --- something that would convert, say, the guy I don't like in my Linear class into a damn fine airplane-ticket-booking, SETI@Home-running Fuzzy-logic-running engine. Moreover, make sure that the virus keeps said engine happy, as a happy enslaved mind is a productive enslaved mind!
- undoware.ca
You *still* don't understand. The sorting and tweaking of LS should be handles outside of ls - if anythbing, ls would have less options, because it won't deal with presentation issues itself.
Thanks for the pointer! Looks very interesting, even though the link for signing up to the mailing list appears to be broken...
I feel fantastic, and I'm still alive.