created mirror

This commit is contained in:
whatever
2026-09-14 20:19:29 -04:00
commit 6764738d92
600 changed files with 87187 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
A XML pointer-like scheme for addressing elements in a ZZ space.
Neighbours of a cell
(cell).n(d.2,+).n(d.1,-)
Headcell of a cell
(cell).negcell(d.2).poscell(d.1)
Searching for an intersection of two ranks (the cell itself won't count
so you can repeat it and get all crossings)
(cell).intersect(d.2,+, (cell), d.1,-)
this is useful e.g. for searching clones:
(cell).intersect(d.1,+, Color, d.clone, +).n(d.2,+)
to find the next cell giving the color through a clone.
XXX textual searching?
There should be a way to detect changes not only to cells but also
expressions like this. Implementing settings would suddenly be a lot
easier.

View File

@@ -0,0 +1,46 @@
How to use the cursel feature (as of 00-08-04)
"Cursel" means "cursor selection." There is now a mode where you can choose
between different cursors for a view. Here are the instructions as to how.
In normal mode:
Alt-C -- switches to cursel mode. I like to reconfigure this to spacebar --
much faster. Note that the view's background now shows the color of
its current cursor -- useful when there are multiple cursors on the
same cell.
Esc -- now re-attaches the standard cursors to the views before it moves
them to the home cell. When you're lost, hit Esc.
In cursel mode:
Left/Right arrow (or sf or jl): choose between cursors on the system list.
Up/Down arrow (or ec or i,): choose between cursors on the same cell as the
current cursor.
Tab or Spacebar or Esc: Select this cursor, quit cursel mode.
To get four additional cursors:
With the left view, go to "CreateCursors" on the Action list. Hit Enter.
Note that you can apply this multiple times, but it'll give you multiple
cursors of the same color.
To bind the two views together:
Go into cursel mode. Hit Left, Right, s, f, j, or l until both views have the
same background (and thus, cursor) color. Quit cursel mode.
To bind a view to a "magic cursor:"
Go to the first entry on the FlobRaster list. Make sure at least one of your
views is shows this raster. Go into cursel mode. Hit Up/Down (or e/c if you
use the left view) until the background of your view gets white: this means you
have attached the view to a cursor without an associated color. Raster cursors
don't have associated colors (at the time I'm writing this). Now quit cursel
mode. Move the cursor up and down and watch what happens. (Easiest way to get
back to normal from here is to hit Esc.)
To show very clearly how the cursing system in ZZ works:
Create the four additional cursors (see above). Edit the dimension list so that
d.cursor is on it. Cursel the golden cursor, go to the FlobRaster cell on the
system list, and go to the rightmost cell. Now cursel the violet cursor and go
to the FlobRaster cell. Make sure at least one of your views is set to the
standard vanishing raster (whose cell is between your two cursors now). Rotate
the view so that d.1 is on the X- and d.cursor on the Y-axis. Now play around
with the violet and the golden cursor, and show how the connections on d.cursor
change.

View File

@@ -0,0 +1,37 @@
Requirements for rendering of ZZ spaces.
$Id: RENDERING,v 1.1 2000/05/16 14:57:58 tjl Exp $
This document is intended to start the design of the final ZZCanvas-style
thing.
Basics:
- placing arbitrary (extensible) graphics objects on the canvas
- either depth or reverse order to simplify rastering code: cells
rastered first should be on top, not bottom and breadth-first bottom-up
is annoyingly difficult
- getting some identifier of an object at given coordinates for e.g.
mouse clicks. IMPORTANT: could this be done by rerendering to avoid
memorizing too much? OpenGL / FreeWRL-style instead of widget-style?
TRADEOFF:
normal render = const1 * N, click = const2 * N
widget-style: const1 larger, const2 maybe smaller.
opengl-style: const1 smaller, const2 maybe larger
- for java.awt.Graphics, widget-style is somewhat necessary anyway
to get depth. However, memory consumption might go down.
- the BIG advantage of widget-style comes when there's lots of stuff
and everything does not move or change: then we can use the widget
objects as caches of stuff of interest from the structure, and set
the necessary tripwires (ZZObs) to change those objects if the structure
changes. For the textcloud stuff where most items stay still much
of the time, this would be advantageous.
More interesting:
- access by other components to the raster: getting various mouse click
places
- rendering XOR-cursors for text when moving the cursor, to show where
an insert would occur
- same when dragging another piece of text.

