here's my set of slightly flippant answers
> - How can I read a couple of html docs in Plan9 ?
install inferno and use the netscape 3 hybrid Charon
I bet you can't wait :)
Web browsing it's plan9's end user pitfall.
No browser, not even text only (unless you count downloading & stripping the html tags text only)
> - How can I find/search for a file in Plan9 ? the usual find /|grep xxx
> does not exist here, what is the equivalent ?
du I think is your best bet
it's better still to learn where everything is :)
luckily there aren't 5 different directories where programs hide (well there can be but...)
all the executables show themselves in /bin which is a union of the directories where executables live if you see what I mean. There's aren't that many, have a look through them all, you'll remember easily enough.
> - Why doesnt/Can rc have autocomplete and filename completion as in
> bash ? This has become so neccessary.
yes, well, you see plan9 is more mouse driven. eventually you'll probably end up with Acme as much your "shell" as anything, and you'll find auto complete is unneccessary.
But you're right, it is a nice feature of the bash shell but then there are soooo many goddam directories on a Linux/FreeBSD box and auto complete is Bash's way of trying to alleviate the pain. If you miss it too much I'm sure you could just write a shell script to monitor /dev/cons for tabs, and echo the stuff into /dev/cons.
Personally, I do prefer having the screen as free form is plan9's is. The shell is more than the commands you can type, it's where you can type them.
> - Why cant the left/right arrow keys+home+end keys move the cursor,
> it is really difficult to edit something by placing the cursor there
> with the mouse.
That's what I said and I still get the urge to say it out loud. They told me I'd get used to it and you know what, I haven't. I'd even settle for Ctrl-J. But when I'm sat at a different terminal I still end up saying "I wish I was using Acme".
> - Unless is it part of a grander plan (no pun intended), can we move
> the process interrupt key from Del to something else and have the
> conventional functionality of del back ?
It depends who's conventions.
> - Why arent there more applications and more developers interested
> in developing for plan9 ?
file name completion
> This is a lesson that could learned from the Win32's,
> if you want the OS to grow, you have to get people comfortable with
> it very fast. I think we can make that.
After ten years of Windows I'm not sure people are comfortable with it.
It's clunky, crashes without explanation, brittle to end user fiddling, repeatedly exposes remote root exploits, is expensive, closed source. I need not go on.
> One Ring to rule them all, One Ring to find them,
> One Ring to bring them all and in the darkness bind them.
> (Lord of the Rings)
Arntcha sick of those mobiles phones yet?
Matt
step one: (at the prompt type) a:
step two: cd /n/a:
Bill
Amsterdam, NL
On Mon, Jan 21, 2002 at 01:32:35AM +0530, Roshan James wrote:
<<snip>>
>
> - How can i access the floppy a: ? /n/a: exists but shows no files.
<<snip>>
namespace(4). i admit that the distinction between /n and /mnt is
blurred. the original intent was /n was remote machines, while /mnt
was local services. a: etc. should probably have been in /mnt.
ditto the blurring for /lib and /sys/lib. /lib was supposed to be
a library: dictionaries, etc, while /sys/lib was supposed to be supporting
stuff like troff macros. but we have what we have. see namespace(4).
-rob
I think that input prediction, if done well, is a beautiful feature, and
one that would fit very well with acme, or maybe as a kind of plumbing. I
used to use a unix thing called "rk"; a markov chain style thing that
continuously prompted you with a line or two of predicted input. You
used the arrow keys or tab or ctrl-m to accept the next char/word/line
of the prediction. It was uncannily good. A lot of command line stuff is
very repetative, and anyone who's seen Rob's fake usenet postings can
see how good this kind of thing is for email. One of these days I'll
get around to hacking it into acme, maybe.
| > - Unless is it part of a grander plan (no pun intended), can we move
| > the process interrupt key from Del to something else and have the
| > conventional functionality of del back ?
Especially since PC keyboards have an actual "break" key to use.
you can find some stupid scripts, including "find", at
http://cejchan.gli.cas.cz/plan9
Cheers,
--pac
I remember the major flamewar over whether Byron's unix implementation of rc
should do this; I was in the 'no way' camp. The result was that you could
conditionally compile in that readline trash. You could probably pick it out
and stick into Plan 9's rc if you wanted to, but Plan 9 is not unix. It has
much better ways to do things.
I guess another way to do it is to use pipefile. One of the Kenji's (iirc)
did this for japanese input -- now there's a problem for you.
As for Latin-1: "Fco. J. Ballesteros" <ne...@plan9.escet.urjc.es> has volunteered
to clean up what I did late last year (I'm too busy). If anyone wants it I'll
send it on or put it on a web page somewhere. I think the only problem is the
caps-lock/ctrl key swap.
If you put the command history editor in the shell, then you can only
use it in the shell; if you use another shell from time to time, then
you have to learn to use that shell's (different) history mechanism.
It's far better to use a single, general, command history mechanism
provided by your terminal emulator or Acme (which is so more than a
terminal emulator). There is a slight loss from the shell and the
command history editor being separated, I know.
Incidentally, I hate command completion predictors; they remember my
typing mistakes days, weeks or months later, either hesitating to show
me the full, correct, command because of my previous mistake or, worse,
confidently complete my command with the mistake!
--
John A. Murdie
Experimental Officer (Software)
Department of Computer Science
University of York
England
Not if you put it in a library and link the library
against every single program that could ever possibly
want to read input!
Standard practice in the GNU world. But is it _good_ practice?
I had a lot of ``fun'' getting gdb to run on Plan 9 because of this...
Or better yet, put it in rio. Then every program gets the
feature, and nobody has to remember to use the funny library.
Plus, libraries have some troubles of their own..
* If static libraries, then you have to relink everything
every time you change the library.
* If dynamic linked libraries, you have taken the first step
on the slippery slope to the land of gratuitious complexity,
where even a simple "hello, world" C program can execute
100000 instructions before it actually prints anything.
(No, I'm not kidding.) For some reason, people seem to think
adding features in dynamic libraries is "free".
Only problem with putting it in rio is that you don't have
quite enough information there. To do intelligent history
and completion, you really want to know a few things like
what program you're doing it for, what their current directory
is, what their environment variables are, and so on.
Why wouldn't it be a history server which sits inbetween
the keyboard and the rio process? Records everything sent
in, intercepts whatever you use for commands in order to
print bits of a log back to rio?
Jim
> * If dynamic linked libraries, you have taken the first step
> on the slippery slope to the land of gratuitious complexity,
> where even a simple "hello, world" C program can execute
> 100000 instructions before it actually prints anything.
> (No, I'm not kidding.) For some reason, people seem to think
> adding features in dynamic libraries is "free".
If I'm running rio on Plan 9, draw a new window, and run
hello world, how many instructions execute before I see
"hello world" on my screen? Lots and lots, just not many
in the hello world process. The kernel has to redirect
the write into rio, rio does some lookups to figure out
which window gets the output, libdraw has to walk around
in the font caches, possibly loading the missing letters,
(which is more kernel calls, context switches to kfs,
and execution of the various code in devsd), finally
preparing a "draw string" request for /dev/draw. Then the
kernel is back. For simplicity let's assume that the window
is in front of all the others, so memlayer isn't involved. Now we
clear the background, either with memset or by making
calls to an accelerated vga routine with some busy waits
(still faster than memset, though). Then we use
per-character calls to memimagedraw to blacken the appropriate
pixels. And finally we see "hello world" (assuming that we
have direct access to video memory; if not, we've been drawing
in a soft screen and still need to flush the changed portion
out to video memory).
You're still right, of course; dynamic libraries are a
slippery slope for lots of reasons. My point is that the
overhead of dynamic libraries is not necessarily worse than
the overhead of other system services like the kernel and
the various Plan 9 file servers, just in a different place.
It takes far more than 100,000 instructions to get "hello world"
onto my screen either way. How you count depends on what
you care to include.
Russ
> Standard practice in the GNU world. But is it _good_ practice?
_hopefully_ Russ was being sarcastic
> I had a lot of ``fun'' getting gdb to run on Plan 9 because of this...
There is a lot to be said for a common way of getting text from the kb.
Especially when it removes the burden from application programmers from having to deal with user input in their interactive cli applications.
Of course a better way is to remove the interactive part and just expose the interface
So many times I've typed ls and hit return in MySQL console to get a list of tables instead of "show tables"
Every time I say to myself "if this was plan9 ls would work, and work better" because I could use the usual tools on the output
in fact yesterday I did a LOT of mysql processing using the shell and piping the output into awk & sed to make new queries, something you just can't do in the mysql console
The downside is that I have to pass the username & password on the command line too so it starts to get a bit unwieldy :
mysql -r -B -e "select pages.idx, pages.title, pages2.idx as idx2, pages2.title as title2 from pages left join pages as pages2 on pages.section=pages2.idx where pages2.title like'Car%';" -u USER --password='XXXPASSWORDXXXX' content | sed 's/+//' | awk 'BEGIN {FS="\t"} {printf "mysql -r -B -e \"select body from pageblock where pagesidx=%s ; \" -u USER --password='XXXPASSWORDXXXX' content | tr -d \"\\r\" | sed \"s/^body//\" > \"%s.txt\"\n",
$1, $2}'
I've taken Boyd's advice from ages ago that SQL is mostly pointless and I'm moving my tables into the file system and guess what, the code in my CGI is actually shrinking!
I'm losing some type checking and conforming to legal filenames gets in the way sometimes but on the whole I'm satisfied.
I'm hoping to eventually move the whole app across to plan9 and I'm interested in the fact that by using /n/dump I can backtrack to old data, see where the most activity is and stuff like that.
M
It's a hard fear to overcome. Putting something into
a dynamic library instead of into a server or the kernel
is oven more efficient. However, by its very nature,
the interface is less constrained. As a result, the
visibility of changes and the amount of ratcheting due
to new applications dragging in new, and often incompatible,
versions of the libraries is higher than changes in
the other 2 places. It's too tempting to add a few
more parameters here and there and to make internal
details externally visible.
I can't really say that they're evil, only that I'ld
prefer not to use them.
I don't remember enough of the SQL syntax to
reparse your query into an exact shell pipeline, but
the idea is you could do something like
sql/grep 'Car%' pages.title | sql/join section pages.idx |
sql/p
Sql/p would behave like the acme p, actually executing
the query to produce output.
Of course, if there isn't much data, moving it into
the file system might be an even better solution.
Russ
Under an operating system that will remain nameless, the 100K figure
came from using a debugger to count only instructions in the process
context of the "hello, world" program itself. It didn't count
kernel mode instructions executed, or window system operations in
other processes, or any of the plethora of things you mentioned.
Had I counted those it of course would have been much higher.
Writing to a file or pipe is much cheaper and there the 100K
instructions start to stick out like a sore thumb.
The reason I bitch and whine about the 100K instructions (or lots
more than 100K in some operating systems) is because process startup
overhead is one of the main limiting factors to the performance of
shell scripts, mkfiles, and the like. That in turn makes people
give up on the "tools" approach too soon and too often.
I've begun fiddling with something like that. I began a postgres client, I
was going to return the table as a fixed width sparse matrix in one file
with a file server and also present the same data as a directory tree.
I'm using the current website project as a way to find out the issues of
filesystem storage to make sure I'm not totally barking up the wrong tree
Can't seem to get the time to work on my actual idea.
M
in my experience (always?), aux/vga is unable to change the
resolution of a display once it's first been brought up. to get
your display to boot in a different resolution, change the
definition of vgasize in plan9.ini (which generally lives in a
FAT partition or on a floppy; more on that in a minute).
Acessibility:
Plan 9 does not include a web browser or other html
interpreter; look to Vita Nuova's freely-available Inferno
distribution, which includes Charon.
man dossrv(4) for a description of the a:, c:, and 9fat:
scripts which will facilitate, respectivly, access to a floppy
drive, your primary FAT partition, and your plan9 FAT
partition, where configuration information like plan9.ini
is commonly stored.
for example, to edit my plan9.ini, i do this:
9fat:
acme -c1 /n/9fat/plan9.ini
unmount /n/9fat
Shell:
to find a file named "myfile" in /usr/anothy, i do:
`{du -a /usr/anothy | awk '{print $2}'} | grep myfile
this sort of construction works well for all manner of
tools (although i have on occasion missed find's easy
methods of finding files based on greater/less-than
comparisons). also try
grep some_string `{du -a /usr/anothy | awk '{print $2}'}
for finding "some_string" in a set of files.
rc has no command completion or history. the design
rational is essentially that this functionality properly
belongs in the windowing system, not the shell, so that
the solution becomes general: it can be applied to every
program that looks for input. while not having history
(and to a lesser extent command completion) took me a
bit of getting used to comming from unix, i do not miss
it, and now strongly prefer the Plan 9 way of giving me
such things.
Keys:
plan 9 terminals are much more mouse-driven than
unix terminals. the current UI basically mandates that
you become comfortable using the mouse alot. the end
result is a much more efficient system - the mouse is
much better at many tasks than moving things around
with a keyboard, even when it doesn't feel like it (there
was a good report on this linked here earlier, but i failed
to make a note of it; anyone?). this is not always true
(folks with various disabilities or motor imparment
being the primary counter-example), but is true the
overwhelming majority of the time, and the system is
designed with that in mind.
the interupt functionality could be moved off del, and
onto something else, like the pause/break key. but
keyboards vary widely, and a replacement would have
to be well-chosen. on most smaller keyboards (like on
laptops), del is a key, while pause/break is often a
pseudo-key.
also, as noted earlier, it's not at all clear what the
"conventional" functionality of del is. on most of my
Unix systems, it produces ^? - far less useful than the
interupt function.
General:
i'm not sure what you're asking WRT plan9 default
boot being "safe" for other OSes. the bootloader plan
9 will install is not a multi-booter - it only finds the
first partition marked "active" (or can there only ever
be one?) and runs that. it will not, however, touch
any data living on other partitions.
there has been wide speculation on why Plan 9 has
not gained greater support than it has. ideas on
this topic vary widely. my own theory is something
along the lines of plan 9 is just too much: it requires
people to understand (or be willing to learn) many
new concepts all at once to really "get it". others
believe it has something to do with licensing terms,
or the attitude of people on 9fans and comp.os.plan9.
there's also the old chicken-and-egg problem: users
aren't interested because of the comparitave lack of
apps, and app developers arn't interested because of
the lack of users. but that's all just speculation.
ã‚¢
the problem is that unless you're really after performance
with insanely-large datasets, a sql-based database just isn't
worth the pain of dealing with that which does not play nicely
with others.
In my case, apart from having to meet deadlines in the Windows world, and
being too cheap to buy a three-button mouse, what rather put me off
seriously pursuing Plan 9 for actual use is a comment some one, I think Mr
Presotto, made a while back to the effect that Plan 9 is a research system,
and that its developers are not very interested in backward compatibility
and only mildly in a large user community. While a perfectly valid goal, I
would have thought it unlikely to attract many people into developing for
Plan 9. As it is, I follow this list and browse the documentation in order
to gain enlightenment and in the hope of gleaning useful ideas for my daily
work.
It's not SQL, but:
> If you put the command history editor in the shell, then you can only
> use it in the shell; if you use another shell from time to time, then
> you have to learn to use that shell's (different) history mechanism.
> It's far better to use a single, general, command history mechanism
> provided by your terminal emulator or Acme (which is so more than a
> terminal emulator). There is a slight loss from the shell and the
> command history editor being separated, I know.
True enough; that said, I retain considerable fondness for
the history mechanism of later research Unix systems. It
was adapted from earlier U of Toronto versions, I believe,
revived by Rob, and later put away again.
The shell appended each executed command (not in a script)
to a $HISTORY file.
The '=' command (not builtin) searched backwards in the
file for a last matching pattern, and reissued it.
E.g.
=
redoes the previous command.
= ls
finds the last shell command beginning with ls.
Text substitution could be accomplished with further
arguments.
The == variant allowed interactive editing.
Dennis
By such an attitude, I believe you won't see the problem (if any) the designers
may be facing now, which must be the hottest topic, but then, you'll see only
the past of them. :-)
I believe any operating system will be tested and trained most effectively in the
real work area, that is any application software. Therefore, if we try to use Plan 9
for our own work, we and the community will face an interesting new problem
to be solved, which will promote Plan 9 further.
Don't you think so?
Or you want Plan 9 to be there as it is without more developement?
Kenji
On Unix systems since around 7th Edition, one can bind any input
character to the INTR function, and the DEL character was the
default (somewhat confused by Berkeleyites who tried to change
to DEC OS conventions: ^C -> INTR, DEL -> char-erase, etc.).
^? is just a way of representing the ASCII DEL character using
printable notation; the actual character is still DEL (0x7F).
> used to use a unix thing called "rk"; a markov chain style thing that
> continuously prompted you with a line or two of predicted input.
it is "reactive keyboard" and i believe was a thesis work at university
of calgary, by Darragh under Witten. i'm sure a web search would still turn
up pointers. there is a book about it, not sure if still in print. the
interface was interesting in trying to accomodate disabled people to
interact with command interfaces by predictive completion.
oz
--
www.cs.yorku.ca/~oz | if you couldn't find any weirdness, maybe
york u. computer science | we'll just have to make some! -- hobbes
Yes, I liked it too, so much so I hacked the SysVr2 shell
to do it and got it to do 'whatis', chucked out 'type'
and added 'builtin'.
Then all I needed was =.c
http://home.fr.inter.net/boyd/code/=.c
[hmm... that code is old; K&R C]
I believe the code was re-hacked for the unix rc and
fixed a bug with smashing tabs into spaces when you
typed # [delete char] inside a tab. I could never
bring myself to break the simplicity of the editing
loop to fix that bug.
I also had access to the 8th and 9th Edition sources
to =.c and saw what contorsions it went to to fix the
bug I didn't want to fix.
I assume rob (or someone) ripped the code out of qed to
write =.c
Could anyone show me how to do such a thing? (tables + relations --> filesys)
Thanks,
--pac
man join
man awk
man sort
man bind
and some custom scripting is about as far as I've got
my data is such that ls /data/content/*/*.txt works for me
I'm trying to keep my data with a depth of one although I envisage being able to move to a more tree like structure to resolve inner joins and the like.
Of course, you have to consider the performance issue of losing your indexes.
Hopefully I'll be working a bit harder on it in a couple of weeks time when my current nightmare has ended !
M
I would like to know your opinion(s) about how to implement a relational
database in Plan 9 (both client and server sides, if needed).
Or, if anybody of you run a rel db completely under Plan 9, I'd be happy to
know.
Good night (here), or morning elsewhwere ;--)
cheers,
--pac
I think you really need to narrow the problem down. It's like o/s
stuff; a general purpose o/s is probably not what you want if you
need 'reponse time to an event to be such and such a time'.
Sometimes a grep and an awk will do :)
A file-system + simple tools RDB would be cool (as russ pointed
out in a previous posting).
> c...@cejchan.gli.cas.cz wrote:
> > I would like to know your opinion(s) about how to implement a relational
> > database in Plan 9 (both client and server sides, if needed).
Python has an add-on called Gadfly which implements an "in memory" SQL server
There is a Python 1.5 port for plan9 somewhere
although the directory :
http://csociety-ftp.ecn.purdue.edu/pub/plan9/python
is curiously empty, but it's somewhere around
that could be a starting point if you need it *right now* !
M
The BRL (now part of ARL) Bourne shell already had those,
also a $HISTORY file (called $HISTFILE to avoid conflict),
emacs-style command line editing, etc. In fact I'm still
using it; we have a single source that can be conditionally
configured to fit any known Unix platform, which vary a lot
more than one might think. It also supports csh-like job
control, and as a side effect uncovered a very bad,
pervasive race in the Irix kernel (which was soon fixed).
That's what NoSQL is. It uses perl and sh, but there is (or was) a plan9 perl
port. It's also mostly awk and the perl and sh bits could be rewritten
without too much work.
What _really_ annoys me is when I hit the BACKSPACE key on
the keyboard, while running some terminal emulator, and it
sends DELETE. This has a tendency to make me feel homicidal.
Actually, xterm is doing it to me right now. xev receives the
keystroke correctly as "keycode 64 (keysym 0xff08, BackSpace)",
then xterm says, duh, I think you want delete. Grrrr!
Of course, xterm is configurable through some resource, but
the default should be that backspace is backspace.
It is much harder to tastefully map a table (matrix structure) to
a filesystem (a tree).
a paper got written about it, but i'm not sure if it's available
to the non-Lucent world, or, if so, where.
ã‚¢
PLEASE, HELP!!! Where is pq? I can't find it on the Plan9 download page.
TIA,
--pac
> Look at the bottom of the "Updates" page. Find the link to "updates" page from
> http://plan9.bell-labs.com/plan9dist
>
> At 07:15 AM 1/23/2002 +0100, c...@cejchan.gli.cas.cz wrote:
> >On Tue, Jan 22, 2002 at 06:03:33PM -0500, ano...@cosym.net wrote:
> >> i'm not sure if it's suitable for your needs, but i'm quite fond of
> >> pq. there's a plan 9 distribution for it (a seperate package
> >> available on the download page). it is based on plain text
Bill
Amsterdam, NL
On Wed, Jan 23, 2002 at 07:15:04AM +0100, c...@cejchan.gli.cas.cz wrote:
> On Tue, Jan 22, 2002 at 06:03:33PM -0500, ano...@cosym.net wrote:
> > i'm not sure if it's suitable for your needs, but i'm quite fond of
> > pq. there's a plan 9 distribution for it (a seperate package
> > available on the download page). it is based on plain text
See volume 20 issues 29..32 of comp.sources.unix (Oct '89) at
ftp://gatekeeper.dec.com/pub/usenet/comp.sources.unix/volume20/reactivekbd
The most recent version seems to be at
http://www.csoft.net/~dummy/robert/software/rk-1.6.2.tar.gz
DEC actually started making terminals like that!
> the default should be that backspace is backspace.
I agree..
As I recall the source code had some problems with argument testing
(essentially, dereferencing null pointers before testing), easily
fixed once you're aware. If you're going to pay for Unity you might
consider licensing the whole Unix System ToolChest; I think there
was a good price for this last time I checked. There are some gems
in there, including algorithm animation and geo-mapping utilities.
I'm with you Captain, I can already smell the napalm burning...
I tried to fight that fight with a cordless Logitech iTouch,
X11, xterm and xmodmap and gave up in disgust at some point
last week.
The _really freaky thing_ is that when I type 8 bit chars
on my Swedish qwerty keyboard _in some windows_ I see
Cyrillic. I can read it, but it doesn't make matters
any better.
I won't even touch KDE. If I want a window [xterm] I use 'x':
x [ hostname ]
Actually I'd like to build jammers for these horrible cordless
things :)
The ASCII standard fortunately solves this one, and you're both wrong.
The ASCII BS charactec is specifically to help the "backup and
overstrike" operation. For example, Ã is supposed to be rendered as
a BS `
The ASCII sequence for "ignore last character transmitted" is:
BS DEL
That is, DEL is *overstruck* on a character to delete it. Note the
nice way this works on paper tape: DEL is all-ones, so that means a
paper tape reader should ignore all-ones. It's also supposed to
ignore NUL (all-zeros); some hardware could not be relied upon to deal
so accurately with spacing, and false reads of all-zeros would happen.
Thomas
> Of course, xterm is configurable through some resource, but
> the default should be that backspace is backspace.
You mean, the default is that "backspace erases a character backwards"
or "backspace sets up an overstrike"? The latter is what ASCII means
by backspace.
Or maybe you mean that the default is that "backspace should send #".
> The ASCII standard fortunately solves this one, and you're both wrong.
yeah but I don't care. I want the keyboard to do what I want, not ride
some standard defined when we all used KSRs for terminals. I dismantled
and threw my Teletypes out 25 years ago (although I saved some pictures --
heroic hardware, that stuff was).
ron
I thought Plan 9 had given up on that? :-)
I'll keep that in mind the next time
I port Plan 9 to a machine that runs
off paper tape. Thanks.
> > the default should be that backspace is backspace.
Further, you completely missed the point.
dhog claimed that typing a backspace key should
send a backspace character, just like typing an
'a' sends an 'a' character; the ascii
semantics of backspace are not relevant
to that particular claim.
Russ
Some unix tty drivers would do this. They'd overstrike with a space
and then a BS :)
Douglas> If you're going
Douglas> to pay for Unity you might consider licensing the whole
Douglas> Unix System ToolChest; I think there was a good price for
Douglas> this last time I checked. There are some gems in there,
Douglas> including algorithm animation and geo-mapping utilities.
Pity, they seem to have dropped the System V rogue (and HDB) :-(
DWB is there, but can you license the Writers Workbench from anywhere
these days?
--lyndon
> yeah but I don't care. I want the keyboard to do what I want, not ride
> some standard defined when we all used KSRs for terminals. I dismantled
> and threw my Teletypes out 25 years ago (although I saved some pictures --
> heroic hardware, that stuff was).
Sure, but to get the keyboard to "do what you want" doesn't say
anything about what internal coding the key sends.
I want the "big key with the arrow" to delete the previous character.
I couldn't care less whether that is internally coded with 010 or 0177.
Thomas
> Further, you completely missed the point.
> dhog claimed that typing a backspace key should
> send a backspace character, just like typing an
> 'a' sends an 'a' character; the ascii
> semantics of backspace are not relevant
> to that particular claim.
I have way more keys that ASCII has codes for. How exactly should
that work? X has a good way (even Lispms had a good way).
Some overstrikes are easier than others.
There are two misunderstandings about ASCII that piss me off, that's
all.
One misunderstanding is that "ASCII doesn't represent accents", which
is totally wrong; it was deliberately constructed to allow for accents
for all/many languages that use the latin alphabet. The idea was (as
I mentioned previously) to use overstriking.
Now it turns out that the idea was not as good as just separate codes
for the accents (though that has its problems too), but it's not like
there was some American chauvinism that didn't bother to think about
other languages.
The other thing that pisses me off is people complaining that this or
that character is "the erase character" in ASCII, and complaining that
some system is using a different character. ASCII has no erase
character (just as it has no newline character), and there is no "one
true character" for erase, any more than there is one true C brace
indenting style or one true endianness.
Thomas
Thomas> ASCII has no erase character (just as it has no newline
Thomas> character), and there is no "one true character" for erase,
Thomas> any more than there is one true C brace indenting style or
Thomas> one true endianness.
just to expose my ignorance, what was the intended meaning of DEL (127) ?
d
s/not as good/ghastly/
Arbitrarily configurable does not imply good.
It does usually imply more pain for users.
Russ
As I mentioned before, DEL and NUL were the two ignored characters.
To tell the receiver to erase the last received character, you would
send a BS DEL sequence; that is, you'd overstrike the last character
with a DEL character. On paper tape, that did exactly the right thing
very cleverly without any special handling; other media were supposed
to DTRT.
To delete n characters, obviously, you sound BS^n DEL^n, and certainly
not (BS DEL)^n.
There may have been additional meanings to DEL, but the only one I
know of is as part of a BS DEL sequenc.e.
Thomas
Arbitrarily configurable is usually wrong. I don't mean that
everything about X is good.
Just that it has a notion of "keycode" and that's what a key sends,
rather than trying to force ASCII to do the job.
Thomas
Well, there are lots of multibyte fans out there still. But hey, it
was really the very first guess; I think they should get *some*
credit. :)
I think you mean BS * n followed by DEL * n. You want repitition, not
exponentiation (which would be meaningless, I think). The operation in
this context is non-distributive, though.
> There may have been additional meanings to DEL, but the only one I
> know of is as part of a BS DEL sequenc.e.
Is this one of those, ``well, people are still posting about this
subject, therefore I feel no need to worry about its topicality...''
things?
Surely there are more important things to worry about, like getting
the Atari 2600 simulator working....
- Dan C.
> > To delete n characters, obviously, you sound BS^n DEL^n, and certainly
> > not (BS DEL)^n.
>
> I think you mean BS * n followed by DEL * n. You want repitition, not
> exponentiation (which would be meaningless, I think). The operation in
> this context is non-distributive, though.
In formal languages theory, "product" is usually concatenation,
"exponentiation" is repeated concatenation. (For example, one says
that a DFA can scan A^n but not A^n B^n; one says that a context free
grammar can parse A^n B^n but not A^n B^n C^n.)
Your notation would have "addition" to be concatenation, and "product"
to be repeated concatenation. That convention would work as well, but
since addition is conventionally always commutative, and product is
not, it's a more confusing convention. (As you note, it suggests a
distributive property which of course does not exist.)
In other words, we agree about substance but are just using different
notations.
> > There may have been additional meanings to DEL, but the only one I
> > know of is as part of a BS DEL sequenc.e.
>
> Is this one of those, ``well, people are still posting about this
> subject, therefore I feel no need to worry about its topicality...''
> things?
Of course. :) Plus I think it's fun.
> Surely there are more important things to worry about, like getting
> the Atari 2600 simulator working....
Well, or getting Plan 9 to boot on my laptop.
Actually it's just the backspace part of that composite operation,
which is what we said.
> That is, DEL is *overstruck* on a character to delete it. Note the
> nice way this works on paper tape: DEL is all-ones, so that means a
> paper tape reader should ignore all-ones. It's also supposed to
> ignore NUL (all-zeros); some hardware could not be relied upon to deal
> so accurately with spacing, and false reads of all-zeros would happen.
That's a bit revisionist; no paper tape punch that I know of
ever automatically reversed tape motion upon receipt of a BS
character. The overstrike-DEL-to-delete was done *manually*
when preparing tapes off line. The ignore-NUL mode was normally
used only for the *initial* mode of each tape ("file"), i.e.
to skip leader, with embedded NUL characters often used in binary
encodings.
Another cute thing: The ASR-33 didn't immediately stop the reader
when an XOFF was read, and it didn't even stop reliably after the
*next* character had already passed, unless that character was a
DEL. (Apparently when all 8 sensing fingers activated there was a
big enough dump of mechanical energy to ensure reliable stopping.)
Therefore, Honeywell's source tape convention was LF, text, CR,
XOFF, DEL (usually called RUBOUT rather than DEL). The funny
split of the LF and CR actions allowed the assembler to input a
line from the reader with echo-print on the paper, then starting
from the new (beginning-of-line) position it would print the
object code, at some point sending a TAPE-ON (DC2) to enable the
punch unit and then the binary record, which used all nonprinting,
nonmotion characters (including BEL, ding ding) then TAPE-OFF (DC4).
At which point XON (DC1) would be sent to enable the reader which
would input the next text line (starting with that echoed LF to
clear the just-completed line on the paper). A nifty way to use
the ASR-33 for a complete one-pass assembly process with object
code and full output listing. You can investigate this using
one of the Honeywell Series-16 (+ ASR-33) simulators (Sapere's or
Supnick's) and the DAP assembler (available at Sapere's site).
> The downside is that I have to pass the username & password on the
> command line too so it starts to get a bit unwieldy :
You could put them in ~/.my.cnf.
[client]
user=xxx
password=yyy
Ralph.
Whoops, I should have realized that's what you were refering to. My bad.
- Dan C.
Depends on your domain. In mathematics a product could be a dot
[rc's ^] or a cross product [trickier].
There are all sorts of "products" in mathematics,
but the so-called "cross product" is one of the least qualified
to go by that name.
I don't think so. It is the dual of the sesquilineal projection of the
tensorial product. I couln't resist writing it. :-)
The fact that it is anticonmutative doesn't stop it being a product,
it distributes with the sum and has an absorbing element (I don't know if
it is called so in English) and has all sorts of properties which make it a
product.
--
Saludos,
Gorka
"Curiosity sKilled the cat"
> The fact that it is anticonmutative doesn't stop it being a product,
> it distributes with the sum and has an absorbing element (I don't know if
> it is called so in English) and has all sorts of properties which make it a
> product.
I think "absorbing element" in English is just called "zero" (if I'm
guessing right at what you mean). In whatever ring, the additive
identity is always called "zero".
Thomas
first thing I went for is mail, hoping to post my success from there
great to see imap & pop3 have made it into upas but sadly :
%upas/fs -f/imap/tcp!192.168.1.100!143/matt
%success
%unexpected line: INFO: LOGIN, user=user, ip=[127.0.0.1]
%upas/fs: opening mailbox: error in initial handshake
I'm trying to attach to courier IMAP on FreeBSD4.4
any clues or docs I can look at
cheers
Matt
russ
ta, saves me endlessly fiddling again!
well, until i find something new to fiddle with
M
As usually defined the c.p. is supposed to result in the same
type as its arguments, but e.g. the c.p. of two vectors is
*not* a vector (it's a so-called pseudo- or axial vector,
which can indeed be thought of as a *component* of the tensor
product). So while it might be a "product" it is not as nice
as the kinds of products that map from space x space into space.
The "non-conservation of parity" work that was awarded a Nobel
prize seems to actually have been confusion on this very score.
Well, as everything, depends on what you call type. Everything here
are Tensors at least. (and also vectors, because tensor spaces are
vector spaces).
Anyway I think you confusing the c.p. with the wedge product which is
it's dual in an special case. As far as I know the c.p. of two vectors
is a vector. In fact, it is the special case of aplying the dual
operator to the wedge product with N=3 and r=2, that is, the result is
also a vector in the same space, that is why it is called vector
product too.
The tensors which written as a wedge product form a tensor are called its
strict components (I think you are referring to that). Anyway, the
wedge product of a group of tensors is a tensor too. And *all* of this
operations are called products, though that is exterior algebra and maybe
the analogy has been taken a little bit too far.
> Well, as everything, depends on what you call type. Everything here
> are Tensors at least. (and also vectors, because tensor spaces are
> vector spaces).
Two tensors are of the same type if they have the same formal
character: that is, the same rank (and, if you are allowing covectors,
then the same rank and the same indexes "up" and "down").
> Anyway I think you confusing the c.p. with the wedge product which is
> it's dual in an special case. As far as I know the c.p. of two vectors
> is a vector.
Only in three dimensions.
> As usually defined the c.p. is supposed to result in the same
> type as its arguments, but e.g. the c.p. of two vectors is
> *not* a vector (it's a so-called pseudo- or axial vector,
> which can indeed be thought of as a *component* of the tensor
> product). So while it might be a "product" it is not as nice
> as the kinds of products that map from space x space into space.
> The "non-conservation of parity" work that was awarded a Nobel
> prize seems to actually have been confusion on this very score.
Sure enough. The cross product as tensor-product-with-volume-element
makes this even clearer; the result of the "product" is actually a
higher rank tensor than the arguments.
Thanks
Martin Gardiner wrote this up years ago in a Pelican. If you search on
his name at amazon for:
"The Ambidextrous Universe"
You'll find the re-issue brought up to date.
cheers
-George
You'll find the information.
cheers
-George
Huh?!
++L
> Non-conservation of parity is usually discussed under "CPT",
> which should be in the index of many textbooks, predating the Web.
> My assessment of the analytical error dates back to around 1967 but
> has not been published.
So the usual rule (as I was taught it) is that parity alone is not
conserved, but the product of parity, time, and charge is conserved.
(Perhaps I've got that slightly wrong.) Is this not actually correct?
Gardner says roughly what I said.
So are there references that back up what you are saying, that this is
not in fact the case?
> The "non-conservation of parity" work that was awarded a Nobel
> prize seems to actually have been confusion on this very score.
Um, the non-conservation of parity is part of the assymetry of certain
weak decay modes, right?
Drat, that was the second time I tried to reply to "sender" in
Netscape and had it go to Reply-To rather than to From (Andrew).
No, read on...
> As far as I know the c.p. of two vectors is a vector.
No, it is not, and the fact that people treat it as one is the problem.
The *geometric object* that is the closest thing to the c.p. is a skew
tensor (practically the same as wedge product), which (only) in 3D has
Cartesian components that resemble those of a vector, *except* that
this pseudo-vector *flips* under reflection (unlike a genuine vector).
Unfortunately, physicists have been trained to express Maxwell's laws
as a relationship between a genuine vector (field) and a c.p., which
means that that expression of those laws *changes* under reflection,
something that physicists are *not* taught and which appears to have
been overlooked in the analysis of the (nonconservation of) parity
experiment.
Apologies for being off-topic, but the subject arose in this group..
Well, you made it sound like computing was less frustrating than
mainline physics. Heard any good M$ jokes lately?
++L
PS: I dunno about comp.os.plan9 but 9fans is pleasantly tolerant of
off-topic discussion, I vote to keep it that way.
Another physics / comp sci swap. Interesting.
I think we have 3 or 4 here.
When I arrived at Uni for my Comp Sci degree they included physics modules
I dropped out after 2 of 4 yrs
M
What I am saying is that if parity was *not* conserved, the
theoretical analysis behind the famous experiments (on weak
decay) did not demonstrate it, due to not accounting for the
non-vectorial nature of the c.p. in the form of Maxwell's laws
used in the analysis.
I have my own reasons to think that mirror symmetry *has* to
be a fundamental property of physics and that any asymmetry
is environmentally induced.
Undoubtedly *some* aspects of computing are frustrating
(how about everybody who tries to get Plan 9 working on
unsupported hardware?), but I don't find the whole
*profession* frustrating. At least not until mandatory
certification, which is something that we're threatened
with every so often.
> What I am saying is that if parity was *not* conserved, the
> theoretical analysis behind the famous experiments (on weak
> decay) did not demonstrate it, due to not accounting for the
> non-vectorial nature of the c.p. in the form of Maxwell's laws
> used in the analysis.
Gotcha. Where can I read about it?
> I have my own reasons to think that mirror symmetry *has* to
> be a fundamental property of physics and that any asymmetry
> is environmentally induced.
Sure, I think that's why the original result was so
counter-intuitive. There are profound metaphysical reasons to insist
on certain physical symmetries.
I'm confused. When I was a lad we were taught that there were two types of
vector, polar and axial which differed in their behaviour under reflection
of the co-ordinate system. The fact that the cross product of two polar
vectors is an axial vector doesn't mean that axial vectors aren't really
vectors, any more than the fact that the product of two negative integers
is a positive integer means that positive integers aren't really integers.
I'm not sure what the problem with Maxwell's equations is. The electric
field E is a polar vector, but the magnetic field B is an axial vector.
Since the curl of an axial vector is polar, and vice versa, it is perfectly
kosher to relate the curl of E to the time derivative of B, both terms
being axial vectors, and hence the equation being invariant under
reflection. Similarly with the equation involving the curl of B, where both
sides are polar.
As far as I understand Lee & Yang's analysis of the parity experiments,
which is admittedly not very far, they explained the asymmetry in the decay
of the Cobalt nucleus by mixing polar (momentum) and axial (angular
momentum) vectors in the same equation, and so unlike Maxwell's equations
theirs does change under reflection.
>I have my own reasons to think that mirror symmetry *has* to
>be a fundamental property of physics and that any asymmetry
>is environmentally induced.
>
I'm suspicious of any attempt to say what nature has to look like on a
priori grounds, but to pursue this would be majorly off-topic. Unless Mr
Kotsopoulos can be persuaded to add a new entry to the FAQ, perhaps with
the title "Can there be synthetic a priori propositions?"
The above probably indirectly addresses Boyd's musing about the
physics/computing crossover. I don't think I could possibly support a wife,
a child, and a gin habit doing this sort of stuff.
Oh well, back to CORBA. I feel SO much better having to deal with the whole
filthy mess since Reiser told us it was influenced by Plan 9.
after "fixing" that & wading through the rfc and hours of hacking I
discovered that it was because Courier was bound to 127.0.0.1 and if you
connect to an other IP on the machine you get a PREAUTH to a dummy mailbox
(user=user) so it was working fine!
Well, it still doesn't connect properly (probably because /mnt/auth is
missing on this stand alone box)
I shall finish it off in the morning (even if it means hard coding the
password just to get it working!)
M