Posted by: 2stepsback | October 12, 2007

The tile style for GUIs – SCFS

IRC is probably the best communication tool for collaborative open source development. And free/libre open source software is, IMO, the best tool to get a truly free market in the software industry.
Therefore, so as not to prevent (or allow anyone to prevent) any free software or open source project from utilizing the following concept, I hereby release the following idea, called Sideward Content Flow over Scrolling or “SCFS”, as free, as in freedom, for everyone to use as they wish. No money, no fees, no contracts, no legal theories. “Patent-left”, “Intellectual Property Left” or “IPR-Left”
This also qualifies as prior art if no one else has thought up this idea, until right now, which is Friday, October 12, 2007 at 15:36:26 (UTC)

Back to IRC chat clients as they are the best example to illustrate the idea :
The IRC user-interface was designed when monitors had near-square aspect ratios. Nowadays, that is not the case.
You get monitors with aspect ratios like 2:1 – 2 wide, 1 high.
IRC clients, as well as all programs whose GUIs have scrolling content, should make good use of these developments in hardware.
How? Let’s see –
Typically, you need to scroll up and down to see pages of text, of the just-preceding conversation or content. In IRC clients, tabs are used to handle multiple channels. But, think of it carefully, the tabs are as good as using another instance of the IRC client program. So, what is the real usability advantage? Not much.
Enter 2:1 screens.
Now you can have two tabs open side-by-side, and so, you can continuously see both channels. That is new. That is good. If you adjust the widths carefully and tile the windows for each channel, you get a nice 3+ channel view on your single widescreen monitor. If text on your channel(s) does not stretch all over the line length, you can see 2 or more channels even on a normal monitor (not widescreen).

But the scrolling problem does not get solved. Think a little. Solved it? No?
Fine, let us see:
Assume that you only ever visit one channel – ##linux. Your entire life’s necessities are fulfilled by that one channel 😉
Then, what you can do is modify the GUI widget code of the IRC client so as to always show N (= 2,3,4,…) pages side-by-side, and have the text of the single channel you are on be divided across the N pages.
Initially, till you been on the channel for a while, only the leftmost page will have text. Then the oldest text will start flowing into the second-from-left page. Then when you’ve been around for about 10 minutes, the very initial text flows onto the third page from the left. That which was on the first now moves to the second. And fresh text appears at the bottom of the leftmost page.
A substantial jump in usability simply by addition of another dimension.
Just like in real life 😉 .
If you want to be on two channels, you can either use the standard tabbed-dialog system and make each channel span all the four pages, effectively enabling you to see only one channel at a time.
Or, you could choose a 2×2 layout – 2 tabs per channel, 2 channels at a time.
Or any custom layout you like – for example, #gnu moves pretty damn slow. And #ubuntu can scroll at 2-5 lines per second. So #ubuntu should get 3 pages and #gnu just 1.
And so on.

“And so on” is very interesting.

What about a rectangular 2×2 layout ( top view / plan / overview / etc. ) each with multiple tabs on a 4x size monitor?
How about a 1:2 aspect ratio monitor ( 1w : 2h ) with horizontal tiling?
How about using a projector instead of a monitor?
And what about 4096×4096 monitors? How many screens?
For ordinary folks, multiple monitors can do the same trick.
I, for one, have trouble looking across just one humble 17 inch monitor. So, thank you.

The speed of GUI rendering should not be a problem I guess.
RAM is cheap, video RAM too is inexpensive.
And what do you do of the second ( and 3rd and 4th ) core?

Extending the same “content flow” principle to other applications with scrolling content, you can make editor programs increase tabs automatically as text increases. But, don’t blame me if the code folding of one function carries over to another page and confuses you. It is meant to an improvement in usability, you know ;).
1w : 2h monitors seem to be pretty handy for use with programming editors or IDEs.
Actually, at the costs that some IDEs sell at, you should really buy a monitor depending on what IDE you choose, not the other way around, as it was a few years ago.
Or maybe use open source IDEs and buy another monitor 😉

Just to reiterate, I call this idea as Sideward Content Flow over Scrolling or “SCFS”.



%d bloggers like this: