created mirror
This commit is contained in:
26
Documentation/misc/ADDRESSING
Normal file
26
Documentation/misc/ADDRESSING
Normal 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.
|
||||
46
Documentation/misc/Curseling
Normal file
46
Documentation/misc/Curseling
Normal 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.
|
||||
37
Documentation/misc/RENDERING
Normal file
37
Documentation/misc/RENDERING
Normal 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.
|
||||
|
||||
8
Documentation/misc/TORESOLVE
Normal file
8
Documentation/misc/TORESOLVE
Normal 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
20
Documentation/misc/billow
Normal 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]
|
||||
169
Documentation/misc/byrokratiadoku
Normal file
169
Documentation/misc/byrokratiadoku
Normal 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
80
Documentation/misc/keys
Normal 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
|
||||
250
Documentation/misc/textcloud
Normal file
250
Documentation/misc/textcloud
Normal 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?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user