[ge-talk] Components concept (and few others)

Szymon Witamborski santamon at gmail.com
Fri Sep 7 07:04:25 EDT 2007


Hi everyone!

I've been observing what's going on this list (and also few others 
Haiku-related)

I would like to present you way I would like to interact with computers. 
It's not that original that you would suspect. It's been inspired by my 
frustration as a daily Linux/Windows/BeOS user but also by a lot of 
stuff I've read on the internet (I've just scanned whole GE archive). 
Some of other ideas are grabbed from existing Oses.

I'm not English native speaker, so my English is not perfect...

The first thing after power on and logging into account the user see is 
(guess?) is desktop with icons (hehe I've said I won't be original :-P) 
and a dock (It can similar to OS X's dock but doesn't have to -- surely 
should show an icon and the name of something that's in it).

On desktop there are some of his favorites: the person (let's call her 
Marie) he like to chat with (actually there's an icon representing 
information that he gathered in computer about this person), he's 
favorite band (hmm, King Crimson?), an album from last trip to bush, and 
some obvious item's: drives and the mighty trash bin.

The „Marie” icon is showing her actual status via the icon itself. When 
he click on Marie he select her, when he double click on her new window 
appears with her profile. Also new icon instance is showed in the dock 
(in the „currently in use” area). But he noticed that she is back (via 
icon) so he would like to chat with her. He close the profile window so 
icon on the dock goes to „recently used” area. Let's use the right 
button! There's no difference where he click (on the desktop icon or 
icon in dock). What he see is contextual menu like this:
-View profile
-Chat via Jabber
-Show Jabber log
-New email
-Find emails from Marie
-Rename
-Move to Trash
-File properties
-(...)

Well, he choose to chat via Jabber. He also would like to do it every 
time he double click on her. So he goes to „File properties” and change 
the default action.

What about King Crimson? When he double click on it a window appears 
with all King Crimson music and video files found around disks mounted. 
Of course the icon appears in the dock. He can sort it via album or year 
(or first year, then album title) and he pushes the „play” button on 
that window. And music begin to play. To precise, this window is a play 
list.

In contextual menu would be probably: play, edit, convert, record on CD, 
print lyrics, find tabulature on internet, send via mail, etc.

Then Marie announce him that she has some rare Crimson's video from 
seventies. So he download it from her to one of his disks. The video 
automatically appears in the play list (it's from 1973 so it take place 
just after Larks' Tongues in Aspic album).

And some photos now. Again he double click. Now a window with thumbnails 
opens (I have to mention all the times? an icon appears in the dock, 
blabla). In the window he can choose to print, convert to other format, 
rotate, shrink, and so on (via toolbar). He can do this to all selected 
files. Or, if he want, the same he find in his beloved contextual menu.

He opened many windows, what now? Where's the window with Marie's 
conversation? He have several ways to find it:
1.Alt+Tab ;-P
2.Find an icon in dock and click on it (if he opened more windows with 
Marie (for example he started to write email) when he click on it an 
opened tasks will be listed in contextual menu)
3.Push „Super” key on keyboard (this never-used key between Ctrl and Alt 
– it's easy to forget if you touch type ;-) ), then all windows on this 
desktop scale (but as wire frames with name and icon in it on 
non-accelerated cards) to show all them without covering one another. 
Also mouse cursor disappears. The last used window is selected. A little 
mouse movement towards some of the other windows select them. Also arrow 
buttons on keyboard can be used. If he wants to move it to another 
desktop he can hold Shift key and then all desktops scales on display. 
(I've told you I won't be original) Now mouse cursor reappears so he can 
drag some windows to another desktop.
4.Pushing and holding Ctrl+Super hides for a moment all opened windows. 
  Then he find Marie on desktop and from contextual menu he will find 
the option „Chat via Jabber” witch will bring to front that window. When 
he release keys all other window will reappear but „Chat with Marie” 
will be on top and active.

Well that's probably all in non-technical point of view.
Some other minor idea:
BeOS' tabs are stylish but we should be able to join windows in PWM 
manner. Also application could use this feature for they interfaces to 
do this automatically, for example Firefox tabs could be substituted by 
this.

More technical point of view

I'm not a programmer, but I'll try to give some concepts:
1.Use components instead of applications.
component:
- would be something that plug in right place in right moment.
- would handle almost everything that Tracker does.
   * displaying contents for a folder (one component for displaying
     photos, other for displaying music)
   * showing their options in a contextual menu for certain file type.
- would handle file types in hierarchical tree manner. Examples:
   * components handling */* type would do most generic work: File
     properties, generic file lists, deleting and renaming file, binary
     view of data, on so on.
   * components handling audio/* for all audio types. This will override
     some of functionalities provided in generic components. For example
     „File properties” could be overridden to show some extra attributes
     components for certain file types for example audio/mpeg will
     actually know how to play that file type. Even copying could
     overridden to copy meta data from file to attributes when copying from
     non-BFS filesystem.
2.Components have to be reusable in other applications/components, not 
only Tracker. (Replicants?)
3.Use the filesystem as much as possible to interact with user. Includes 
a lot of queries (probably the best method to organize data). In the 
example given above I supposed that there's some jabber client running 
in background and changing state of „Marie” file in case of her 
availability on jabber network. The BeMail is great example.

I'm very subjective on this topic and I believe my ideas (or rather 
ideas that I have stolen) are perfect but I will try to give as 
objective as possible pros and cons.
Pros:
1.User is not aware of application he need. He will have a certain file 
and something that he can to with it. A geek standing right behind his 
back and saying „this app is for that and this for that” no more needed. 
There could be even a component showing for every file type something 
like „Do something else” in contextual menu helping user to find 
component that user need.
2.Very helpful for bazaar style development:
   - Ability to choose by distribution providers witch functionalities
     they want in their distribution. Not applications.
   - When a new component that do the same thing better than old one
     appears distribution provider can substitute the old one with new
     one without affecting other things.

Cons:
1.Probably commercial software companies won't be so happy to provide a 
bundle of components. They usually want to give an application with 
their trademark and name. Well, their trademark can be in every window's 
right upper corner of their components.
2.This will be great for newbies who don't know other Oses but someone 
who already know some other Os could ask „Ok, but does Haiku has 
OpenOffice?”. Our answer will be something like „No, but it has 
components that do the same”. The problem is about understanding. 
Everybody knows what is application. Maybe term „component” should be 
substituted with something more common like „modules”?
3.Programmers will need to fling aside their ego and aspiration of 
building the best „killerapp” around. They actually will need motivation 
of building the best component around that do _one_ thing and cooperate 
with others.

Well, that's all for today.
-- 
Szymon Witamborski


More information about the glasselevator-talk mailing list