60 hours divided by 60 is 2 minutes?

2002-10-28 Thread MultiCopy Rotterdam-Zuid
Hi all,

I have a 5MB file with about 55 lines that need to be processed by a
script. A simple script that deletes a line if the previous line has the
same contents. That takes more than 60 hours to complete. So I thought I
divide the file into smaller files of about one 60th of the total number of
lines. But instead of the expected hour of processing time, it took 2
minutes for each file to complete.

I understand processes are faster with less data in memory, but I never
would have thought the difference would be this big.

Any thoughts on how this is possible and what we can learn from it when
making programs?

Terry

___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution



RE: Revolution 2.0 to ship in November

2002-10-28 Thread Piero Menno'

NOVEMBER WHEN?
GIVE US AT LEAST THE WEEK IN WHICH REV 2.0 WILL BE AVAILABLE...






 PRODUCT ANNOUNCEMENT: REVOLUTION 2.0 TO SHIP IN NOVEMBER
 Latest release with groundbreaking new features is in testing.




___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution



Re: Revolution 2.0 to ship in November

2002-10-28 Thread Richard Gaskin
Piero Menno' wrote:

 
 NOVEMBER WHEN?
 GIVE US AT LEAST THE WEEK IN WHICH REV 2.0 WILL BE AVAILABLE...

You haven't shipped much software, have you?  :)

I would count on the 30th, and then you'll be pleasantly surprised if it's
earlier.

-- 
 Richard Gaskin 
 Fourth World Media Corporation
 Custom Software and Web Development for All Major Platforms
 Developer of WebMerge 2.0: Publish any database on any site
 ___
 [EMAIL PROTECTED]   http://www.FourthWorld.com
 Tel: 323-225-3717   AIM: FourthWorldInc

___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution



Re: 60 hours divided by 60 is 2 minutes?

2002-10-28 Thread David Vaughan

On Friday, Oct 25, 2002, at 21:35 Australia/Sydney, MultiCopy 
Rotterdam-Zuid wrote:

Hi all,

I have a 5MB file with about 55 lines that need to be processed by 
a
script. A simple script that deletes a line if the previous line has 
the
same contents. That takes more than 60 hours to complete. So I thought 
I
divide the file into smaller files of about one 60th of the total 
number of
lines. But instead of the expected hour of processing time, it took 2
minutes for each file to complete.

Terry

I am a bit puzzled by your result in the first place. I generated 
55 lines with random data which had some chance of duplication in 
the next line. I then processed it to remove duplicates. The latter 
task took a whole four seconds. Not two minutes and not 60 hours; for 
the whole file, not for one sixtieth. Were you using repeat for each?

regards
David

I understand processes are faster with less data in memory, but I never
would have thought the difference would be this big.

Any thoughts on how this is possible and what we can learn from it when
making programs?

Terry

___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution



___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution



Re: 60 hours divided by 60 is 2 minutes?

2002-10-28 Thread Jan Schenkel
--- MultiCopy Rotterdam-Zuid [EMAIL PROTECTED]
wrote:
 Hi all,
 
 I have a 5MB file with about 55 lines that need
 to be processed by a
 script. A simple script that deletes a line if the
 previous line has the
 same contents. That takes more than 60 hours to
 complete. So I thought I
 divide the file into smaller files of about one 60th
 of the total number of
 lines. But instead of the expected hour of
 processing time, it took 2
 minutes for each file to complete.
 
 I understand processes are faster with less data in
 memory, but I never
 would have thought the difference would be this big.
 
 Any thoughts on how this is possible and what we can
 learn from it when
 making programs?
 
 Terry
 

Hi Terry,

Though in extreme cases it might have to do with the
OS swapping the memory to disk at an incredible rate,
I'm more inclined to believe that it might have
something to do with the algorithm.
Off the top of my head, I'd process it with:

function ReadUniqueLinesFromFile pFile
  put URL pFile into tInput
  put empty into tPrevLine
  repeat for each line tLine of tInput
if tLine  tPrevLine then
  put tLine  return after tOutput
  put tLine into tPrevLine
end if
  end repeat
  delete char -1 of tOutput
  return tOutput
end ReadUniqueLinesFromFile

And that should work pretty quickly.

Hope this helped,

Jan Schenkel.

=
As we grow older, we grow both wiser and more foolish at the same time.  (La 
Rochefoucauld)

