8 ms·
One thing that almost always gets overlooked when critizing / trying to innovate on Xerox Parc-like interfaces, is discoverability. Look at departures from this
by m_mueller 11y ago
One thing that almost always gets overlooked when critizing / trying to innovate on Xerox Parc-like interfaces, is discoverability. Look at departures from this interface (or predecessors of it) and you'll almost always find a system where it's hard for users to discover what they can do and how their actions will affect the state. Most prominently:
* iOS style gestures
* Office Ribbons (where has my feature XY been moved to? I guess I have to google now..)
* CLI (what does parameter -p do again?)
* Metro style swipes
* Voice commands
The only interface that has improved on discoverability so far, is OSX, especially with its integrated spotlight search in each application's help menu.
What I'd like to see is a CLI that (a) understands objects by default (i.e. PowerShell) and (b) is discoverable, for example by using mouse interactions when you're trying to learn.
(a) would mean that the command line applications become much easier to compose. Imagine something like list / dict comprehensions in the command line:
ls | [entry.created for entry in $@ if entry.filename[0] == 'a'] | sort
(b) would mean that you could hover each of the commands above, inspect the possible parameters, default values, examples without having to execute anything. The whole interface could get much richer as well, for example if the output of your commands is a list of objects that have the same attributes (e.g. `ls`), it would display it in a table where each column is sortable using gasp the mouse.
- hayksaakian 11y agoAt least good CLI programs have a help command that spells out exactly what they do. Or even a man page.
- m_mueller 11y agoYes that's mostly enough for simple cases, but have you ever tried to discern a gcc command with 12 compilation flags enabled? It takes you half an hour to find everything you need in the man pages. 30 years after the wide scale spread of pointer devices this is IMO just ridiculous.
- tatterdemalion 11y agoI wouldn't try to justify the awfully huge number of commands that many unix util implementations have - which seems like an anti-unix design movement to me - but you can at least cut down the 30 minutes of man page spelunking with man <foo> | grep -A 3 "\<flag>". Adjust -A argument as needed. (for example, if you don't know what -A does on grep, run `man grep | grep -A 3 "\-A"`).
- Qantourisc 11y agoYou can also use / in man to do a search in man. (Assuming your pager supports it, don't forget to use the home key to go back to the beginning for a new search option.)
- wz1000 11y agoHere's zsh on my machine: http://imgur.com/dZshfUR http://imgur.com/dZshfUR
- hayksaakian 11y agoThis switch lacks documentation
- vacri 11y ago> have you ever tried to discern a gcc command with 12 compilation flags enabled? This isn't a 'discoverability' problem - the problem is the complex task. Most of what you're doing on the commandline isn't "gcc with 12 compilation flags". "How do I print this document?" is an example of poor discoverability on the CLI; command flags are not.
- nitrogen 11y agoTo print, one used to pipe things into the lpr command, discoverable using the apropos command.
- 11y ago
- pqdbr 11y agoSince you touched discoverability I feel the need to point out how bad a design choice I think "Force Touch" really is. I've had the Apple Watch for a month now and I don't really see the point of it. The argument for little screen real estate simply doesn't cut it. Take the notifications pull down for instance. (BTW, you have an already hidden UI gesture to open it - swipe from top to bottom). Then you see a list of all your notifications in a column of little cards one after the other. There's no reason there shouldn't be a button in the end of this list labeled "Dismiss all". Force touch is simply too hidden from the average non-tech-savy user. Apple even has this "dismiss button" when the Apple Watch brings you individual notifications as they happen. They should have just put a button there instead of hiding the option in Force Touch just to demonstrate the new technology. Not to mention that it's slower then tapping a button and there are misses (10% of my force touches are not recognized; it's not a lot, I'll give you that, but it's annoying as hell when it happens and the slowness bothers me every time). Lastly, I read an article in AppleInsider 5 days ago [1] stating that Force Touch will be a revolutionary addition to the next iPhone. Needless to say, if Force Touch had anything going for it on a really small screen as the Apple Watch, I dont know who could benefit from using it on a huge screen like the iPhone. Silly UI choice in my opinion. [1] http://appleinsider.com/articles/15/06/29/as-apples-iphone-turns-8-force-touch-and-touch-id-are-ready-for-the-future http://appleinsider.com/articles/15/06/29/as-apples-iphone-t...
- m_mueller 11y agoI think stuff like that is ok iff it works consistently (>99%) and if it does something consistant as well. For example, on Windows I do like how I can usually predict what a right-click does. If Force Touch is used consistantly for context based interactions, then I think there would be some advantage on larger touch screens, since it could be executed wherever your fingers are, instead of scrolling back to the top / doing the akward double-home-button-tap-dance. Basically, I'd like it to do exactly what a right click does in Windows or CMD-I did on OSX when it was still geared towards power users, which is basically also a way to reduce mouse movement.
- pqdbr 11y agoYou touched another interesting point. I remember reading somewhere that Steve insisted the mac shouldn't have a 2 button mouse for such a long time just because it would force developers make a simpler UI, where no 'hidden menus' could be created. The lazy option of just throwing everything under a 'right click' simply couldn't exist. If you think about it, Force Touch could create that 'right click' in iOS, which I think is a bad idea for starters. We already have hidden gestures and tap & hold, so there's already enough stuff hidden from plain sight in the User Interface. Let's face it: the popularity of these devices came from the fact that they are really easy to use to the average user (think your mom for example). Will she know about Force Touch and incorporate that in her interface discovery process ?
- jacobolus 11y agoI’d love to have a shell-like environment where every command’s output was a stream of structured records with support for rich data types (ideally including stuff like images), not just lines of plain text. The hard part here is not just figuring out all the core UI and protocols (though that would also take some work), but actually implementing all the hundreds or thousands of essential basic programs. Unfortunately existing technologies are so entrenched that this kind of thing isn’t going to happen without someone with very deep pockets funding it. One neat thing is that a rich enough structured metaformat could be used directly for storing things like config files, logs, many types of structured documents, etc. directly to disk, and wrappers could be added to transcode existing legacy formats to/from the standard metaformat. The difference could then be minimized between reading a typical file vs. reading the output of some tool, and likewise the difference could be minimized between reading config options from a file vs. passing in config options in the shell directly, etc. etc. [Aside: also unfortunate is that there aren’t any solid document/protocol metaformats which would serve this purpose, as far as I can tell. The Clojure guys have generally the right idea with edn/fressian/transit, but the datatypes they’ve implemented are a bit too closely mapped directly to Clojure types (including types irrelevant in other contexts and missing meaningful distinctions from other contexts); in particular they haven’t really considered binary data types like images or big tables of numerical data. By contrast, data metaformats used in the scientific computing world like e.g. HDF don’t pay enough attention to standardizing complicated structures of non-numeric data. JSON and similar formats, even e.g. Apple plists, aren’t rich enough and so end up causing fragmented ad-hoc solutions to common problems. XML is terrible in almost every possible way. Etc.]
- metasean 11y agoBy chance, have you ever had a chance to use Quicksilver? If so, what are your thoughts on it? http://qsapp.com/about.php http://qsapp.com/about.php
- jfim 11y agoIsn't that what Powershell does? It passes structured records between processes when using pipes[0] and they can be formatted and written to disk[1], as they're not just a stream of characters. [0] http://www.tomsitpro.com/articles/powershell-piping-filtering-objects,2-771.html http://www.tomsitpro.com/articles/powershell-piping-filterin... [1] http://blogs.technet.com/b/heyscriptingguy/archive/2014/06/30/back-to-the-basics-part-1-learning-about-the-powershell-pipeline.aspx http://blogs.technet.com/b/heyscriptingguy/archive/2014/06/3...
- skymt 11y agoThe Office Ribbon is notable for being designed entirely for discoverability. What it lacks is familiarity. http://blogs.msdn.com/b/jensenh/archive/2005/09/14/467126.aspx http://blogs.msdn.com/b/jensenh/archive/2005/09/14/467126.as... > Office "12" consolidates all of the entry points into one place: the Ribbon. So if you're trying to find a feature and don't know where it is, the scope of your search is drastically reduced. Click on the leftmost tab, and click across the tabs until you reach the end. That it. It's either there or it's not--there are no other "rocks" to look under, no other places we've hidden functionality. We've found in early tests that people find it easier to discover how to do new things in the Ribbon, and they're more apt to explore the UI looking for better ways to get things done.
- brudgers 11y agoRelated: The Story of the Ribbon https://channel9.msdn.com/Events/MIX/MIX08/UX09 https://channel9.msdn.com/Events/MIX/MIX08/UX09
- falconic 11y agoI mean, it's a nice theory but it isn't actually true. There's tons of functionality which exists in many ribbon-ified programs but not actually accessible from the ribbon. If you right click on the ribbon in many applications and select 'customize' you'll find all sorts of useful functionality. The customize window (at least in Excel 2010, which I happen to be looking at at the moment) has organization to help you find the stuff you can customize the ribbon with, and it even has a 'commands not in the ribbon' section! Maybe the ribbon contained all functionality when it was first introduced (though I doubt it very much) but that certainly hasn't been true for years.
- girvo 11y agoDoes something have to contain all possible functionality to be "discoverable"? I think you're both correct.
- acqq 11y agoIt's even worse: look at the Paint in W7: there is a ribbon, but try to find something as simple as "print" there. No, the Print button is behind the button that drops down the menu. Then look at the Mail in W7 (Live, whatever). Once the big button called "Send and and receive" on the toolbar is also not on the ribbon, but a tiny tiny button on the title bar. If you already have the muscle and visual memory for the older interface, such "illogical" shifts can remain confusing for a long time. Especially to the older people.
- MichaelCrawford 11y agoA few days ago I installed a pagerank/alexa add-on in TenFourFox on my Mom's iMac. It's a backport of FireFox for powerpc Mac OS 10.4 It installed OK, I relaunched tenfourfox then couldn't figure out where the add-on's UI. When I clicked the Add-Ons icon in the "Pile of Elephant Droppings" menu I could not find anything. Knowing that Firefox is always screwing up UI that works well for me I spent a half hour or so trying to find the Add-On's UI. Eventually I figured it must be in the status bar, which was disabled, so I spent another hour or so trying to figure out how to enable the status bar. Then I found some jackass firefox developer who, in response to a public outcry from others said simply "The Add-On bar has been deprecated." By who? I certainly didn't deprecate it; it worked really well for me.
- JupiterMoon 11y agoI may be misunderstanding what you need help with but try about:addons?
- MichaelCrawford 11y agoI was eventually able to find the ui that lists add-ons. To restore the add-on bar, I had to install another add-on. Im not real clear why firefox thought it was a good idea to remove the add-on bar without asking any of the people who use it, but the outcry was something like what is going on right now with reddit.
- JupiterMoon 11y agoAh are you looking for the UI to have UI elements for addons visible? In that case click the hamburger menu and then customize at the bottom of the menu. This should allow you to add UI buttons offered by the different addons you have installed next to you bookmarks etc button.
- MichaelCrawford 11y agoThat only works for add-ons that know about the add-on bar deprecation. The seo add on that didnt work has over one million installs yet firefox totally borked it.
- MichaelCrawford 11y agoLOLcats. The very first thing I do when I set up a new OSX install is to completely disable spotlight.
- spost 11y agoWhy?
- Mikhail_Edoshin 11y agoI'm not the author, but I too had problems with it in old days. First versions of Spotlight were very buggy and sometimes the background indexer slowed down the computer very noticeably (eating up 25% and more of processor time). Apparently, it had something to do with the first invocation: if it didn't manage to index all at the first time (which could easily happen if the user restarted the computer), then it entered that processor-hungry mode. Another thing is bad UI. It starts to search as soon as I type it, which, for me works so: I type one or two characters, then it freezes because it starts searching and finds everything with these characters. Then after a few very long seconds it thaws out and I get a chance to type the rest of it and also set search options. I almost always search for file name, not contents, so I have to set this option on every search. Somehow I don't have these problems on Windows; here I always have a chance to type the whole phrase. I also use content search much more often, that is, I don't bother setting options, I'm content with the results :) (My PC hardware is faster, but not that much faster; I think the problem is in bad timing.)
- lobster_johnson 11y agoSpotlight used to be bad, but the issues were resolved long ago. It's fast and gives good results, and no longer freezes or consumes lots of CPU. In Yosemite you even have a bunch of NLP stuff, like typing "100 feet in meters" to perform calculations.
- MichaelCrawford 11y agoI dont want extra copies of my information that I dont know about. Some of the work I do I keep encrypted. My problem with OS X in general is information leakage, there are logs and caches all over creation. Its not enough for me to disable indexing of a folder or filesystem; I am concerned spotlight will index leaked information. Admittedly osx is a poor choice for my work, openbsd would be better but i dont like neckbeardsbeither.
- PhasmaFelis 11y agoThank you. You've communicated why many users find CLIs intimidating better than I've been able to. Faced with a new GUI program, even on an unfamiliar operating system, an average user can usually click around and experiment enough to figure out the basics in a few minutes. This is impossible with an unfamiliar CLI, or with programs like Vim, and what help functions exist (if you can find them) are usually strongly geared towards refreshing an experienced user's memory rather than educating a newbie (man pages in particular are often less than helpful to anyone who doesn't already know how to use the program in question).
- lobster_johnson 11y agoI'd like for all apps to have a command lookup similar to Sublime Text: Type some text to match a command. The list must be exhaustive -- if it's not there, the command cannot exist. (Unfortunately, Sublime commands are explicitly registered and the list isn't complete; it even lacks core Sublime commands.) The list should also show keyboard shortcuts and allow a way to modify them in-place. (Sublime doesn't do that either. A real missed opportunity.)
- JupiterMoon 11y agoUbuntu's unity does the command lookup thing with its HUD. XFCE allows one to change keyboard shortcut settings in a similar fashion (from within the menus as it doesn't have the HUD)?
- davidshepherd7 11y agoThat's one of the things I really like about Unity. Can't remember which menu the mouse settings are buried in? No problem, just type "mouse" into the dash.
- pionar 11y agoTo be fair, Windows 8+ does that too.
- Nullabillity 11y agoUnity's HUD does it automatically for any program you have open. Windows 7+'s desktop search includes programs and control panel applets, but not much else.
- davidshepherd7 11y agoEmacs with ido or helm does this [1] but unfortunately it requires quite a bit of customisation, and even more customisation to get nice fuzzy matching. It does include every possible command though, and it can show keyboard shortcuts. [1]: http://sachachua.com/blog/2014/03/emacs-basics-call-commands-name-m-x-tips-better-completion-using-ido-helm/ http://sachachua.com/blog/2014/03/emacs-basics-call-commands...
- anentropic 11y agoI actually think OSX and especially some of the Apple apps like FCPX have a bunch of discoverability problems there's a lot of cases where you have to hold down alt (option) to reveal the 'secret' menu options or special tool mode or where double-clicking on something provides a feature not surfaced in the right-click menu etc etc it seems someone has gone through the interface and tried to sweep away visual clutter, effecting a superficial subjective improvement while harming discoverability and thus usability
- eru 11y agoDiscoverability in the CLI can be much improved with proper completion and a hint system. The fish shell is doing a good job of exploring these ideas. What do you mean by `objects' in this context? And how would they help?
- grkvlt 11y ago> ls | [entry.created for entry in $@ if entry.filename[0] == 'a'] | sort You can do that type of thing with PowerShell quite easily. Something like this, maybe: Get-ChildItem | Where-Object Name.substring(0,1) -eq 'a' | Sort-Object CreationTime | Select-Object CreationTime
- bad_user 11y ago> What I'd like to see is a CLI that (a) understands objects by default (i.e. PowerShell) and (b) is discoverable, for example by using mouse interactions when you're trying to learn. I do not agree. PowerShell is not that great, partly because in spite of popular opinion, text is more composable than objects and doesn't tie you to a particular platform. And in the context of the article, I would argue that "objects" are a dominant design, being often misapplied and misunderstood. Besides, what you need for communication between processes aren't objects, as objects as commonly understood have identity and objects with identity can't be serialized. What you need is a way to structure that information by means of basic data-structures, like dictionaries or lists. But lo-and-behold, that's what JSON is for.
- cbaker 11y agoYou should check out clim: https://en.wikipedia.org/wiki/Common_Lisp_Interface_Manager https://en.wikipedia.org/wiki/Common_Lisp_Interface_Manager especially the listener: https://en.wikipedia.org/wiki/Common_Lisp_Interface_Manager#/media/File:Listener.png https://en.wikipedia.org/wiki/Common_Lisp_Interface_Manager#...