r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Core] Discuss core issues

Ladislav
15-Oct-2006
[5715]
Oldes - you *can* convert money! to decimal as follows: second  $84.36 
; == 84.36
Anton
15-Oct-2006
[5716]
I wish I could divide the money in my bank account into $10 amounts 
and then just multiply them, but the bank won't let me. I don't know 
why.
Oldes
15-Oct-2006
[5717x4]
Ok, you are right, I know I can do 10 * $10 and it's probably logical, 
but anyway, for me money is a number and this is new form me:
>> second (to-money 777777 / 9220)
== 84.3575921908894
(anyway, I'm not going to use money datatype)
and it should be possible to do $10 * $10 as in the Louis' example 
above, the number 9220 should be money datatype as well as it is 
number of roupies per dollar  (if I understand it well) so he should 
use RP$9220 if he is using money! for dollars
I doubt, someone is using this feature (currency identifier) with 
money datatype:-)
Anton
15-Oct-2006
[5721x4]
Louis' example did not multiply two money!s.
and I strongly disagree that you should be able to multiply two money!s.
A currency exchange rate (such as Louis' 9220) includes, as part 
of its definition, two distinct currencies (eg. RP and USD).
Anyway, I don't want to argue this, you should know about how to 
handle units. Everyone should know that 10 Metres x 10 Metres does 
not equal 100 Metres.
Louis
15-Oct-2006
[5725]
All this is very interesting. I appreciate all of your comments. 
Anyway I have a workaround to the problem. First of all, however, 
I need to tell you why I wanted to be able to convert dollars back 
to rupiahs. It was just to save space in the database. I enter rupiahs, 
as that is the currency I am using right now, but the software converts 
it to dollars and saves the dollar amount to the database. To find 
out the  rupiah amount later if needed, I was going to do a reverse 
conversion. The other solution is to simply record the rupiah amount 
in the database also, so that is what I'll do.
Oldes
15-Oct-2006
[5726]
by the way, you may use the conversions on the side of the database 
during select
Louis
15-Oct-2006
[5727]
Oldes, please explain. I do not understand what you mean.
Oldes
15-Oct-2006
[5728]
mysql> create table test (dolars float(2));
Query OK, 0 rows affected (0.22 sec)
mysql> insert into test values(777777);
Query OK, 1 row affected (0.03 sec)
mysql> select dolars,(dolars / 9220) as rupias from test;
+--------+-----------------+
| dolars | rupias          |
+--------+-----------------+
| 777777 | 84.357592190889 |
+--------+-----------------+
1 row in set (0.01 sec)
Louis
15-Oct-2006
[5729x2]
So I could get the reverse conversion I want if I were using mysql?
Right now I'm simply using a rebol object database. It would be very 
difficult to change this particular script. But if I ever do something 
like this again I may consider using mysql.
Oldes
15-Oct-2006
[5731x2]
If you are using Rebol, you should probably use decimals, not money 
datatype
(to store it in the database)
Louis
16-Oct-2006
[5733x3]
Oldes, yes. I can see that you are right. Store in decimal. Display 
in money.

>> r: 777777
== 777777
>> x: 9220
== 9220
>> d: r / x
== 84.3575921908894
>> d * x
== 777777.0
>> to-money d
== $84.36
>>
I've converted the script to decimal, and it works great!
Decimal is converted to money for reports.
BrianH
16-Oct-2006
[5736]
Watch out though - your problem wasn't a decimal vs. money problem, 
it was a rounding problem. If you are going to store the dollar equvalent 
in a database make sure to store it as a floating-point value rather 
than a fixed-point like SQL's decimal type. Otherwise you are going 
to run into the same problem when you store the data and retrieve 
it again.
Louis
16-Oct-2006
[5737]
Yes, I understand this. I think I've done this right. View, however, 
I don't understand.
BrianH
16-Oct-2006
[5738]
You and me both.
Jerry
19-Oct-2006
[5739]
How do I use the CALL native function to call a external program 
via shell and wait for the program to finish. I try the /wait refinement, 
but it does not work.
* Example: 
call/wait "regedt32 /E C:\backup.reg"
PeterWood
19-Oct-2006
[5740x4]
It appears to be something specific to the application being called. 
Both call/wait "cmd" and call/wait "C:\Program Files\rebol\view\rebol.exe" 
worked as expected for me though call/wait "regedt32" didn't.
Regedt32 is returning a 0 completion code to Rebol as it is being 
loaded which Rebol returns from the call:
>> call/wait "C:\Windows\System32\regedt32.exe"
== 0
This suggests that regedt32 is simply a loader for another program.
From http://en.wikipedia.org/wiki/Windows_Registryit seems that 
regedt32.exe invokes regedit.exe.


The page also hints that it may be better to use reg.exe to update 
the registry from a script
Jerry
19-Oct-2006
[5744x2]
Thank you, Peter.
I've just got an Out-Of-Memory error.

Is there any way to have more virtual memory for REBOL to use. In 
Java, I can use command-line options to ask the OS to allocate more 
memory for my app. In REBOL, I have no idea.
Maxim
19-Oct-2006
[5746]
on windows?
Gregg
19-Oct-2006
[5747]
REBOL should just use all it needs. What are you trying to do?
Maxim
19-Oct-2006
[5748x3]
on windows, the OS should give you all the VM until the OS runs out. 
 I've had REBOL use more than 1 GB of RAM... without doing anything 
special.
(obviously, perfomance drops dramatically... but that's the OS's 
fault)
the machine only had 512MB of physical RAM btw.
Graham
19-Oct-2006
[5751]
I've seen this happen before ... brings windows to a stop :(
Maxim
19-Oct-2006
[5752x2]
you just need to have more VM setup than all apps need... at least 
it wont crash windows.
but like you say... it crawls... on its back.
Allen
19-Oct-2006
[5754x2]
Jerry, was it a "real" memory error, or where you just trying to 
decompress damaged data?
>> d: compress "jsagkjdsjhgkjdshgkjdhf"
== #{789CCB2A4E4CCFCE4A29CECA00536032230D00688B090D16000000}
>> decompress random  d
** Script Error: Not enough memory
** Near: decompress random d
Jerry
19-Oct-2006
[5756]
About the out-of-memory error, the story is ...


I am trying to compare two complete Windows Registry, which are both 
huge. I export them into files (in little-endian 16-bit Unicode), 
which are both 300+ MB. To save the space and to make REBOL easy 
to handle them, I encode these files into UTF-8. they are now 150+ 
MB. I try to load these two UTF-8 files into memory:

>> lines1: read/lines %/c/reg1.reg

== ["Windows Registry Editor Version 5.00" "" "[HKEY_LOCAL_MACHINE]" 
"" ...
>> lines3: read/lines %/c/reg2.reg
== ** Script Error: Not enough memory
** Where: halt-view
** Near: halt 
>> rebol/version
== 1.3.2.3.1
Maxim
19-Oct-2006
[5757x4]
have you tried not using lines?  its pretty easy to chop them up 
after...
not saying /lines has an issue, but I have loaded 700MB ascii files 
on a 1GB RAM computer... 150 is peanuts.  but I never use the /lines 
argument.
you should use the stats to see if something strange is going on. 
 It will give you the amount of RAM REBOL is currently using.
>> stats
== 4432555
Allen
19-Oct-2006
[5761]
There have been some issues with read/lines .  What REBOL version 
are you using? http://www.rebol.net/cgi-bin/rambo.r?sort=1&limit=1&cmd=Search&id=&pattern=read%2Flines
Maxim
19-Oct-2006
[5762]
just above he quoted:

 >> rebol/version
== 1.3.2.3.1
Allen
19-Oct-2006
[5763]
[Allen mumbles something about his glasses]
Maxim
19-Oct-2006
[5764]
lol  :-)