__
Do you Yahoo!?
Y! Web Hosting - Let the expert host your web site
http://webhosting.yahoo.com/
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution



Re: 60 hours divided by 60 is 2 minutes?

2002-10-28 Thread Richard Gaskin
David Vaughan wrote:

 I have a 5MB file with about 55 lines that need to be processed by
 a
 script. A simple script that deletes a line if the previous line has
 the
 same contents. That takes more than 60 hours to complete. So I thought
 I
 divide the file into smaller files of about one 60th of the total
 number of
 lines. But instead of the expected hour of processing time, it took 2
 minutes for each file to complete.
 
 Terry
 
 I am a bit puzzled by your result in the first place. I generated
 55 lines with random data which had some chance of duplication in
 the next line. I then processed it to remove duplicates. The latter
 task took a whole four seconds. Not two minutes and not 60 hours; for
 the whole file, not for one sixtieth. Were you using repeat for each?

Also, when it comes to adding or deleting, working with arrays is much
faster than with large chunks.  Remember that you can use arays and chunks
interhangeably with the split and combine commands.
 
-- 
 Richard Gaskin 
 Fourth World Media Corporation
 Custom Software and Web Development for All Major Platforms
 Developer of WebMerge 2.0: Publish any database on any site
 ___
 [EMAIL PROTECTED]   http://www.FourthWorld.com
 Tel: 323-225-3717   AIM: FourthWorldInc

___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution



question about sockets

2002-10-28 Thread Björnke von Gierke
sorry for my triple post earlier this day, I got some connection 
probs...

I am trying to do some connection stuff using the open socket, write to 
socket, and accept socket in their datagram form.
I run a by connecting to my own Jaguar mac, but I only can get one 
message through and I really don't know what's wrong...

first I open the outgoing socket:
  open datagram socket to 127.0.0.1:4038|local

then I start with listening, the message just writes the socket and the 
datagram into a field:
  accept datagram connections on port 4038 with message contact

first output comes from the accept command, as it sends the name and 
identifier of the socket:
191.255.242.136|99184744

finally I send a message:
  write field text to socket 127.0.0.1:4038|local


second output is the name of the socket and my message:
127.0.0.1|99184744 this text is written in field text

I know have two open sockets, one from the accept and one from the open 
port:
4038
127.0.0.1:4038|local