View File

@@ -0,0 +1,8 @@
Questions to resolve with Ted
- master dimension list
- should we have a mechanism in the views to step through
tree structures so that left -> right takes us back where we were?
In essence, storing in the structure the information about where
this client was (d.prevcursor)?

20
Documentation/misc/billow Normal file
View File

@@ -0,0 +1,20 @@
Date: Mon, 22 Nov 1999 02:12:38 +0900
From: Ted Nelson <ted@xanadu.net>
To: "Tuomas J. Lukka" <lukka@iki.fi>
Cc: ted@xanadu.net, marlene@xanadu.net, xanni@xanadu.net, eharter@din.or.jp
Subject: :zx,virt: "Mouse control for billowing (Was: Re2: I take it you mean... Re: Billowing
I suggest:
up and down move the position of the billow,
right and left affect its size,
right and left with right button down enlarges and reduces
the font sizes in the billow,
while left button at any time marks the text, as usual.
Motto: Key assignments are the most changeable aspects--
they hardly affect the virtuality. Mapping of function that
seems consistent with usual functions is a constraint.
Best, Ted
.... [message being replied to clipped by Tjl]

View File

@@ -0,0 +1,169 @@
\documentclass[a4paper,12pt]{artikel3}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[latin1]{inputenc}
\usepackage[finnish]{babel}
\usepackage{times}
%\def\zigzag{ZigZag}
%\def\zigzag{{\fontfamily{yinit}\fontencoding{U}\fontsize{5}{7pt}\selectfont Z}
%{\huge i}{\fontfamily{yinit}\fontencoding{U}\fontsize{5}{7pt}\selectfont G}
%{\huge}{\fontfamily{cmr}\fontencoding{OMS}\fontsize{30}{30pt}\selectfont Z}
%{\large$\displaystyle \alpha$\Huge\bf\selectfont$\gamma$}}
%\def\gzigzag{{\it \Huge G}\zigzag}
\def\zigzag{ZigZag}
\def\gzigzag{G\zigzag}
\def\url#1{\texttt{#1}}
\pagestyle{empty}
\begin{document}
{\hfill{}{\Huge Projektisuunnitelma}\hfill{}}
\vspace{1.2cm}
\gzigzag"-projekti tutkii ja soveltaa käytäntöön nykyistä edistyneempiä
tiedonhallintamenetelmiä käyttäen pohjana Ted Nelsonin \zigzag"- ja
Xanadu"-malleja. Lähtökohtana on, että nykyiset
tiedonhallintamenetelmät ovat riittämättömiä vastaamaan tulevaisuuden
haasteisiin. Ryhmän olennaisia tutkimusalueita ovat käyttöliittymät ja
informaation varastointi hyperrakenteisiin, sekä näiden tutkimusten
tulosten soveltaminen käytäntöön.
Suurten tietomäärien hallinta on nykyjärjestelmillä hyvin hankalaa,
koska tiedostojärjestelmässä ainut tiedostojen välinen tieto on
hakemistorakenne. Hakemistorakenne on hierarkia, eikä siksi sovellu
kuin yksinkertaiseen kategorioihin jakamiseen. HTML:ssä hakemistorakenteen
puutteita on korjattu linkeillä, jotka on varastoitu tiedoston sisälle.
Nämä linkit ovat yksisuuntaisia ja rikkoutuvat helposti.
Tietokannat ovat paljon tiedostojärjestelmiä edistyneempi tapa hallita
tietoa. Ne ovat kuitenkin kovin jäykkiä järjestelmiä: tietokanta
suunnitellaan yleensä yksittäisen sovelluksen käyttöön, eikä sovellu
yleisen tiedon varastointiin; tietokantajärjestelmät eivät tarjoa sen
enempää mahdollisuuksia tietokantojen väliseen linkitykseen kuin
tiedostojärjestelmät; ja tietokantoihin on harvoin pääsyä ulkopuolelta
--- usein ainoastaan WWW-käyttöliittymä on saatavilla. Tietokantojen
merkittävimmät edut tiedostojärjestelmiin nähden ovat mahdollisuudet
tiedon tehokkaaseen hakuun ja tietojen välisten suhteiden tallennukseen,
mutta ne eivät ole tarpeeksi joustavia yleiseen tiedonhallintaan.
Projektin päätavoitteena on luoda \gzigzag"-ohjelmisto, jonka
päälle voidaan helposti rakentaa tiedon esitys"-, haku"- ja
käyttöominaisuuksiltaan nykyistä parempia ohjelmia. Ohjelmiston pohjana
on \zigzag"-rakenne, joka koostuu soluista ja eri ulottuvuuksia pitkin
tehdyistä kytkennöistä. Rakenteessa tieto on soluissa, joista
kukin sisältää paljon pienemmän osan tiedosta kuin nykyiset tiedostot;
yksi solu sisältää suunnilleen saman verran tietoa kuin
taulukkolaskennan solu.
%Toisin kuin taulukkolaskennassa, kyseessä ei ole kaksiulotteinen soluhila
%vaan moniulotteinen soluavaruus, jossa sama informaatio voi olla kytkettynä
%eri dokumentteihin eri ulottuvuuksia pitkin.
Toisin kuin taulukkolaskennassa, solut on kytketty toisiinsa moniulotteisessa,
joustavassa rakenteessa, jossa jokainen solu voi olla kytkettynä mihin tahansa
soluihin. Rakenteen ulottuvuuksilla voi olla eri merkityksiä,
kuten esimerkiksi ''pöytäkirjan 3141S sisältö'', ''viittaus'',
''tarkennus asiasta kiinnostuneille'', tai ''hakemistorakenne''.
Ulottuvuuksilla ei myöskään ole samanlaisia rajoituksia kuin reaalimaailmassa:
kuljettaessa ensin ylös ja sitten oikealle voidaan päätyä eri paikkaan kuin
kuljettaessa ensin oikealle ja sitten ylös.
Kytkentöjen kaksisuuntaisuus on eräs \zigzag"-rakenteen tärkeimmistä
ominaisuuksista. WWW:ssä, jossa on käytössä yksisuuntaiset linkit, ei ole
mahdollista esimerkiksi lisätä omia reunahuomautuksia sivuihin, tai selata
niitä sivuja, jotka viittaavat tai lainaavat jonkin kappaleen dokumentista.
\zigzag"-järjestelmässä nämä asiat ovat helppoja, ja oheisinformaation
mahdollistaman suodatuksen avulla vältetään myös asian hukkuminen erilaisten
reunahuomautusten ja tarkennusten viidakkoon.
\gzigzag"-ohjelmistoa kehitettäessä on tarkoitus tutkia erilaisten visuaalisten
menetelmien etuja, kun niitä käytetään koko järjestelmän laajuisesti.
Ryhmä pyrkii parantamaan sovellusten käyttöliittymiä jättämällä pois
perinteisen ''ikkunat, valikot ja painonapit'' "-mallin: tieto on
esitettävä kontekstissaan, ei pilkottuna laatikoihin, joilla ei ole
minkäänlaisia keskinäisiä yhteyksiä. Menetelmistä ehkä tärkein onkin
Focus+Context, jonka pääideana on tuoda käyttäjää kullakin
ajanhetkellä kiinnostava tieto (Focus) mahdollsimman korostetusti
esille, ja siihen liittyvät asiat (Context) sen mukaan, miten tärkeitä
ne ovat fokuksen kannalta. Focus+Contextiin liittyy läheisesti
animaatio: kun käyttäjä liikkuu tietorakenteessa, on hyvin tärkeää
näyttää, miten uusi tieto liittyy edelliseen, ja paras tapa näyttää se
on animointi.
Ryhmä kirjoittaa tutkimusten tuloksista artikkeleja kansainvälisiin
konferensseihin ja julkaisuihin, mm. UIST, HICSS ja HT01. Tällä hetkellä on
tekeillä artikkelit Focus+Contextin soveltamisesta viestiketjuihin
ja suureen joukkoon tekstidokumentteja, sekä artikkeli, jossa esitellään
\zigzag"-malli yleisellä tasolla.
%\gzigzag"-ohjelmiston lisenssi on GNU Lesser General Public License,
%sama kuin Linuxin GNU GPL, paitsi että se antaa enemmän mahdollisuuksia
%\gzigzag in käyttöön kaupallisten järjestelmien pohjana. Tällä hetkellä
%toteutus on prototyyppiasteella, ja sen avulla voi kokeilla \zigzag"-rakenteen
%soveltuvuutta erilaisiin tehtäviin.
\gzigzag"-ohjelmiston kehitys on julkista, ja ohjelmistoa levitetään
menestyineiden Linuxin ja Apachen tavoin vapaalla lisenssillä (GNU LGPL). Tällä
hetkellä toteutus on prototyyppiasteella, ja on saatavissa verkosta
osoitteesta \url{http://www.gzigzag.org/}.
Vuoden 2001 loppuun on asetettu seuraavat tavoitteet:
\begin{itemize}
\item{Viesti-, kalenteri-, yms. järjestelmän prototyyppi (Sonera).}
\item{Uudenlaisen tekstinkäsittelyohjelman (Nile) prototyyppi. Nile eroaa
nykyisistä ohjelmista mm. siten, että tekstiä voidaan lainata
niin, että lainauksen vieressä näkyy dokumentti, josta lainaus
on. Dokumenttiin liittyvät asiat, kuten kuvat, kelluvat tekstin
vieressä, jolloin pitkäänkin tekstiin liittyvä kuva pysyy koko
ajan näkyvissä, vaikka tekstiä selaa eteenpäin. Versiointi takaa
sen, että vanhoja versioita pääsee aina lukemaan, ja
lainauslinkit (transkluusiot) sen, että intertekstuaaliset
yhteydet voidaan esittää käyttäjälle ymmärrettävällä tavalla.}
\end{itemize}
Vuoden 2002 loppuun mennessä on tarkoitus toteuttaa \gzigzag"-ohjelmisto
solukielillä (''bootstrap''). Tämä vaatii ensin tehtävään soveltuvien
solukielten kehittämisen, ja on eräs tärkeimmistä kehitystyön
vaiheista. Solukieliin siirtyminen mahdollistaa selkeän
\zigzag"-rakennetta käsittelevän ohjelmakoodin nopean kirjoittamisen,
ja siksi tämä vaihe on hyvin olennainen sekä tutkimustyön että
\gzigzag"-ohjelmiston kehityksen kannalta.
\newpage
Projektista vastaa FT Tuomas J. Lukka. Tehtävät on jaettu projektin
työntekijöille seuraavasti:
\begin{tabular}{ll}
Katariina Ervasti & Tutkimus humanistisista näkökohdista, dokumentointi ja
popularisointi. \\
Tuukka Hastrup & \zigzag in teoria. \\
Antti-Juhani Kaijanaho & Soluavaruuksien versionhallinta, tietoverkot,
solukielet ja \zigzag in teoria.\\
Tuomas Lukka & Projektin johto ja kokonaisuuden hallinta. \\
Tero Mäyränen & \zigzag in käyttö multimediasovelluksissa ja solukielet. \\
Vesa Parkkinen & \zigzag in hyödyntäminen kämmenmikroissa ja multimedia. \\
Rauli Ruohonen & Solukielet, \zigzag in teoria ja kämmenmikrot. \\
Kimmo Wideroos & Tietokoneavusteinen oppiminen ja prosessikirjoitus.\\
\end{tabular}
Ryhmä tekee yhteistyötä professori Ted Nelsonin (Keion yliopisto, Japani;
Xanadu, Inc.) ja saksalaisen opiskelijan Benjamin Fallensteinin
kanssa. Professori Nelson yhdessä tohtori Lukan kanssa kehittää
\zigzag"- ja Xanadu"-malleja eteenpäin, ja Fallenstein on mukana
\gzigzag"- ohjelmiston kehitystyössä.
\gzigzag ia ja sen perusajatuksia voidaan periaatteessa hyödyntää minkä tahansa
loppukäyttäjälle suunnatun ohjelmiston tuottamisessa, mutta erityisen hyvin
se soveltuu tietoverkoissa toimiviin järjestelmiin ja integroituihin
järjestelmiin.
Projektiin liittyviä riskejä ovat:
\begin{itemize}
\item{\zigzag in hyödyntämisen jääminen vähäiseksi, koska se eroaa niin paljon
nykyisistä järjestelmistä, että siihen siirtymisen kynnys voi olla
korkea.}
\item{Suljettujen tiedon tallennusmenetelmien yleistyminen voi luoda
esteitä \zigzag in yleistymiselle, sillä ne rajoittavat mahdollisuutta
tehdä \gzigzag ista yhteensopiva muiden järjestelmien kanssa.
Suljettuja tallennusmenetelmiä käyttävien ohjelmien tekemiä
tiedostoja ei voi lukea muilla ohjelmilla.}
\item{Toteutuksen vaikeus.}
\item{Avainhenkilöiden lähteminen projektista.}
\end{itemize}
\end{document}

80
Documentation/misc/keys Normal file
View File

@@ -0,0 +1,80 @@
Initial ZigZag key bindings
---------------------------
Enter Execute cell at cursor 0
Del Delete cell at cursor 1
0-9 Enter digit into numeric buffer
BS Backspace digit in numeric buffer
< Import rank from text editor in specified direction
> Export rank in specified direction to text editor
s, S Move cursor 0 negwards in X dimension
f, F Move cursor 0 poswards in X dimension
e, E Move cursor 0 negwards in Y dimension
c, C Move cursor 0 poswards in Y dimension
d Move cursor 0 negwards in Z dimension
D Move cursor 0 poswards in Z dimension
j, J, Left Make link or move cursor 1 negwards in X dimension
l, L, Right Make link or move cursor 1 poswards in X dimension
i, I, Up Make link or move cursor 1 negwards in Y dimension
",", Down Make link or move cursor 1 poswards in Y dimension
k, PgUp Make link or move cursor 1 negwards in Z dimension
K, PgDn Make link or move cursor 1 poswards in Z dimension
G Move cursor 0 to cell number
g, Home Move cursor 1 to cell number
Alt-s Hop cell at cursor 0 negwards in X dimension
Alt-f Hop cell at cursor 0 poswards in X dimension
Alt-e Hop cell at cursor 0 negwards in Y dimension
Alt-c Hop cell at cursor 0 poswards in Y dimension
Alt-j Hop cell at cursor 1 negwards in X dimension
Alt-l Hop cell at cursor 1 poswards in X dimension
Alt-i Hop cell at cursor 1 negwards in Y dimension
Alt-"," Hop cell at cursor 1 poswards in Y dimension
Control-D, Alt-d/D Edit cell at cursor 0
Control-K, Alt-k/K Edit cell at cursor 1
b Break link in specified direction
h Hop cell in specified direction
Control-L Redraw all windows
m Mark/unmark cell at cursor 0
M Mark/unmark cell at cursor 1
Alt-m Rotate selection groups
Alt-M Save selection group and start a new one
n New cell in specified direction and edit
N, Ins New cell in specified direction
Q Toggle cursor 0 cell view
q Toggle cursor 1 cell view
R Reset dimensions for cursor 0
r Reset dimensions for cursor 1
T Create clone of cell at cursor 0
t Create clone of cell at cursor 1
V Toggle cursor 0 refresh raster
v Toggle cursor 1 refresh raster
Control-V, Alt-v/V Display Zigzag version
Control-X Exit Zigzag
X Rotate cursor 0 X axis dimension
x Rotate cursor 1 X axis dimension
Y Rotate cursor 0 Y axis dimension
y Rotate cursor 1 Y axis dimension
Z Rotate cursor 0 Z axis dimension
z Rotate cursor 1 Z axis dimension
Alt-X Flip cursor 0 X axis dimension
Alt-x Flip cursor 1 X axis dimension
Alt-Y Flip cursor 0 Y axis dimension
Alt-y Flip cursor 1 Y axis dimension
Alt-Z Flip cursor 0 Z axis dimension
Alt-z Flip cursor 1 Z axis dimension

View File

@@ -0,0 +1,250 @@
Some parts of an email exchange between Tjl and Ted, edited.
(If these were real transclusions, you could jump from here to see the whole email
exchange. Wouldn't that be just so nice...)
----------------------------------------------------------------------------
>Any progress on the textitems stuff? That is one priority since
>that would represent an entirely different view of the ZZ structure
>(vstreams), with interesting connectivity and applications. And I want
>to use that to write my next pieces of ZZ documentation!
OKAY. Here's what I think you asked me for.
- keyboard commands to step around among flying items
- how to glue them together
- how to separate one item into two
IN ADDITION, I think we want
- how to make an item bigger or smaller
- - - - - - - - - -
Let's call this Item Cloud mode.
I ASSUME the items can be borderless, just flying items of text on a
shared background (so in principle two identical items could cover
one another textually).
NOTE THAT since my PC Java won't accept arrow keys, I have to
have the letter alternatives esfc ijl, ESFC IJL> and sometimes dD kK.
So when I say "arrow" I mean one of those.
I AM HOPING that Java can receive keystrokes-up-and-down (raw).
The following are keyboard suggestions to try. They should all be
reconfigurable. The trouble, of course, is making them reconfigurable
as sequences rather than as individual strokes.
SELECTING A RIGHT-HAND ITEM:
- Select by mouse
OR (once one item is selected)
- use ijl; arrow keys to select among them. I suggest that up and down
should refer to items within epsilon vertically of the original item,
and the same horizontally-- in other words, when using arrow keys,
stay roughly near the one you're currently near. This we'll have to
fiddle with parametrically. (It's also possible to select the next item
within unseen vertical and horizontal channels-- an alt. approach.)
OR
- use the space bar to select next item IN ORDER OF CREATION.
SELECTING A LEFT-HAND ITEM:
- Select by mouse
OR
- use esfc keys to select among items.
TO MOVE AN ITEM
- ctrl-esfc or ctrl-ijl,
TO CEMENT LEFT AND RIGHT ITEMS
- capital S or E appends the left to the right
- capital F or C prepends to left to the right
- capital I or J appends the right to the left
- capital L or < prepends the right to the left
(Note that these are like the connection functions in Perl ZZ.)
TO CUT
I suggest space-!-space.
Or \. (We'd go into a Special Mode if you actually want the character--
NOT \\ for most people.
Ctrl-enter would be great, if we could do it in raw mode.
TO ENLARGE the right-hand-item a little (its typeface)
+
TO SHRINK the right-hand item a little
-
----------------------------------------------------------------------------
>> TO MOVE AN ITEM
>> - ctrl-esfc or ctrl-ijl,
>
>And with mouse? For moving things around, the mouse is pretty good.
Oh, of course. Sorry I forgot to mention.
>Also, how to use the mouse to select - mouses have up to 3 buttons
>and use of shift/ctrl at the same time.
Right. Sorry.
1. As you said, click and type. I presume you're typing on a big 2D
space, and that Items aren't distinct till you end one?
2. Ah, we haven't talked about how an item ends... I guess with same
"sever" mechanism, no?)
3. Move by left-mouse (to seize).
The question is-- when should the mouse seize an item, when should
the mouse start a new item?
-- especially since it may not be exactly clear whether we are on top of
an item, since there are no borders
-- and as the area gets crowded, you want to be able to start an item in
the middle of another item.
^Õ ^Õ ^Õ ^Õ ^Õ ^Õ ^Õ ^Õ ^Õ ^Õ ^Õ
But why not use the other mouse buttons for Billowing?
That could combine it nicely.
----------------------------------------------------------------------------
>> SELECTING A LEFT-HAND ITEM:
>> - Select by mouse
>> OR
>> - use esfc keys to select among items.
>
>So here you can't use the space? Or use ctrl-space or shift-space?
>It would be nice to have the same ops for both sides.
ZOWIE! SHIFT-SPACE! LOVE IT! That's perfect.
Never thought of spacebar with a control key. Or at least
not in the last five or ten years ...
----------------------------------------------------------------------------
>But how do I append one item on the right to another item on the right.
>Example: in the left cloud, I've typed a number of ideas I want to put
>into a text, and in the right cloud, I'm working on the actual text.
>So most operations would only touch the right-hand cloud.
and also
>> SELECTING A LEFT-HAND ITEM:
>> - Select by mouse
>> OR
>> - use esfc keys to select among items.
>
>So here you can't use the space? Or use ctrl-space or shift-space?
>It would be nice to have the same ops for both sides.
Here we have great examples of WOOOOPS communication. I didn't
notice that you mentioned left and right clouds. I thought we were dealing
with only one cloud.
So anyhow shift-space would be the most consistent.
----------------------------------------------------------------------------
>mouses have up to 3 buttons
>and use of shift/ctrl at the same time.
I would say that since 90% of the mice in the world have 2 buttons--
- Mac with 1 button is what, 5%?
- Linunix is even fewer, I think
- W98 and W2000, with 3-button mice are rare
W95 is still way the majority-- and they are an important market.
Thus we DESIGN for 2-button mouse, leave the middle one explicitly
to be programmable.
In other words, the third button can only be for shortcuts
and extra options.
----------------------------------------------------------------------------
>> TO CEMENT LEFT AND RIGHT ITEMS
>> - capital S or E appends the left to the right
>> - capital F or C prepends to left to the right
>> - capital I or J appends the right to the left
>> - capital L or < prepends the right to the left
>> (Note that these are like the connection functions in Perl ZZ.)
>
>But how do I append one item on the right to another item on the right.
>Example: in the left cloud, I've typed a number of ideas I want to put
>into a text, and in the right cloud, I'm working on the actual text.
>So most operations would only touch the right-hand cloud.
Since when I wrote my part of the above I didn't realize you were
talking about left and right CLOUDS, I assumed that each hand
would be wandering in the one and only cloud. This is more
exciting.
(There's a poem in English that begins, "I wandered lonely as a cloud..."
But not otherwise relevant.)
Now how to choose?
Heh heh ...
Okay, Tuomas, it's time for MORE CURSORS!
This is where we need the operations
- cursor fork
(Specifying which hand, assuming you're using two.)
This creates a new cursor under the chosen hand, pointing at the
same place, switches to it.
- next-cursor-step
(Specifying which hand, assuming you're using two.)
This switches under the chosen hand to the next cursor in the cycle.
- cursor kill
(Specifying which hand, assuming you're using two.)
This annihilates the cursor under the chosen hand,
prob. goes *back* to previous cursor in the cycle.
For some wild reason I think qaz (right) QAZ (left) would be
the correct respective keys for these functions. They're in a row
and out of the way. So--
qQ - cursor fork
aA - next-cursor-step
zZ - cursor kill
So let's say you have two cursors. Left is in the left cloud,
right is in the right cloud. You want to start cementing items
on the right.
Do
q- makes a new cursor (and new color) on the right;
AA- switches the left hand to that cursor (since presumably
the list is left-right-new-(loop back to left)
aa- switches right hand back to right cursor
Now you can move and cement items as I suggested above.
When you want to go back to 2-cloud operation, you can
either kill the third cursor or switch from it.
ChrzT
----------------------------------------------------------------------------
u sez
>> 1. As you said, click and type. I presume you're typing on a big 2D
>> space, and that Items aren't distinct till you end one?
>
>Sorry, the last sentence again?
Sorry.
You're in mid-item. Item is on big virtual sheet of paper but began
somewhere other than at top of paper. Item becomes distinct
when you end it somehow, presumably beginning another item.
>> 2. Ah, we haven't talked about how an item ends... I guess with same
>> "sever" mechanism, no?)
>
>Escape?
Could do. In the ASCII charworld, backslash also good.
Anyway, if it's one character, it's easily reconfigured.
However, I'd also like an alphanumeric sequence, ideally
(just my preference),
sp-!-sp
and that means some deeper recognizer, eh?