[29325] in Perl-Users-Digest
Perl-Users Digest, Issue: 569 Volume: 11
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Sun Jun 24 14:10:19 2007
Date: Sun, 24 Jun 2007 11:09:08 -0700 (PDT)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)
Perl-Users Digest Sun, 24 Jun 2007 Volume: 11 Number: 569
Today's topics:
Re: 12 hour clock and offset problem anno4000@radom.zrz.tu-berlin.de
Re: date parts in one step <stoupa@practisoft.cz>
Re: date parts in one step <hjp-usenet2@hjp.at>
Device::Modem v1.48 released to CPAN <cosimo@cpan.org>
Re: How can I overload the build in array type? <mjcarman@mchsi.com>
Lost about SOAP::Lite <algis.m@gmail.com>
Re: Newbie Question <bik.mido@tiscalinet.it>
Re: Newbie Question <bik.mido@tiscalinet.it>
Re: Portable general timestamp format, not 2038-limited <see_website@mindprod.com.invalid>
Re: The Modernization of Emacs: terminology buffer and (Timofei Shatrov)
Re: The Modernization of Emacs: terminology buffer and <david.golden@oceanfree.net>
Re: The Modernization of Emacs: terminology buffer and <martin@see.sig.for.address>
Re: The Modernization of Emacs: terminology buffer and <martin@see.sig.for.address>
Re: uninitialized value <rvtol+news@isolution.nl>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: 24 Jun 2007 11:25:46 GMT
From: anno4000@radom.zrz.tu-berlin.de
Subject: Re: 12 hour clock and offset problem
Message-Id: <5e72lqF379ob8U1@mid.dfncis.de>
Peter J. Holzer <hjp-usenet2@hjp.at> wrote in comp.lang.perl.misc:
> On 2007-06-23 22:59, anno4000@radom.zrz.tu-berlin.de
> <anno4000@radom.zrz.tu-berlin.de> wrote:
> > Peter J. Holzer <hjp-usenet2@hjp.at> wrote in comp.lang.perl.misc:
> >> On 2007-06-18 11:03, anno4000@radom.zrz.tu-berlin.de
> >> <anno4000@radom.zrz.tu-berlin.de> wrote:
> >> > The "x mod y" operation can be consistently defined for all real x and
> >> > y through
> >> >
> >> > x mod y = x - y*floor(x/y) (y != 0)
> >> > y mod 0 = x
> >>
> >> Ex falso quodlibet?
> >
> > It is very customary to fix definitions when the original one
> > doesn't apply. Mathematicians do it all the time, provided that some
> > fundamental law(s) can be preserved by the fix.
> >
> >> But I think you mean:
> >>
> >> x mod 0 = 0
> >
> > No, I (or rather, Knuth and other Authors) mean
> >
> > y mod 0 = x
>
> What is x in this case? A random number? It doesn't appear on the left
> side of the equation.
Oh dear. That's nonsense which I mindlessly repeated. I meant to say
x mod 0 = x
which is also what can be found in Knuth and other sources.
Anno
------------------------------
Date: Sun, 24 Jun 2007 16:08:03 +0200
From: "Petr Vileta" <stoupa@practisoft.cz>
Subject: Re: date parts in one step
Message-Id: <f5ltv8$u5f$1@ns.felk.cvut.cz>
Peter J. Holzer wrote:
> On 2007-06-22 11:46, Petr Vileta <stoupa@practisoft.cz> wrote:
>> Brad Baxter wrote:
>>> my ($m, $y) = map { $$_[0] + 1, $$_[1] + 1900 } [(localtime)[4,5]];
>>>
>> I debug it in Komodo and this solution do 2 steps
>
> Why is this a problem?
>
It look needless ;-) Say I write this code:
my @parts = (1,2007);
my ($m, $y);
foreach $p (0 .. $#parts)
{
$m = $parts[0];
$y = $parts[1];
}
This work but do the same operation 2 times and second step is needless.
I tried some solutions mentioned here in big cycle and I got interesting
results
#!/usr/bin/perl
use strict;
my ($start, $stop)
$start = localtime;
foreach (1 .. 10000000)
{
my @a=(localtime)[4,5];
my ($m, $y) = ($a[0] + 1, $a[1] + 1900);
}
$stop = localtime;
print 'Function 1: ', $stop - $start, " seconds\n";
$start = localtime;
foreach (1 .. 10000000)
{
my ($m, $y) = map { $$_[0] + 1, $$_[1] + 1900 } [(localtime)[4,5]];
}
$stop = localtime;
print 'Function 2: ', $stop - $start, " seconds\n";
$start = localtime;
foreach (1 .. 10000000)
{
my ($m, $y) = sub { $_[ 4] + 1, $_[ 5] + 1900 }->(localtime);
}
$stop = localtime;
print 'Function 3: ', $stop - $start, " seconds\n";
Function 1 : 37 seconds
Function 2 : 52 seconds
Function 3 : 44 seconds
--
Petr Vileta, Czech republic
(My server rejects all messages from Yahoo and Hotmail. Send me your mail
from another non-spammer site please.)
------------------------------
Date: Sun, 24 Jun 2007 20:01:04 +0200
From: "Peter J. Holzer" <hjp-usenet2@hjp.at>
Subject: Re: date parts in one step
Message-Id: <slrnf7tcb0.egk.hjp-usenet2@zeno.hjp.at>
On 2007-06-24 14:08, Petr Vileta <stoupa@practisoft.cz> wrote:
> Peter J. Holzer wrote:
>> On 2007-06-22 11:46, Petr Vileta <stoupa@practisoft.cz> wrote:
>>> Brad Baxter wrote:
>>>> my ($m, $y) = map { $$_[0] + 1, $$_[1] + 1900 } [(localtime)[4,5]];
>>>>
>>> I debug it in Komodo and this solution do 2 steps
>>
>> Why is this a problem?
>>
> It look needless ;-) Say I write this code:
>
> my @parts = (1,2007);
> my ($m, $y);
> foreach $p (0 .. $#parts)
> {
> $m = $parts[0];
> $y = $parts[1];
> }
>
> This work but do the same operation 2 times and second step is needless.
But
my ($m, $y) = map { $$_[0] + 1, $$_[1] + 1900 } [(localtime)[4,5]];
does not do the same thing two times.
It does the the following:
1) call localtime
2) Extract elements 4 and 5 of the result list.
3) Construct an anonymous array with these 2 elements
4) Call map with a list of one element (the aforementioned anonymous
array)
5) For each element in the list (i.e. once) the body of the map is
executed, producing two elements $$_[0] + 1 and $$_[1] + 1900.
6) The first (and only) two elements of the list are assigned to ($m, $y).
The "two steps" are probably an artefact of the debugger which puts an
extra breakpoint into the block.
This is rather similar to the sub method, except that the two values are
passed in an anonymous array into the block. The creation of the
anonymous array seems to be the expensive step here. If I do the same
with the sub method it's even slower that the map method.
hp
--
_ | Peter J. Holzer | I know I'd be respectful of a pirate
|_|_) | Sysadmin WSR | with an emu on his shoulder.
| | | hjp@hjp.at |
__/ | http://www.hjp.at/ | -- Sam in "Freefall"
------------------------------
Date: Sun, 24 Jun 2007 08:37:53 GMT
From: Cosimo <cosimo@cpan.org>
Subject: Device::Modem v1.48 released to CPAN
Message-Id: <JK598v.1z1t@zorch.sf-bay.org>
Version 1.48 of Device::Modem perl extension has been released to CPAN,
and should be available at your local CPAN mirror soon.
Last changes
-------------
1.47 => 1.48 Sun Jun 24 09:30:16 CEST 2007
- atsend() method made more reliable with longer commands
(ex. longer sms messages).
Thanks to Ben Knight for his bug report and patch.
1.45 => 1.47 Thu Apr 20 22:16:17 CET 2006
- Sensible speedup in the command/response cycle.
Thanks to Ed Wildgoose for his contribution.
What it is?
------------
Device::Modem is a perl extension to talk to AT compliant devices via
serial ports. It should be enough platform independent as you need.
Prerequisites
-------------
+ working perl installation >= 5.005_03
+ Device::SerialPort >= 0.19 (Win32::SerialPort on Windows)
+ a modem or AT-compliant device if you want to use
it for some real work
Installation
------------
This module installs like all other good old perl modules:
$ perl Makefile.PL
$ make
$ make test
$ make install
Licensing terms
---------------
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
Additionally, this is BETA software, so use it at your own risk,
and without ANY warranty!
For any need of commercial support and/or licensing, please contact
me directly: Cosimo Streppone <cosimo at cpan dot org>
Advertising :-)
---------------
Check out also Device::Gsm module from the same author
to work with GSM devices connected via serial port.
--
Cosimo
------------------------------
Date: Sun, 24 Jun 2007 15:14:04 GMT
From: Michael Carman <mjcarman@mchsi.com>
Subject: Re: How can I overload the build in array type?
Message-Id: <0Tvfi.117879$n_.51688@attbi_s21>
On 6/23/2007 9:33 PM, Ilias Lazaridis wrote:
> On Jun 23, 5:13 pm, Michael Carman wrote:
>> On 6/22/2007 3:09 AM, Ilias Lazaridis wrote:
>>
>>> is there a similar module to overload the classes of build in types
>>
>> You can't overload sigils but you can use tie() to create your own
>> implementation of the built in data types.
>
> [This] does not seem to be the construct I am searching for (I would
> need a one-liner per module to activate the change, e.g. something
> like "use oveloadarray".
Overloading works because Perl knows what class a variable has been blessed
into. It can interpret operations on that variable based on the class. The $@%
sigals aren't operators. They provide the context in which a variable should be
evaluated. Even if you could overload "@" what would you expect to happen when
you wrote C<$data[0]> or C<$#data>?
> The most important use case would be to enable array pointer creation
>
> my $data = []; # assigns an "My::Array" pointer
my $data = [];
tie @$data, 'My::Array';
Or, if you want to be Lazy:
package My::Array;
sub newref {
my $class = shift;
tie my @array, $class;
return \@array;
}
# tie() implementation ...
package main;
my $data = My::Array->newref();
> The direct "sigil overload" has 2nd priority:
>
> my @data; # isa "My::Array"
tie my @data, 'My::Array';
Is there a reason that won't work for you? If you're really obsessed with this
you could probably write a source filter to do it, but I wouldn't recommend it
as anything other than a learning exercise.
-mjc
------------------------------
Date: Sun, 24 Jun 2007 15:49:10 -0000
From: "algis.m" <algis.m@gmail.com>
Subject: Lost about SOAP::Lite
Message-Id: <1182700150.784691.89390@g4g2000hsf.googlegroups.com>
Hello everyone,
I'm lost about SOAP::Lite.
When I create a SOAP service via
my $service = SOAP::Lite -> service($wsdl_location);
sometimes I get SSL timeout error, so I think I need to increase
timeout.
But when I do create service via:
my $service = SOAP::Lite -> proxy( $wsdl_location, timeout =>
$many_seconds );
I get error from my SOAP server: "POST method is not supported".
I need to somehow solve this. Does anyone have any ideas?
-A.
------------------------------
Date: Sun, 24 Jun 2007 13:23:36 +0200
From: Michele Dondi <bik.mido@tiscalinet.it>
Subject: Re: Newbie Question
Message-Id: <loks73t97e8t1l0gkf9g88l7qku2riqhhv@4ax.com>
On Sun, 24 Jun 2007 12:54:31 +0800, "Amy Lee"
<openlinuxsource@gmail.com> wrote:
>Subject: Newbie Question
Yes, *which* question? (That is, *please* put the subject of your post
in the Subject.)
>I make a small perl script to find the shell script, one of parts is like
>this:
Seeing what you pasted below, the fact that what you're looking for
happens to be a *shell script* is irrelevant.
>... ...
I hope that those dots comprise
use strict;
use warnings:
because otherwise the first, single and best advice I can give you is
to do so.
>my $ROOT="/root"
>
>print "Please enter the shell script name: ";
> my $ANSWER=<STDIN>;
chomp(my $ANSWER=<STDIN>); # See perldoc -f chomp
Handles are not autochomped by default (yet).
> until (-e "$ROOT/$ANSWER")
> {
> print "Error: Couldn't find the specific shell script.\n";
> print "Please enter the shell script name: ";
> my $ANSWER=<STDIN>;
> }
You may be interested in
perldoc -f redo
perldoc -f last
for an alternative and IMHO simpler syntax.
Michele
--
{$_=pack'B8'x25,unpack'A8'x32,$a^=sub{pop^pop}->(map substr
(($a||=join'',map--$|x$_,(unpack'w',unpack'u','G^<R<Y]*YB='
.'KYU;*EVH[.FHF2W+#"\Z*5TI/ER<Z`S(G.DZZ9OX0Z')=~/./g)x2,$_,
256),7,249);s/[^\w,]/ /g;$ \=/^J/?$/:"\r";print,redo}#JAPH,
------------------------------
Date: Sun, 24 Jun 2007 13:57:47 +0200
From: Michele Dondi <bik.mido@tiscalinet.it>
Subject: Re: Newbie Question
Message-Id: <ftms73pjobfik7ppda2ff828ss535reajl@4ax.com>
On Sun, 24 Jun 2007 13:55:38 +0800, "Amy Lee"
<openlinuxsource@gmail.com> wrote:
>Thank you very much, but why I can't add my() declare in the "until"
>function?
C<until> is not a function, but a loop control construct. And you
*can* declare a variable with C<my> in its block. Though it will be a
different variable from the one you expect to. Read "Coping with
Scoping" at <http://perl.plover.com/FAQs/Namespaces.html>.
Michele
--
{$_=pack'B8'x25,unpack'A8'x32,$a^=sub{pop^pop}->(map substr
(($a||=join'',map--$|x$_,(unpack'w',unpack'u','G^<R<Y]*YB='
.'KYU;*EVH[.FHF2W+#"\Z*5TI/ER<Z`S(G.DZZ9OX0Z')=~/./g)x2,$_,
256),7,249);s/[^\w,]/ /g;$ \=/^J/?$/:"\r";print,redo}#JAPH,
------------------------------
Date: Sun, 24 Jun 2007 09:13:02 GMT
From: Roedy Green <see_website@mindprod.com.invalid>
Subject: Re: Portable general timestamp format, not 2038-limited
Message-Id: <35bs73dkp4p00ihq4q7ibgh3o460pk3nsp@4ax.com>
On Fri, 22 Jun 2007 13:33:04 -0700, James Harris
<james.harris.1@googlemail.com> wrote, quoted or indirectly quoted
someone who said :
>1) subsecond resolution - milliseconds or, preferably, more detailed
>2) not bounded by Unix timestamp 2038 limit
>3) readable in Java
>4) writable portably in Perl which seems to mean that 64-bit values
>are out
>5) readable and writable in Python
>6) storable in a free database - Postgresql/MySQL
Unix gets in trouble in 2038 only with 32-bit timestamps. Java's
64-bit longs are fine.
If you need code to create timestamps, you can modify parts of BigDate
to run in Perl or Python.
see http://mindprod.com/products1.html#BIGDATE
To get more detailed, just use a unix long timestamp multiplied by
1000 to track in microseconds.
You can use MS nanosecond timestamps. see
http://mindprod.com/products1.html#FILETIMES
just store them as longs in the database. The only catch is ad-hoc
queries won't work with them.
JDBC out the box should be fine.
one of :
DATE java.sql.Date
TIME java.sql.Time
TIMESTAMP java.sql.Timestamp
BIGINT long
will be what you need.
--
Roedy Green Canadian Mind Products
The Java Glossary
http://mindprod.com
------------------------------
Date: Sun, 24 Jun 2007 08:15:38 GMT
From: grue@mail.ru (Timofei Shatrov)
Subject: Re: The Modernization of Emacs: terminology buffer and keybinding
Message-Id: <467e27f1.6428764@news.readfreenews.net>
On Sun, 24 Jun 2007 04:57:20 -0000, Twisted <twisted0n3@gmail.com> tried to
confuse everyone with this message:
>On Jun 23, 2:04 am, Robert Uhl <eadmun...@NOSPAMgmail.com> wrote:
>> Of course, emacs doesn't take years of mastery. It takes 30, 40
>> minutes.
>
>I gave it twice that, and it failed to grow on me in that amount of
>time.
>
>> > Besides, ANY interface that involves fumbling around in the dark
>> > trying to find a light switch is clunky.
>>
>> That sounds like vi, not emacs.
>
>That sounds like any application where you need to read the help, but
>"f1" does not bring up a separate help window, switchable with the
>main one using alt-tab or the mouse, and navigable using arrows,
>pageup, pagedn, and the mouse. The result of that is invariably that
>when the document has the focus, the help is open to "help on
>switching windows" rather than whatever you need it to be on once the
>document has the focus. You can read the help on doing what you want
>to do with the document, but to apply it you need to transfer focus
>back to the document. If doing that isn't second-nature, you have to
>navigate the help away from where you need it to get the focus back to
>the document. Now the focus is on the document, but the help you need
>isn't displayed next to it anymore. Frustrating? You can't begin to
>imagine, I suspect. Apparently, some people are born somehow able to
>avoid this problem without having to memorize one or the other piece
>of help. You're clearly one of those. I am equally clearly NOT one of
>those. Of course, if emacs let you keep THREE windows open and visible
>at the same time, instead of being limited to one or a horizontally
>split two ... and a cramped 80x10 or so each, at that ...
What an idiot. At least get yourt facts straight before posting such bullshit.
--
|Don't believe this - you're not worthless ,gr---------.ru
|It's us against millions and we can't take them all... | ue il |
|But we can take them on! | @ma |
| (A Wilhelm Scream - The Rip) |______________|
------------------------------
Date: Sun, 24 Jun 2007 10:36:35 +0100
From: David Golden <david.golden@oceanfree.net>
Subject: Re: The Modernization of Emacs: terminology buffer and keybinding
Message-Id: <_Wqfi.20503$j7.378099@news.indigo.ie>
Timofei Shatrov wrote:
> What an idiot. At least get yourt facts straight before posting such
> bullshit.
I think at this stage it's quite reasonable to assume he's trolling, and
recycling old trolls, too. Certainly looks like someone very like him
used to haunt rec.games.roguelike.development as "Neo" and "Twisted
One", in the 2005 era. Of course, by bothering to point this out, I'm
giving him more attention, the recognition he presumably craves, my
bad.
http://groups.google.com/group/rec.games.roguelike.development/msg/6f0fac979ef1d117
"""
Message-ID: <D56dnQatM7JCLN3fRVn-tA@rogers.com>
Date: Tue, 22 Mar 2005 19:00:06 -0500
From: Twisted One <twisted...@gmail.invalid>
Emacs doesn't let you do that either. It lets you have exactly two
panes.
"""
http://groups.google.com/group/rec.games.roguelike.development/msg/cfd723fbdc4a93f8
"""
From: David Damerell <damer...@chiark.greenend.org.uk>
Date: 23 Mar 2005 13:22:00 +0000 (GMT)
Message-ID: <4Vw*ETfKq@news.chiark.greenend.org.uk>
Quoting Twisted One <twisted...@gmail.invalid>
>Emacs doesn't let you do that either. It lets you have exactly two
>panes.
No, this is completely false.
"""
... So, probably deliberately trolling, or just maybe a learning
difficulty - literally (corrected on multiple occasions, still
failed to learn).
------------------------------
Date: Sun, 24 Jun 2007 13:30:20 +0100
From: Martin Gregorie <martin@see.sig.for.address>
Subject: Re: The Modernization of Emacs: terminology buffer and keybinding
Message-Id: <0o42l4-t81.ln1@zoogz.gregorie.org>
Twisted wrote:
> At least Windows 3.1 had most apps have the same keys for the vast
> majority of commands, and those were the right keys. Emacs has all the
> applications have the vast majority of their commands use the same
> WRONG keys. Including whatever you'd use to rebind them. And the help
> you'd use to find out what the damn keys are in the first place. ;)
>
You're mis-remembering this.
Apple, first with the Lisa and then with the Mackintosh, had extremely
consistent menus, menu shortcuts and other key assignments. It was
possible to teach almost anybody to use them in 15 minutes flat. A major
reason for the consistency was the Programmer's Toolbox, a piece of ROM
that contained all the stuff an application needed to handle keyboard,
mouse and menus. It was there and easy to use, so of course all
applications programmers used it.
Windows 3 and 3.1 were the first usable Windows versions. Windows 1 and
2 were a bad jokes. Win/286 worked but had no applications. Win 3.x
worked a lot better. However, it lacked any equivalent of the
Programmers Toolbox and as a result the applications were anything but
consistent. MS applications were self-similar, but other apps used
wildly divergent ideas about menu structures, shortcuts and key
assignments. Compare 3.x versions of Word with Wordperfect, or the
Borland IDEs and this is obvious.
MS finally kicked applications providers into more-or-less consistency
but that wasn't before Win 95 appeared and they then spoilt the record
by arbitrary and capricious menu changes as each version of MS Office
appeared.
--
martin@ | Martin Gregorie
gregorie. | Essex, UK
org |
------------------------------
Date: Sun, 24 Jun 2007 13:10:52 +0100
From: Martin Gregorie <martin@see.sig.for.address>
Subject: Re: The Modernization of Emacs: terminology buffer and keybinding
Message-Id: <ej32l4-051.ln1@zoogz.gregorie.org>
Twisted wrote:
> On Jun 23, 10:36 am, Martin Gregorie <mar...@see.sig.for.address>
> wrote:
>
> Actually, what I prefer in (2D and 3D) visual design apps is the
> ability to snap to some kind of grid/existing vertices, and to zoom in
> close. Then small imprecisions in mouse movement can be rendered
> unimportant.
>
That might work for visual design apps, but it doesn't for CAD, where
you may want to point to an arbitrary position with a (scaled) accuracy
of microns.
The fact remains that mechanical mice do jump when you click them,
though optical mice are better in this respect.
> The problem of course being the complete exclusion of type 1 users.
>
Totally untrue. They are the people that all the standard GUIs are
designed for and some (e.g Mackintosh) are very fast to learn. The
exclusion is down to the way that the purveyors of GUIs keep spreading
bullshit about how any untrained person can use a computer and never
mess it up or loose data. Thats not true and never can be: a computer is
the most complex device the average person will own or use and is likely
to retain that title for the foreseeable future.
I grant you that type 2 users are rare, but I think flight simulators
may fit this case when used for training.
> One with a bog-standard UI but also a "console" or command prompt,
> scripting language, and customizable bindings?
>
Not really. What's needed is a single interface that can be used by
anybody from beginner to expert and that, in the case of an error, shows
precisely where it got, what caused the action to fail to complete and
that allows the user to continue from that point without having to
undo/redo the bits that were successful. Its not easy, but it can be done.
> ROM BASICs and QBasic (on any really ancient microcomputer, and old
> pre-Windows PCs, respectively; the former came with printed manuals
> and you could just run prepackaged software from disks very easily;
>
Hang on: you don't read manuals. You object to using tutorials and to
buying books, so its a bit precious to claim this example.
> * The word processor with the usual interface where I can define
> logical styles, then change them in only one place and affect every
> pre-existing occurrence retroactively.
>
Thats been in Word since DOS days and is part of OpenOffice. Its called
a "style sheet". The only WPs I've used that didn't use them were
Wordperfect, WordStar, DEC WPS+ and the Wang dedicated WP systems. All
were horrid to varying degrees, with Wordperfect and Wordstar tying for
worst.
> * The word processor with the usual interface where I can also view an
> underlying markup representation and hand-hack that,
>
You're thinking of Wordperfect and its 'Reveal Codes' function. That was
the worst idea I've ever seen in a WP, matched only by the illogically
arranged set of 12 function keys, each with 4 shifts.
> and which likely has the capabilities of the first two as a direct
> consequence of the implied architecture.
>
It didn't. 'Reveal codes' could only let you inspect the current
document. Unfortunately it was essential to use it because some input
sequences could completely mess up the formatting and the only way to
recover was via 'Reveal codes'. The effect was similar to making a data
entry clerk use a hex editor on a database to fix keyboarding errors.
NOTE: I'm not talking about secretaries using WordPerfect. Those that
used it hated it. I'm talking about the experience of IT professionals
writing structured text, e.g. system specifications.
> * The operating system where you can do powerful stuff with a command
> line and a script or two, but can also get by without either. (Windows
> fails the former. Linux fails the latter.)
>
Here you're talking about two different interfaces again. The nearest
I've seen to good solutions at OS level were the CL interface provided
by ICL's VME mainframes and IBM's AS/400 systems. The latter was
particularly good, with a single unified text screen interface which
provided help screens, menus and a command line. You could search for
and find commands via a menu structure, and then use form filling to
provide the arguments, with help available at any stage. If you were
writing a script the entire menu and form filling system was available
from within the text editor - but when you hit ENTER the completed
command was written into your script instead of being executed.
Both OS/400 and VME were very consistent in the way they assigned
command names and argument keywords. In both OSen it was possible to
think "if there's a command to do this it will be called BLAHBLAH", type
the name, hit the command completion key and have the argument entry
screen pop up ready to be filled in.
BTW, in both OSen this capability applied to user-written scripts and
programs as well as to the standard command set. Both could claim to be
object oriented: the VME command language was derived from Algol-68,
arguably the granddaddy of all OO programming languages.
> * For that matter, the operating system whose GUI takes the concept
> behind OLE to its logical conclusion, and lets the user separately
> choose and configure their text editing, this-editing, that-editing,
> whosit-viewing,
>
The AS/400 editor did exactly that. There was only one, but it swapped
personality to match the task and was language-aware as well as
application aware. It produced form-filling interfaces to help you write
command scripts. If you were writing a program it gave language-specific
prompts and could run syntax checks on each statement as it was entered.
If you didn't want any of that, it would just quietly accept input like
any other text editor.
> The bog-standard alt, this, that sequences on Windows "come close";
> they do make the menus display, but otherwise they do exactly what you
> want, and you can ignore the menus blinking around in your peripheral
> vision.
>
No they don't: you can't easily string them together to act as a single
command and the error diagnosis and reporting is remarkably poor. Same
goes for Gnome, so I'm not particularly bashing Windows here.
--
martin@ | Martin Gregorie
gregorie. | Essex, UK
org |
------------------------------
Date: Sun, 24 Jun 2007 12:56:42 +0200
From: "Dr.Ruud" <rvtol+news@isolution.nl>
Subject: Re: uninitialized value
Message-Id: <f5lpn2.as.1@news.isolution.nl>
jan09876@hotmail.com schreef:
> __DATA__
> #title -fruit-#
> orange => orange
Do you realise that the lines starting with '#' are not comment lines?
--
Affijn, Ruud
"Gewoon is een tijger."
------------------------------
Date: 6 Apr 2001 21:33:47 GMT (Last modified)
From: Perl-Users-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin)
Subject: Digest Administrivia (Last modified: 6 Apr 01)
Message-Id: <null>
Administrivia:
#The Perl-Users Digest is a retransmission of the USENET newsgroup
#comp.lang.perl.misc. For subscription or unsubscription requests, send
#the single line:
#
# subscribe perl-users
#or:
# unsubscribe perl-users
#
#to almanac@ruby.oce.orst.edu.
NOTE: due to the current flood of worm email banging on ruby, the smtp
server on ruby has been shut off until further notice.
To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.
#To request back copies (available for a week or so), send your request
#to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
#where x is the volume number and y is the issue number.
#For other requests pertaining to the digest, send mail to
#perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
#sending perl questions to the -request address, I don't have time to
#answer them even if I did know the answer.
------------------------------
End of Perl-Users Digest V11 Issue 569
**************************************