but I cannot send a second message, as just nothing happens if I try to 
do so :(
Does it somehow shut close? Is it a bug? Probably just me not getting 
how things are supposed to work...

so could someone enlighten me? Il appreciate it, promised...

___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: question about sockets

2002-10-28 Thread Ian Summerfield
On 28/10/02 10:21 am, Björnke von Gierke [EMAIL PROTECTED] scribed:


 I am trying to do some connection stuff using the open socket, write to
 socket, and accept socket in their datagram form.
 I run a by connecting to my own Jaguar mac, but I only can get one
 message through and I really don't know what's wrong...

 
 first I open the outgoing socket:
  open datagram socket to 127.0.0.1:4038|local

You don't need to open the socket,  just use accept datagram alone.

You need to do something strange,  don't ask me why but I know it works.  In
your contact handler do the following:

 on contact fromWho, what
   -- do all your data stuff stuff here

   -- OS X fix
if the platform  the systemversion contains MacOS 10 then
  close socket 4038
  accept datagram connections on port 4038 with message contact
end if
 end contact


___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution



Playing with the imageSource

2002-10-28 Thread malte brill
Hi List,
I created a little stack.
You might type a text in a field and this Text will create a scroll line
like in the old 16Bit (atari) Demos. If you are interested to take a glimpse
on it, you might download it at www.derbrill.de/revstack/newfont.rev.bin .
Any comments on optimizing the code would be nice.

(by the way... Has anyone done some approches on fractals and/or simple 3d
graphics in Rev, or can point me to some good tutorials?)

Have a nice day!
Malte

___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution



Re: question about sockets

2002-10-28 Thread Dar Scott

On Monday, October 28, 2002, at 03:21 AM, Björnke von Gierke wrote:


I am trying to do some connection stuff using the open socket, write to 
socket, and accept socket in their datagram form.
I run a by connecting to my own Jaguar mac, but I only can get one message 
through and I really don't know what's wrong...

There is a bug in Revolution 1.1.1 concerning datagrams.  Also there are 
features in Revolution 2.0 that will require more work.

This is based on 10.1.x and I assume it will work the same on Jaguar.

In OS X for Revolution 1.1.1 you get a false message when you do the accept 
and you get only one more.

The workaround is two parts:  You need to throw away the false message and 
reopen the accept.  The false message is always empty, so if yours is never 
empty, you can test on that in deciding to throw away a datagram.  After 
you get the real message you need to close the accept and open it again.

To be ready for Revolution 2.0, you should also close socket the 
connectionID you get with the callback and ignore the error.  (Or test on 
version.  Or make a note to yourself.)

On Revolution 2.0 you will be able to send datagrams back and receive 
datagrams sent back on that same connection identified by the 
connectionID in the callback.  To support this a connection is opened for 
you just before the callback.

I have heard a rumor of another potential problem that might show up in 2.
0.  A Revolutionary made several standalones using the new engine and ran 
them on the same computer.  One sent datagrams to the others.  Sometimes 
one of the others would not receive the datagram until its window was 
clicked.  (I may have added my own confusion to this rumor.)  There have 
been lots of engine changes recently, so this may have been taken care of.

Other than these OS X problems which will go away soon, the use of 
datagrams looks very good on Revolution.

Dar Scott

___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: question about sockets

2002-10-28 Thread Dar Scott

On Monday, October 28, 2002, at 04:25 AM, Ian Summerfield wrote:


first I open the outgoing socket:
 open datagram socket to 127.0.0.1:4038|local


You don't need to open the socket,  just use accept datagram alone.


I assumed he meant for the sending part of the set up, perhaps in another 
stack for testing (but maybe on the same card for experimenting).  If that 
is the case, he would need to open the socket.

The sender open and the accept open can occur in any order.  The accept has 
to occur before the sender write, of course.

A simplification for experimenting:  If performance is not an issue and 
datagrams are not sent that often, the sending handler can simply 
open-write-close every time, simplifying the first pass of design.

Another thing I didn't mention before:  I think watching the openSockets() 
while trying this as Bjornke seems to be doing is a very good idea.

Dar Scott

___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Mouse lock

2002-10-28 Thread Bruce Robertson
 Hi Bruce,
 
 Rev 1.1.1 is known to have a few issues with the
 Appearance Manager that shipped with MacOS X 10.2
 Jaguar. Have you tried changing the 'Look and feel' to
 'MacOS Emulated' in the menu 'View' ?
 
 Hope this helped,

OK, that sorta fixes the problem. But the text selection is kind of wonky.

Now I have to figure out how to use applescript tell statements

___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution



Re: 60 hours divided by 60 is 2 minutes?

2002-10-28 Thread Rob Cozens
Any thoughts on how this is possible and what we can learn from it when
making programs?


Hi Terry,

Before dealing specifically with 1 @ 60 hours vs 60 @ 2 minutes, I 
need to know if you are actually deleting each duplicate line on the 
fly?  Have you tried building a new list instead:

functon purgeDuplicates @textData
   put empty into newData
   put numToChar(30) into lastLine -- any char not in the first line 
of textData
   repeat for each line thisLine in textData
  if thisLine = lastLine then next repeat
  put thisLinereturn after newData
  put thisLine into lastLine
   end repeat
   return newData -- or write as a command and put newData into textData
end purgeDuplicates

I'd be curious to know what algorithm you used and what times the 
above handler produces.

Other things to look at:

1.  Is it possible you are maxed out in actual RAM and spending a lot 
of time reading from/writing to virtual memory?

2.  Are you passing the 55K lines of text by value or reference?

3.  Have you tried writing your handler inline with the handler that 
reads in the data so it needn't be passed at all?

Eg:
put get URL (whatever) into textData
put empty into newData
put numToChar(30) into lastLine -- any char not in the first line
repeat for each line thisLine in textData
  if thisLine = lastLine then next repeat
  put thisLinereturn after newData
  put thisLine into lastLine
   end repeat
   put newData into textData

instead of

put get URL (whatever) into textData
put purgeDuplicates(textData) into textData

(although if textData is passed by reference, the impact of item 
three is negligible).
--

Rob Cozens
CCW, Serendipity Software Company
http://www.oenolog.com/who.htm

And I, which was two fooles, do so grow three;
Who are a little wise, the best fooles bee.

from The Triple Foole by John Donne (1572-1631)
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Converting dates to Padded SQL format

2002-10-28 Thread Rob Cozens
We want  to convert

April 15, 1998

into

04/15/1998


Aloha Sannyasin,

This works for me on Mac OS9 (after setting the system control panel 
short date format to include century):

on mouseup
  get April 15, 1998
  convert it to short system date
  answer it
end mouseup
--

Rob Cozens
CCW, Serendipity Software Company
http://www.oenolog.com/who.htm

And I, which was two fooles, do so grow three;
Who are a little wise, the best fooles bee.

from The Triple Foole by John Donne (1572-1631)
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: question about sockets

2002-10-28 Thread Björnke von Gierke

On Montag, Okt 28, 2002, at 17:08 Europe/Zurich, Dar Scott wrote:


There is a bug in Revolution 1.1.1 concerning datagrams.  Also there 
are features in Revolution 2.0 that will require more work.

...
To be ready for Revolution 2.0, you should also close socket the 
connectionID you get with the callback and ignore the error.  (Or test 
on version.  Or make a note to yourself.)

On Revolution 2.0 you will be able to send datagrams back and receive 
datagrams sent back on that same connection identified by the 
connectionID in the callback.  To support this a connection is 
opened for you just before the callback.


well It seems that my testing will have to wait until after November or 
whenever 2.0 ships...
Its exactly one of those situations where you cannot use an old version 
of a program without taking a huge step when the next version ships... 
If only software where always flawless from the beginning :(

___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: question about sockets

2002-10-28 Thread Björnke von Gierke

On Montag, Okt 28, 2002, at 17:08 Europe/Zurich, Dar Scott wrote:


There is a bug in Revolution 1.1.1 concerning datagrams.  Also there 
are features in Revolution 2.0 that will require more work.

...
To be ready for Revolution 2.0, you should also close socket the 
connectionID you get with the callback and ignore the error.  (Or test 
on version.  Or make a note to yourself.)

On Revolution 2.0 you will be able to send datagrams back and receive 
datagrams sent back on that same connection identified by the 
connectionID in the callback.  To support this a connection is 
opened for you just before the callback.


well It seems that my testing will have to wait until after November or 
whenever 2.0 ships...
Its exactly one of those situations where you cannot use an old version 
of a program without taking a huge step when the next version ships... 
If only software where always flawless from the beginning :(

___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: question about sockets

2002-10-28 Thread Dar Scott

On Monday, October 28, 2002, at 03:22 PM, Björnke von Gierke wrote:


well It seems that my testing will have to wait until after November or 
whenever 2.0 ships...
Its exactly one of those situations where you cannot use an old version of 
a program without taking a huge step when the next version ships... If 
only software where always flawless from the beginning :(

The 1.1.1 version works OK on other platforms, so unless you are waiting 
for the client-server capability in UDP, that is, the ability to send a 
reply directly back to whomever sent the first datagram, then you can do 
some testing now.

Also, if your messages going back are independent and you know the computer 
and port beforehand, you are still OK in 1.1.1, just set it up the same as 
you would the other direction.

Dar Scott

___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: 60 hours divided by 60 is 2 minutes?

2002-10-28 Thread Terry Vogelaar
What Rob Cozens, David Vaughan and Jan Schenkel wrote was of course 
much better than what I wrote in my script. I thought I needed to use 
repeat with i = 2 to the number of lines... instead of repeat for 
each, because in a repeat for each loop you cannot see the previous 
line. But of course you can in the previous loop! I didn't think about 
that. Thanks.


___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Ask/Answer Problem

2002-10-28 Thread Terry Vogelaar
Robert Presender heeft op dinsdag, 29 okt 2002 om 05:29 het volgende 
geschreven:

Have a test stack with 1 fld and 1 btn.
Btn Script:
on mouseUp
  answer Please enter a name  with OK or Yes or Cancel
  put it into fld 1
end mouseUp

on mouseUp
  ask Please enter a name
  put it into fld 1
end mouseUp

Both of the above scripts work OK in  development (Application 
Overview).
A dialog  appears, appropriate data entered and the results are put 
into the field.

When the the proj is doubled clicked (Rev not opened), no dialog 
appears but the
result in the field are for each case:
1. answer plain Please enter a name
2. ask plain Please enter a name

Hello Robert,

Both the answer and ask dialog are part of the Revolution UI, which is 
not started up when you doubleclick a project with rev not open. So the 
dialogs don't appear and the contents of 'it' are not filled in by the 
dialog. I am puzzled why you get the result you get instead of 
literally it.

Solution: start Rev first or make a standalone. I don't think there is 
an other solution.

Terry


___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution