Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Problems of Symbol Congestion in Computer Languages

Reply
Thread Tools

Problems of Symbol Congestion in Computer Languages

 
 
rusi
Guest
Posts: n/a
 
      03-01-2011
On Mar 1, 6:01*pm, Mark Thomas <(E-Mail Removed)> wrote:
> I know someone who was involved in creating a language called A+. It
> was invented at Morgan Stanley where they used Sun keyboards and had
> access to many symbols, so the language did have set symbols, math
> symbols, logic symbols etc. Here's a keyboard map including the
> language's symbols (the red characters).http://www.aplusdev.org/keyboard.html
>
> I have no idea if this language is still in use.


Runs (ok limps) under debian/ubuntu -- see http://packages.debian.org/squeeze/aplus-fsf

My own attempts at improving the scene http://www.emacswiki.org/emacs/AplInDebian

If anyone has any further findings on this, I'd be happy to know.
 
Reply With Quote
 
 
 
 
Chris Jones
Guest
Posts: n/a
 
      03-01-2011
On Tue, Mar 01, 2011 at 09:46:19AM EST, rusi wrote:
> On Mar 1, 6:01*pm, Mark Thomas <(E-Mail Removed)> wrote:


> > I know someone who was involved in creating a language called A+. It
> > was invented at Morgan Stanley where they used Sun keyboards and had
> > access to many symbols, so the language did have set symbols, math
> > symbols, logic symbols etc. Here's a keyboard map including the
> > language's symbols (the red characters).
> > http://www.aplusdev.org/keyboard.html


> > I have no idea if this language is still in use.

>
> Runs (ok limps) under debian/ubuntu -- see

http://packages.debian.org/squeeze/aplus-fsf

> My own attempts at improving the scene

http://www.emacswiki.org/emacs/AplInDebian

> If anyone has any further findings on this, I'd be happy to know.


Well.. a couple months back I got to the point where I'd really had it
with the anglo-centric verbosity of common programming languages (there
are days when even python makes me think of COBOL.. ugh..) and I took
a look at A+.

At first it looks like something MS (Morgan Stanley..) dumped into the
OSS lap fifteen years ago and nobody ever used it or maintained it.. so
it takes a bit of digging to make it.. sort of work in current GNU/linux
distributions.. especially since it knows nothing about Unicode.

Here's the X/A+ map I came up with:

// A+ keyboard layout: /usr/share/X11/xkb/symbols/apl
// Chris Jones - 18/12/2010

// Enable via:
// $ setxkbmap -v 10 apl

default
partial alphanumeric_keys modifier_keys
xkb_symbols "APL" {

name[Group1]= "APL";

// Alphanumeric section
key <TLDE> { [ grave, asciitilde, 0x010000fe, 0x0100007e ] };
key <AE01> { [ 1, exclam, 0x010000a1, 0x010000e0 ] };
key <AE02> { [ 2, at, 0x010000a2, 0x010000e6 ] };
key <AE03> { [ 3, numbersign, 0x0100003c, 0x010000e7 ] };
key <AE04> { [ 4, dollar, 0x010000a4, 0x010000e8 ] };
key <AE05> { [ 5, percent, 0x0100003d, 0x010000f7 ] };
key <AE06> { [ 6, asciicircum, 0x010000a6, 0x010000f4 ] };
key <AE07> { [ 7, ampersand, 0x0100003e, 0x010000e1 ] };
key <AE08> { [ 8, asterisk, 0x010000a8, 0x010000f0 ] };
key <AE09> { [ 9, parenleft, 0x010000a9, 0x010000b9 ] };
key <AE10> { [ 0, parenright, 0x0100005e, 0x010000b0 ] };
key <AE11> { [ minus, underscore, 0x010000ab, 0x01000021 ] };
key <AE12> { [ equal, plus, 0x010000df, 0x010000ad ] };

key <AD01> { [ q, Q, 0x0100003f, 0x010000bf ] };
key <AD02> { [ w, W, 0x010000d7, Nosymbol ] };
key <AD03> { [ e, E, 0x010000c5, 0x010000e5 ] };
key <AD04> { [ r, R, 0x010000d2, Nosymbol ] };
key <AD05> { [ t, T, 0x0100007e, Nosymbol ] };
key <AD06> { [ y, Y, 0x010000d9, 0x010000b4 ] };
key <AD07> { [ u, U, 0x010000d5, Nosymbol ] };
key <AD08> { [ i, I, 0x010000c9, 0x010000e9 ] };
key <AD09> { [ o, O, 0x010000cf, 0x010000ef ] };
key <AD10> { [ p, P, 0x0100002a, 0x010000b3 ] };
key <AD11> { [ bracketleft, braceleft, 0x010000fb, 0x010000dd ] };
key <AD12> { [ bracketright, braceright, 0x010000fd, 0x010000db ] };

key <AC01> { [ a, A, 0x010000c1, Nosymbol ] };
key <AC02> { [ s, S, 0x010000d3, 0x010000be ] };
key <AC03> { [ d, D, 0x010000c4, Nosymbol ] };
key <AC04> { [ f, F, 0x0100005f, 0x010000bd ] };
key <AC05> { [ g, G, 0x010000c7, 0x010000e7 ] };
key <AC06> { [ h, H, 0x010000c8, 0x010000e8 ] };
key <AC07> { [ j, J, 0x010000ca, 0x010000ea ] };
key <AC08> { [ k, K, 0x01000027, Nosymbol ] };
key <AC09> { [ l, L, 0x010000cc, 0x010000ec ] };
key <AC10> { [ semicolon, colon, 0x010000db, 0x010000bc ] };
key <AC11> { [ apostrophe, quotedbl, 0x010000dd, 0x010000bb ] };

key <AB01> { [ z, Z, 0x010000da, 0x010000fa ] };
key <AB02> { [ x, X, 0x010000d8, Nosymbol ] };
key <AB03> { [ c, C, 0x010000c3, 0x010000e3 ] };
key <AB04> { [ v, V, 0x010000d6, Nosymbol ] };
key <AB05> { [ b, B, 0x010000c2, 0x010000e2 ] };
key <AB06> { [ n, N, 0x010000ce, 0x010000ee ] };
key <AB07> { [ m, M, 0x0100007c, 0x010000cd ] };
key <AB08> { [ comma, less, 0x010000ac, 0x0100003c ] };
key <AB09> { [ period, greater, 0x010000dc, 0x010000ae ] };
key <AB10> { [ slash, question, 0x010000af, 0x0100003f ] };

key <BKSL> { [ backslash, bar, 0x010000dc, 0x010000fc ] };
key <CAPS> { [ Caps_Lock ] };
// End alphanumeric section

include "level3(win_switch)"
include "level3(menu_switch)"
};

In fine.. you fire up an xterm.. issue a ‘setxkbmap apl’ command from
the shell prompt and you're in business.

I used it daily for about a month before I switched to APLX - aka micro
APL.. and as I had zero problems.. So, I suspect it is 100% A+
compatible.

Initially, I thought of writing a python wrapper that would handle
conversion from Unicode to A+'s peculiar brand of latin1 and back (among
other things) but never had the time.

cj
 
Reply With Quote
 
 
 
 
Xah Lee
Guest
Posts: n/a
 
      03-05-2011
On Mar 1, 3:40*pm, Chris Jones <(E-Mail Removed)> wrote:

> At first it looks like something MS (Morgan Stanley..) dumped into the
> OSS lap fifteen years ago and nobody ever used it or maintained it.. so
> it takes a bit of digging to make it.. sort of work in current GNU/linux
> distributions.. especially since it knows nothing about Unicode.
>
> Here's the X/A+ map I came up with:
>
> // A+ keyboard layout: /usr/share/X11/xkb/symbols/apl
> // Chris Jones - 18/12/2010
>
> // Enable via:
> // * * *$ setxkbmap -v 10 apl
>
> default
> partial alphanumeric_keys modifier_keys
> xkb_symbols "APL" {
>
> * * name[Group1]= "APL";
>
> * * // Alphanumeric section
> * * key <TLDE> { *[ * * grave, * *asciitilde, * * 0x010000fe, * * 0x0100007e * * *] * * * };
> * * key <AE01> { *[ * * * * 1, * *exclam, * * * * 0x010000a1, * * 0x010000e0 * * *] * * * };
> * * key <AE02> { *[ * * * * 2, * *at, * * * * * * 0x010000a2, * * 0x010000e6 * * *] * * * };
> * * key <AE03> { *[ * * * * 3, * *numbersign, * * 0x0100003c, * * 0x010000e7 * * *] * * * };
> * * key <AE04> { *[ * * * * 4, * *dollar, * * * * 0x010000a4, * * 0x010000e8 * * *] * * * };
> * * key <AE05> { *[ * * * * 5, * *percent, * * * *0x0100003d, * * 0x010000f7 * * *] * * * };
> * * key <AE06> { *[ * * * * 6, * *asciicircum, * *0x010000a6, * * 0x010000f4 * * *] * * * };
> * * key <AE07> { *[ * * * * 7, * *ampersand, * * *0x0100003e, * * 0x010000e1 * * *] * * * };
> * * key <AE08> { *[ * * * * 8, * *asterisk, * * *0x010000a8, * * 0x010000f0 * * *] * * * };
> * * key <AE09> { *[ * * * * 9, * *parenleft, * * *0x010000a9, * * 0x010000b9 * * *] * * * };
> * * key <AE10> { *[ * * * * 0, * *parenright, * * 0x0100005e, * * 0x010000b0 * * *] * * * };
> * * key <AE11> { *[ * * minus, * *underscore, * * 0x010000ab, * * 0x01000021 * * *] * * * };
> * * key <AE12> { *[ * * equal, * *plus, * * * * *0x010000df, * * 0x010000ad * * *] * * * };
>
> * * key <AD01> { *[ * * * * q, * *Q, * * * * * * *0x0100003f, * * 0x010000bf * * *] * * * };
> * * key <AD02> { *[ * * * * w, * *W, * * * * * * *0x010000d7, * * Nosymbol * * * *] * * * };
> * * key <AD03> { *[ * * * * e, * *E, * * * * * * *0x010000c5, * * 0x010000e5 * * *] * * * };
> * * key <AD04> { *[ * * * * r, * *R, * * * * * * *0x010000d2, * * Nosymbol * * * *] * * * };
> * * key <AD05> { *[ * * * * t, * *T, * * * * * * *0x0100007e, * * Nosymbol * * * *] * * * };
> * * key <AD06> { *[ * * * * y, * *Y, * * * * * * *0x010000d9, * * 0x010000b4 * * *] * * * };
> * * key <AD07> { *[ * * * * u, * *U, * * * * * * *0x010000d5, * * Nosymbol * * * *] * * * };
> * * key <AD08> { *[ * * * * i, * *I, * * * * * * *0x010000c9, * * 0x010000e9 * * *] * * * };
> * * key <AD09> { *[ * * * * o, * *O, * * * * * * *0x010000cf, * * 0x010000ef * * *] * * * };
> * * key <AD10> { *[ * * * * p, * *P, * * * * * * *0x0100002a, * * 0x010000b3 * * *] * * * };
> * * key <AD11> { *[ bracketleft, *braceleft, * * *0x010000fb, * * 0x010000dd * * *] * * * };
> * * key <AD12> { *[ bracketright, braceright, * * 0x010000fd, * * 0x010000db * * *] * * * };
>
> * * key <AC01> { *[ * * * * a, * *A, * * * * * * *0x010000c1, * * Nosymbol * * * *] * * * };
> * * key <AC02> { *[ * * * * s, * *S, * * * * * * *0x010000d3, * * 0x010000be * * *] * * * };
> * * key <AC03> { *[ * * * * d, * *D, * * * * * * *0x010000c4, * * Nosymbol * * * *] * * * };
> * * key <AC04> { *[ * * * * f, * *F, * * * * * * *0x0100005f, * * 0x010000bd * * *] * * * };
> * * key <AC05> { *[ * * * * g, * *G, * * * * * * *0x010000c7, * * 0x010000e7 * * *] * * * };
> * * key <AC06> { *[ * * * * h, * *H, * * * * * * *0x010000c8, * * 0x010000e8 * * *] * * * };
> * * key <AC07> { *[ * * * * j, * *J, * * * * * * *0x010000ca, * * 0x010000ea * * *] * * * };
> * * key <AC08> { *[ * * * * k, * *K, * * * * * * *0x01000027, * * Nosymbol * * * *] * * * };
> * * key <AC09> { *[ * * * * l, * *L, * * * * * * *0x010000cc, * * 0x010000ec * * *] * * * };
> * * key <AC10> { *[ semicolon, * *colon, * * * * *0x010000db, * * 0x010000bc * * *] * * * };
> * * key <AC11> { *[ apostrophe, * quotedbl, * * * 0x010000dd, * * 0x010000bb * * *] * * * };
>
> * * key <AB01> { *[ * * * * z, * *Z, * * * * * * *0x010000da, * * 0x010000fa * * *] * * * };
> * * key <AB02> { *[ * * * * x, * *X, * * * * * * *0x010000d8, * * Nosymbol * * * *] * * * };
> * * key <AB03> { *[ * * * * c, * *C, * * * * * * *0x010000c3, * * 0x010000e3 * * *] * * * };
> * * key <AB04> { *[ * * * * v, * *V, * * * * * * *0x010000d6, * * Nosymbol * * * *] * * * };
> * * key <AB05> { *[ * * * * b, * *B, * * * * * * *0x010000c2, * * 0x010000e2 * * *] * * * };
> * * key <AB06> { *[ * * * * n, * *N, * * * * * * *0x010000ce, * * 0x010000ee * * *] * * * };
> * * key <AB07> { *[ * * * * m, * *M, * * * * * * *0x0100007c, * * 0x010000cd * * *] * * * };
> * * key <AB08> { *[ * * comma, * *less, * * * * *0x010000ac, * * 0x0100003c * * *] * * * };
> * * key <AB09> { *[ * *period, * *greater, * * * *0x010000dc, * * 0x010000ae * * *] * * * };
> * * key <AB10> { *[ * * slash, * *question, * * * 0x010000af, * * 0x0100003f * * *] * * * };
>
> * * key <BKSL> { *[ backslash, * * * * bar, * * * 0x010000dc, * * 0x010000fc * * *] * * * };
> * * key <CAPS> { *[ Caps_Lock * * ] * * * };
> * * // End alphanumeric section
>
> * * include "level3(win_switch)"
> * * include "level3(menu_switch)"
>
> };
>
> In fine.. you fire up an xterm.. issue a setxkbmap apl command from
> the shell prompt and you're in business.
>
> I used it daily for about a month before I switched to APLX - aka micro
> APL.. and as I had zero problems.. So, I suspect it is 100% A+
> compatible.
>
> Initially, I thought of writing a python wrapper that would handle
> conversion from Unicode to A+'s peculiar brand of latin1 and back (among
> other things) but never had the time.


hi Chris,

i created a page dedicated to creating math symbol layouts for
different langs.
I linked to your post.

I wonder if you would let me mirror your X code on my site? Or, if you
place it on somewhere more permanent or dedicate page such as git, i'd
link to that. Thanks.

Xah
 
Reply With Quote
 
Albert van der Horst
Guest
Posts: n/a
 
      03-05-2011
In article <(E-Mail Removed)>,
Dotan Cohen <(E-Mail Removed)> wrote:
>You miss the canonical bad character reuse case: = vs ==.
>
>Had there been more meta keys, it might be nice to have a symbol for
>each key on the keyboard. I personally have experimented with putting
>the symbols as regular keys and the numbers as the Shifted versions.
>It's great for programming.


People might be interested in the colorforth solution:

This goes the other way: characters are limited (lowercase
and few special chars) to what is needed for programming.
So the fingers never need to leave the home position,
reaching about 30 chars at most.
Different uses (defining a function versus using a function)
are indicated by color, so don't use up char's.

http://www.colorforth.com

I was forced to use it (a development environment required it)
and it is not as bad as it sounds.

>--
>Dotan Cohen


Groetjes Albert

--
--
Albert van der Horst, UTRECHT,THE NETHERLANDS
Economic growth -- being exponential -- ultimately falters.
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

 
Reply With Quote
 
Steven D'Aprano
Guest
Posts: n/a
 
      03-13-2011
On Sun, 13 Mar 2011 00:52:24 -0800, Robert Maas, http://tinyurl.com/uh3t
wrote:

> Exercise to the reader: Combine those nine-decimal-digit and
> ten-decimal-digit numbers appropriately to express exactly how many
> wavelengths of the hyperfine transition equals one meter. Hint: You
> either multiply or divide, hence if you just guess you have one chance
> out of 3 of being correct.



Neither. The question is nonsense. The hyperfine transition doesn't have
a wavelength. It is the radiation emitted that has a wavelength. To work
out the wavelength of the radiation doesn't require guessing, and it's
not that complicated, it needs nothing more than basic maths.

Speed of light = 1 metre travelled in 1/299792458 of a second
If 9192631770 periods of the radiation takes 1 second, 1 period takes
1/9192631770 of a second.

Combine that with the formula for wavelength:
Wavelength = speed of light * period
= 299792458 m/s * 1/9192631770 s
= 0.03261225571749406 metre


Your rant against the metric system is entertaining but silly. Any
measuring system requires exact definitions of units, otherwise people
will disagree on how many units a particular thing is. The imperial
system is a good example of this: when you say something is "15 miles",
do you mean UK statute miles, US miles, survey miles, international
miles, nautical miles, or something else? The US and the UK agree that a
mile is exactly 1,760 yards, but disagree on the size of a yard. And
let's not get started on fluid ounces (a measurement of volume!) or
gallons...

The metric system is defined to such a ridiculous level of precision
because we have the technology, and the need, to measure things to that
level of precision. Standards need to be based on something which is
universal and unchanging. Anybody anywhere in the world can (in
principle) determine their own standard one metre rule, or one second
timepiece, without arguments about which Roman soldier's paces defines a
yard, or which king's forearm is a cubit.


Follow-ups set to comp.lang.python.


--
Steven
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: how to measure TCP congestion windows using python ?? Stefan Sonnenberg-Carstens Python 0 12-19-2010 01:56 PM
Load sharing based on link congestion jlamanna@gmail.com Cisco 4 09-08-2009 04:32 PM
CBWFQ or other policy / Congestion amyl@paxemail.com Cisco 1 02-12-2008 05:07 PM
Questions about Congestion Management/QOS Douw Gerber Cisco 2 11-18-2003 11:10 AM
congestion on microsoft powered sites? Carl Elphick NZ Computing 0 08-12-2003 08:47 AM



Advertisments