Hacker News new | past | comments | ask | show | jobs | submit login
Miller Columns (wikipedia.org)
177 points by pmoriarty on Oct 3, 2018 | hide | past | favorite | 90 comments

I remember using these somewhere, perhaps a music player, and how amazing they were.

It's interesting to note that Thunar (XFCE file manager) and Dolphin (KDE manager) have removed Miller columns, in KDE's case because the column view had "been used by only very few people but was tricky and time consuming to maintain." [0]

A slight side note, I've been a fan of Mark S. Miller's work for a while now and I never knew these were named after him. Mark S. Miller's other contributions, particularly his work on popularizing capability-based security[1] and the E programming language[2] are well worth looking into if you're interested in how easy secure, race-condition-free, distributed computing could be made.

[0] http://ppenz.blogspot.com/2012/01/dolphin-20-status-update.h...

[1] https://en.wikipedia.org/wiki/Capability-based_security

[2] https://en.wikipedia.org/wiki/E_(programming_language)

Came here to say much the same. I spent much of my youth reading reading ERights.org [0] and related capabilities-based security sites (Hardy, Shapiro, etc.). Weird how it seems nothing ever came of it (or am I wrong?).

[0] http://www.erights.org

Cap'n'proto's RPC layer[0] is interesting and is heavily inspired by E language's network layer (capTP) and the author says that Miller was involved in the design [1].

I also seem to remember that one of the authors of Pony language[2] says that Miller had been involved in discussions with the authors of Pony language.[1]

I seem to remember a comment stating that Cap'n Proto is used by Cloudflare, but I'm not sure if they use the RPC layer as well as the serialization layer.

I also think that we are in an age where promises are widely used and promise pipelining[3] could somehow end up a future mainstream language feature.

[0] https://capnproto.org/rpc.html

[1] https://news.ycombinator.com/item?id=9483735

[2] https://www.ponylang.io/

[3] https://en.wikipedia.org/wiki/Futures_and_promises#Promise_p...

Cloudflare uses both Cap'n Proto serialization and RPC, though at present the serialization is used by a lot more systems than the RPC is. Serialization is most notably used in the logging aggregation pipeline, though shows up in a number of places as well. At present the only place I'm aware of RPC being used is the control protocol for Argo Tunnel (the tool which lets your web server connect to Cloudflare, rather than the usual arrangement where Cloudflare connects to the web server, hence letting it stay behind a firewall with no public IP). We're investigating more use cases, though, particularly around IPC (communicating between processes on the same machine) and Workers (communicating between sandboxes in the same process), both places where zero-copy is likely to shine. I'm also excited by the possibilities for capability-based interaction between Workers.

(I'm the tech lead for Cloudflare Workers and also the creator of Cap'n Proto, though Cloudflare was using Cap'n Proto long before I joined. And yes, Mark Miller is a friend and I worked with him on the RPC design.)

Mark ended up designing several things in JS (like WeakMaps), influenced by his work on Caja (object capabilities for JS). I ran into him a couple of times while he was doing standards work with Dave Herman.

I would be surprised if he was not involved with Fuchsia. Fuchsia has object capabilities written all over it.

Can you explain the Fuschia part in more detail?

He cofounded a startup recently: https://agoric.com/blog/

I thought a lot of the agoric computing folks turned to cryptocurrency-related stuff recently? (Sorry, haven't been following this much lately)

> * I remember using these somewhere, perhaps a music player, and how amazing they were.*

Maybe foobar2000 (possibly with some UI plugin?) It's been a very long time, but I recall somethign similar.

https://yuo.be/columns_ui looks a little like it, but this would have been mid 2000's, probably on windows XP.

I originally thought it was on Windows XP, but I think it's most likely it was Quod Libet on Linux.

It's the second picture on the article. Don't know how I missed it.

He also played a nontrivial role in the development of Xanadu. The 1995 Wired article on it figures him prominently: https://www.wired.com/1995/06/xanadu/

He told me that article got all kinds of things wrong. Don't forget Gell-Mann amnesia.

> I remember using these somewhere, perhaps a music player, and how amazing they were.

yuck, I always hated software that uses them. I find them highly unpractical

> I've been a fan of Mark S. Miller's work for a while now and I never knew these were named after him.

Note [citation needed] in the article. I‘d also really like a real reference.

(Ted Nelson once pointed out that Mark Miller's name is also his occupation.)

I love it so much. The only Finder's feature(well, aside from label) I miss when using Windows Explorer. I can fly through my folder hierarchy quickly with just directional keys, with crystal clear picture of where/how deep I am in the directory.

Windows have an alternative File manager with Miller Columns called OneCommander, though it is quite sluggish compared to Finder.

I find the bread crumb in the navigation bar of the Windown File Explorer does 90% of the work the columns did. Its advantage is that it takes a lot less screen real-estate, can show more levels at once, which in turn allows navigating further up faster. Its only downside is that to go up and then down takes two clicks instead of one. OTOH, with columns, you an onyl do this if you go up only one level or two, given that the number of visible columns is much more limited than the bread crumbs.

Overall, I think the bread crumbs is a win, especially given the balance between real estate vs frequency of use.

I agree. I thought I'd miss column view when I switched from Mac to Linux, but I'm ok with the breadcrumbs.

Alt+Up in Windows Explorer navigates to the parent directory. And Alt+L/R does browser-style forward/back. These combined with typing the file name to select it makes it pretty easy for me to navigate. One nit I do have is that when you first go into a directory the selection is a bit funky; nothing is selected by default so enter doesn't do anything, but if you press Down it selects the second item, so if you need to go to the first item (pretty common in practice) you have to do this awkward down-up-enter to get there.

Edit: Reading comprehension is hard.

Try pressing Space instead of Down.

Neat! Thanks for the tip.

This might be as useful as when I (accidentally) discovered that Ctrl+W closes Explorer windows. It even works on Windows 98!

Other shortcuts that changed the way I use Windows:

Alt+Space (open window management context menu)

Shift+F10 (right-click using the keyword)

Ctrl+Shift+Escape (launch task manager)

Windows+E (open Explorer window)

Windows+X (open context menu of random useful things)

Ctrl+L (select address bar)

Home (go to start of line of text)

End (go to end of line of text)

Ctrl+{direction} (move by one word)

Windows+{number} (focus a process from your taskbar)

And some useful things in the Run menu (Windows+R):

sysdm.cpl (System Properties)

inetcpl.cpl (Internet Properties)

%APPDATA% (goes to C:\Users\%USERNAME%\AppData\Roaming)

>> I can fly through my folder hierarchy quickly with just directional keys

Which is ironic, since the Mac interface is so anti-keyboard.

Miller Columns are one of the biggest reasons I don't like Finder.

What? The consistency of keyboard shortcuts across all applications, including those not developed by Apple, is one of the reasons I love OS X...

Not to mention how the Keyboard preference pane allows one to assign custom keyboard shortcuts to any menu item of any application, even when the app’s dev never included or intended such functionality. As long as the app hooks the native menubar, it just works.

Combined that with enabling tab-highlighting of any onscreen control and I’m not sure how macOS lags behind in keyboard control. You can’t quite do system wide vim bindings or anything crazy like that (though hacking around with Hammerspoon would get you close), but that’s going to be difficult with any setup short of a bespoke Linux desktop with a customized WM and very selective set of applications.

The consistency is great, but number of actions you can perform just from the keyboard is smaller.

I use the Alt key to access menu items all the time in Windows. As far as I know, this isn't possible in most Mac applications. To get to a menu item, you have to use the mouse. Sure, some menu items also have Command shortcuts, but not all of them.

I do like the general theme of Ctrl being used for system-wide shortcuts, while Cmd is (mostly) reserved for applications. I just wish menu items had a letter underlined...

It’s not on by default, but you can turn on keyboard menu accessibility.

Thanks. TIL about [CTRL]+[F2]. The menu items don't have the little underlined letter to indicate the key, but this is pretty close. First letter does it.

Just have to select, then arrow down to display, before continuing.

You have to be kidding. Page up/down don’t even work consistently, and I can’t remember the last Mac app I used that had acceptable keyboard navigation.

I think that for this layout to be truly useful the underlying tree has to have particular structure (not too deep an very wide), things like music library or Smalltalk Browser matches this well (mostly because the depth is inherently fixed), while arbitrary tree structures (think Unix filesystem) does not. Another case where this kind of view is very useful is when the user only has vague idea where in the immense hiarachy the thing that she searches for actually is (think online component catalog, with Farnell's eshop having quite similar but by default hidden navigation tool)

I could have sworn Norton Commander used a similar layout, but it looks like it just had columns, as well as a left-right split for viewing two directories at once.

(One of my earlier memories is my grandmother teaching me how to launch a game on their computer; I can still remember her saying "н ц".)

AFAIK nc had multiple layouts

What game was it?

Tetris, I believe; I'm not sure which version. This would have been late 80s or early 90s.

I never use this view in Finder. I get the idea, to show multiple levels of the hierarchy at once, but I always liked the "collapsable list" view more. The horizontal space is better used as a table for further file attributes (filesize, last modified, etc.).

I could imagine you could have the best of both worlds:

  | |     |                         |
  | |     |                         |
  | |     |                         |
  |A|  B  |           C             |
  | |     |                         |
  | |     |                         |
  | |     |                         |
Where B is the previous level of the tree, C is the detailed table view of the current level, and A is a compressed representation of all the previous levels (you could e.g. click on it to replace B with B's parent, and C would get replaced with details of B).

Did anyone try something like this out?

That seems a bit similar to the Ranger[1] given as an example in the article. There's also ranger.el[2] for Emacs. By default in ranger.el (and I assume Ranger too, but I haven't used it), B is the current level, A is the previous level and C is a preview of whatever you have selected in B. You can hide the preview (so the current level would be C) and add more previous levels. There's no compressed view of all previous levels though.

[1]: https://en.wikipedia.org/wiki/Ranger_(file_manager)

[2]: https://github.com/ralesi/ranger.el

https://en.wikipedia.org/wiki/Hyperbolic_tree has some of the same strengths as this idea. Perhaps it hasn't been pursued because it was under patent the whole time when desktop UIs were still evolving.

Another reason to hate software patents.

Not OP, but this is basically the same dream layout I've sketched for myself!

Unfortunately it would give me the most day-to-day benefit on OSX, which is probably the place I'm least likely to see it implemented...

IIRC, Spotify used to do something like this, at least in the desktop app?

I've had a few co-workers who preferred this view. And without exception, they came from a Windows background, preferring some kind of indication where in the file system they are. Like the old Explorer tree or at least the breadcrumb view of its sad contemporary version. (Sometimes showing them them "path bar" helps, but not always.)

Interesting. I haven't used Windows for about a decade and I switched to exclusively using this view in the last couple of years. I just find it much quicker to use with my keyboard etc as I don't want to be using my trackpad to navigate.

I agree completely, this is the "oh shit I clicked the wrong button" -view in finder.

Its even worse in save dialogs. Sometimes using this abomination is the only way to go "up" in the filesystem.

Sometimes using this abomination is the only way to go "up" in the filesystem.

Yes! So annoying that finder doesn't just have button for "go up in hierarchy" at least somewhere on every screen (whether it's regular Finder or a save/open dialog). It's totally baffling to me. We can find room for the "Tag file" feature nobody uses, but a "go up in hierarchy" button is apparently too much to ask for.

I know that some people still prefer a button, but cmd-up on your keyboard will go up a level in both Finder and in file dialogs.

Thanks, I've only been using macs for ten years or so and never knew :-). Discoverability of features is a thing. Having something that is hard to discover is almost the same as not having the feature at all.

There is a menu option Go → Enclosing Folder, which clearly lists the keyboard shortcut.

In general, responsibly designed Mac programs should have a menu option for every available command. This is highly discoverable (assuming users know to look in the menus, and the menus aren’t so long or deeply nested that the commands are buried).

Unfortunately in an era of web apps, mobile devices, hacky cross-platform software, etc., fewer and fewer users properly learn the basic Mac platform UI conventions. This particular convention (commands available as menu options with keyboard shortcuts listed next to them) has been largely unchanged for >30 years.

I’m not sure about the precise origin of the shortcut for opening the enclosing folder, but it dates from at least the beginning of OS X.

One Finder shortcut which is less discoverable which you might also find useful is ⌘↓ (command-down) for opening a selected item.

Took me a loooong time to realize Visual Studio can pop out source windows, so I can put them on another screen, for instance.

My default VS layout is to have two full screens: editor on the left screen where I often have a source file and its tests open side by side and on the right screen - the source tree, the test runner, the output window, team explorer etc.

Wait... how?

If you have 2012 or newer, just grab the item tab and pull it to another screen.[1] You can also rearrange the tabs within a window to have for example, several files open side by side.

[1] https://docs.microsoft.com/en-us/visualstudio/ide/customizin...

The SO Apple site has some suggestions. Sadly some of the 'app buttons' are outdated. I'm interested making an updated one and throwing it on the App Store. https://apple.stackexchange.com/questions/25813/add-an-up-bu...

There's a dropdown menu at the top-center of every file browser dialog that lets you jump to any parent level in the hierarchy, no?

Yes, but you have to cmd-click or right-click it.

No? You seem to be talking about title bar behavior. There is a normal dropdown menu right in the top center of the standard 'Save' and 'Open' dialogs.

It only really makes sense for trees that have low depth.

This was my selected finder view for many years and I found it visually busy, cramped, and kept way too much information on the screen than I needed.

Finder is just awful. Macs are only good for their screens and the cli.

The movement of most music players, led by iTunes, away from Miller columns as the default navigation paradigm has sucked for me. For me, nothing works as well as three Miller columns: Genre, Artist, Album.

It's still there. Click "Songs" under Library in the sidebar. That causes a "Column Browser" menu to appear in the "View" menu. Select "Show Column Browser" from that. It's a toggle.

That menu also lets you choose which columns to enable. The choices are Genres, Artists, Albums, Composers, and Groupings.

Thanks a lot. I had been relying on the search feature but it hangs often on a 26k songs library.

Agreed. Losing that and coverflow leaves iTunes with just the annoyances.

MusicBee on Windows works better than most everything else, and keeps the three column view as one of the many options. Haven't found anything I can live with on the Mac yet.

Never saw the point in Finder windows though, preferring the default, or two linked folders in one OS window like DirectoryOpus (Amiga and eventually Windows) and most ftp clients used to do it. That's better when needing source/dest, or diffing two folders etc.

OneCommander makes for a nice combination of Miller columns and [orthodox file management](https://en.wikipedia.org/wiki/File_manager#Orthodox_file_man...) (the two side-by-side directories, i.e. what DOpus uses as its layout). Quite a few GUI (S)FTP clients still use the orthodox layout as well.

Is genre a tag in that system? I have an almost impossible time of putting music I listen to into genres, and much of that music is multi-genre.

I'd like to rewrite a cross-platform, mobile-friendly version of iTunes 10, as a side project. Right now I'm unemployed. Please contact me if you'd be interested in emailing me once a week to remind me to make progress on it.

What language / framework / technology stack would you use to make this?

Could anyone recommend an open-source software for cataloging generic objects that allows setting up these columns of categorization dynamically? I've been looking for such a software, preferably web-based, that could be used to catalog and categorize anything with some configuration.

Edit: Not just for file-browsing, but for adding any kind of list.

You reminded me of the file manager Ranger, which is indeed for file browsing, though files and folders are also one possible model/paradigm for cataloging and categorizing just about anything. (In fact in many ways, computers and especially unices reward you for cataloging information using this paradigm)


came here looking for ranger and wasn't disappointed. i love it!

The only thing that comes to mind is Nelson's ZigZag, but to call it practical and usable in its current state (gzz), is already a stretch.


Look for gzz

It's a super interesting structure, but I don't believe there is a friendly version of it out there somewhere.

Would tellico[0] ("a collection manager for KDE") work for you?

[0] http://tellico-project.org/

You could model your data as a filesystem with FUSE and then use any file browser.

I find it amazing that there are no Linux GUI file browsers listed that support the column view still.

Agreed. I just commented that I remembered seeing Miller columns once, years and years ago on someone's Mac's Finder and really liked the idea. Now I'm really annoyed to read that Dolphin had it but dropped it.

This drives me nuts. Why is it so difficult to maintain?

Looks like the layout used by Ranger ( https://en.m.wikipedia.org/wiki/Ranger_(file_manager) )

Ranger does this very well. https://github.com/ranger/ranger. Perhaps midnight commander (mc) has a similar mode.

Yep, love ranger. And if you use the right terminal emulator, there's a flag that will enable honest-to-god image previews in your console!

I personally never liked these. I’m not sure why, but I find them awkward and clunky for some reason.

Thanks. Didn't know this UX came from Smalltalk, I always assumed it was kinda-exclusive to macOS' Finder/iTunes and heavily patented by Apple.

The live demo of Smalltalk-78 that was posted here a while ago shows it off quite nicely.


I fumbled and clicked around for a while, but I still don't have the slightest idea of what I'm looking at and how to use it. Except for the obvious "an ancient operating system emulated in Javascript."

Click-and-hold the right mouse button on the desktop, and select 'Open a Browser' from the lovely ornate dropdown menu. You'll see a miller column browser at the top of the window.

I came across it the other day in a vid o form 1990 about Lotus Inprov rubbing on NextSTEP. The Wikipedia page mentions it was used by Next, but I also find it interesting that I saw it there just a few days ago :)

I remember I saw this once, years and years ago on someone's Mac's Finder and really liked the idea. Now I'm really annoyed to read that Dolphin had it but dropped it.

Every smart phone uses this interface but presents it one column at a time. It's a powerful and beautiful design.

I love these. I've always thought a textual filter at the top of each column would solve the scrolling issue.

You either hate it or love it. (personally, my default view in OSX Finder)

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact