Hi
If you are already a programmer then I am not sure a book is the right thing
tbh - the manuals provided with unidata would suffice.
If you are not a programmer, then I am not sure what book would be best,
many of them are rather old. It may be better to learn general programming
I am out of the office until 03/03/2011.
I am on leave until Thursday 3rd March.
For 8.5 / Concierge issues please contact lha...@us.ibm.com
For other support issues, please contact dave.cheese...@uk.ibm.com
For all other urgent issues please contact julian.vi...@uk.ibm.com
Note: This is an
The copy I had expired on 2/28/11 and there's no current version on Rocket's
website.
Does anyone know when or if there will be an updated UV PE Linux version
available?
Bob Little
UniVerse Developer
Market America
Greensboro, NC
336-478-1694
___
It appears you can get it here:
http://www.rocketsoftware.com/u2/resources/downloads
--
Carl Dula Voice: 973-227-8440 X111
Pulsar Systems, Inc.Fax: 973-227-8440
271 US Highway 46, STE H209
I see UniData PE for Linux and UniVerse PE for Windows, but I don't see
UniVerse PE for Linux.
-bob
-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Carl Dula
Sent: Wednesday, March 02, 2011 7:32 AM
To:
Sorry, try it here...
http://www.rocketsoftware.com/u2/resources/premium/downloads/universe-linux?searchterm=universe+personal+edition+linux
- Original Message -
From: Carl Dula c...@pulsarsystems.com
To: u2-users@listserver.u2ug.org
Sent: Wednesday, March 02, 2011 7:32 AM
But this is the version which expired on Feb 28th 2011 ...
-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Carl Dula
Sent: Wednesday, March 02, 2011 12:50 PM
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] UV PE
Mike,
Look into a little utility called timeshift. I don't know if it still works with
later *nixs, I believe it's a wrapper that will run a process under any date
you want it to be.I think that's what it did.
I don't know what would happen if you started the UV server inside the time
In Rockets last newsletter - 28 Feb 2011 - they state that UniVerse 11.1 on
Linux as PE will be available real soon now...
Bob Little-4 wrote:
I see UniData PE for Linux and UniVerse PE for Windows, but I don't see
UniVerse PE for Linux.
-
Learn and Do
Excel and Share
This is some old code that I didn't write, so please don't use it for
anything profitable ...
The proposal to the group is: Due to the repeated references deep into
the PARMS tables, if this were rewritten to reference these locations as
few times as possible, IN YOUR OPINION, would there be a
On 3/2/2011 11:43 AM, Dave Laansma wrote:
This is some old code that I didn't write, so please don't use it for
anything profitable ...
The proposal to the group is: Due to the repeated references deep into
the PARMS tables, if this were rewritten to reference these locations as
few times as
Hi Dave,
Not enough information.
1. How many records does it run against?
2. How long does it take to run?
3. How massive is the PARMS data?
If 2 above is insignificant, you may be better off to let sleeping dogs
lie, rather than having to test against a full EOM run. Otherwise, I
vote for a
Hi Dave,
In general, access to an element of a dimensioned array is fast so the
frequent references to PARM(12) should not be a problem.
On the other hand, even with the benefits of field level hints, repeated
references to the same field/value may be improved by extracting the data
into a
Couldn't help but notice it was written without the += and -= constructs.
Date: Wed, 2 Mar 2011 11:43:58 -0500
From: dlaan...@hubbardsupply.com
To: u2-users@listserver.u2ug.org
Subject: [U2] Is this worth rewriting?
This is some old code that I didn't write, so please don't use it for
In a message dated 3/2/2011 9:12:57 AM Pacific Standard Time,
martinphill...@ladybridge.com writes:
Incidentally, and at the risk of starting a new war on style, this is a
great example of why developers should use equate tokens with meaningful
names rather than numbers for field
In a message dated
IF PARMS(7)102,CM#'' THEN CUMO(M)=CUMO(M)+PARMS(7)102,CM
ELSE
CUMO(M)=CUMO(M)+PARMS(12)134,CM
END
Just as a follow up, IF Not Not, is very bad style. And parsing long and
then short is as well.
This part should have been
If it works, why bother?
It IS an ugly piece of code, though.
On 02/03/2011 16:43, Dave Laansma wrote:
This is some old code that I didn't write, so please don't use it for
anything profitable ...
The proposal to the group is: Due to the repeated references deep into
the PARMS tables, if
Well -- I usually code so the 'first clause' is my 'expected outcome' --
that is, if the PARMS(7)102,CM is TYPICALLY 'not empty' -- so I would do #
THEN myself as well..
I do it as much to express the code as the 'typical path'. I also perceive
(although have never tested!) the THEN clause as
On 3/2/2011 1:34 PM, David Wolverton wrote:
So I'm curious why it would that be a bad idea to say ' # THEN'? Is
there actually any extra 'overhead'? Or is this a 'preference' issue?
Myself, I actually think of it as being 'better documented' explaining how I
think the average transaction
Begin case
Case code will never run on any machine ever again ; not worth
rewriting
Case 1
; someone will probably look at the code
The += I completely agree with. No arguments on that point at all.
But #or = ... that's the exact same amount of code! ;-)
And this example seems to point that ONE or the other is needed. That is,
you could not change their code
IF PARMS(7)102,CM # '' THEN
On 3/2/2011 2:05 PM, David Wolverton wrote:
As what if PARMS(7)102,CM = 0? 0 would 'fail' the 2nd test, but is 'not
blank'. So you cannot 'shorten' the clause at all. It either has to be =
or # in this case (not knowing anything about the data).
Adding a zero into the sum is basically a
By jove, you're right! In this example, you COULD shorten the clause and it
would work! I missed that!!
But back to the 'issue' I was raising, although in this example it's moot -
the generic statement was that 'IF ... # ... THEN' is 'bad style' ?? I
still have missed why that should be
On 3/2/2011 2:18 PM, David Wolverton wrote:
By jove, you're right! In this example, you COULD shorten the clause and it
would work! I missed that!!
But back to the 'issue' I was raising, although in this example it's moot -
the generic statement was that 'IF ... # ... THEN' is 'bad style' ??
Argh! Multi statement lines in a case construct. Shoot me now.
Sorry.
Bill Brutzman wrote:
Begin case
Case code will never run on any machine ever again ; not worth
rewriting
Case 1
The reason I ask specifically of the repeated references is, during one
of the sessions at U2UG-Denver, it was implied that each time you
reference a specific location in a table, the OS basically has to start
at the beginning of the table and 'find' its way to that location
(explained in my
Has anyone used Git and U2 - either UniVerse or Unidata - together?
Or any other suggestions for a version control - open source is preferred?
Thanks in advance,
djm
-
Learn and Do
Excel and Share
http://mvdbs.com http://mvdbs.com
--
View this message in context:
Hi Dave,
The reason I ask specifically of the repeated references is, during one
of the sessions at U2UG-Denver, it was implied that each time you
reference a specific location in a table, the OS basically has to start
at the beginning of the table and 'find' its way to that location
Whilst
you say tha half a million records go thru this monthly?
what is the concern then of creating a value of zero vs leaving a CUMM element
null?
it would seem highly unlikely that not a single record you process has no value.
just element the tests for null that only stop a single addition and are
On 3/2/2011 3:18 PM, DavidJMurray (mvdbs.com) wrote:
Has anyone used Git and U2 - either UniVerse or Unidata - together?
Or any other suggestions for a version control - open source is preferred?
Thanks in advance,
djm
-
Learn and Do
Excel and Share
http://mvdbs.com http://mvdbs.com
What Martin said. It would be better to extract to temporary 1-attribute
variables and loop through those rather than looping through the 101st
attribute repeatedly. Especially for the prior prior year when LY.CNT = 24.
So I say aye. This can definitely be improved.
I use CVS with Universe. I chose to use shell scripts to build
Universe accounts; I use the same scripts for both Linux and Windows
(via cygwin).
rex
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
Optimization is about getting rid of bottlenecks in the code. Does
this code snippet really represent a significant percentage of the
total processing time? Really, what percent? If you can't quantify
it, don't change it.
rex
___
U2-Users mailing
On 3/2/2011 4:07 PM, Rex Gozar wrote:
Optimization is about getting rid of bottlenecks in the code. Does
this code snippet really represent a significant percentage of the
total processing time? Really, what percent? If you can't quantify
it, don't change it.
rex
Yes and the code would make much more sense if they had names other than
parm... You know, stuff like QTY, COST and SALES crazy things like that
aye
-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Kevin King
On 3/2/2011 5:08 PM, Allen E. Elwood wrote:
Yes and the code would make much more sense if they had names other than
parm... You know, stuff like QTY, COST and SALES crazy things like that
aye
-Original Message-
From: u2-users-boun...@listserver.u2ug.org
Let me clarify.
The problem in my mind is not with the IF X # '' THEN
It's with the ELSE portion, which in effect *means* IF X # (# '')
The Else clause is essentially executed on a Not Not condition. That adds
unnecessary confusion for the next programmer.
W
-Original
Dave you are correct when referring to dynamic arrays, the 101 type entries
in your code.
In general, outside of the REMOVE type operations, references like that, must
start at field 1 and walk the array until it gets to field 101, reading every
character between. Which is why, in general,
That is an object used in prelude. It is passed around everywhere.
The question was how to make it faster.
In a loop you want to eliminate redundant overhead to accomplish this.
The way to stop that overhead in the reference to dynamic vars is to place
them into single attr vars as Kevin
I tried to drink the KoolAid and use REMOVE on some projects, but found
a show stopper on UDT6.1. I cannot remember the specifics.
Oh, I remember, In cases where you are addressing aligned mv's with your
loop variable it was not saving you that much because you still need
extract the other
I have available U2-based SCM (Software Configuration Mgr)... called Ch.
O Menu-driven
O User-interface - Developer to specify change notes - no command-line
hassle
O Integrates with VOC the latest rev and file path
O OSGI... Cross References Subs and their
On 3/2/2011 5:43 PM, Bill Brutzman wrote:
I have available U2-based SCM (Software Configuration Mgr)... calledCh.
O Menu-driven
O User-interface - Developer to specify change notes - no command-line
hassle
O Integrates with VOC the latest rev and file path
O
Right now, Ch is not SB+ aware.
--Bill
-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Steve Romanow
Sent: Wednesday, March 02, 2011 5:45 PM
To: U2 Users List
Subject: Re: [U2] [AD] RE: Git and U2
On 3/2/2011 5:43
Yes. Your aligned multivalues are also referred to as dependent-controlling
sets.
You have one attribute controlling the placements of the values for the others.
Nasty buggers, always bite. You have to grab them right behind the ears.
-Original Message-
From: Steve Romanow
From:David Wolverton
The += I completely agree with. No arguments on that point at
all.
I've actually only adopted use of +=, -=, etc in Pick BASIC over
the last few years. I've been concerned that older developers
wouldn't recognize the syntax, and that it wasn't portable across
Pick
Agreed that the dimensioned extract wouldn't make much difference, still the
attributes numbers are quite high.
The code below goes from 15 extracts maximum per for-next loop to 6.
I can't help but think this might mean something if it takes 90 minutes to run.
001: MONTHLY.USAGE:
002: CM =
007: IF TEA # '' OR EAT # '' OR ATE # '' THEN CUM(M) = TEA + EAT + ATE
to
007: IF (TEA : EAT : ATE) # '' THEN CUM(M) = TEA + EAT + ATE
likewise,
011: IF YAM # '' OR AMY # '' OR MYA # '' THEN
to
011: IF (YAM : AMY : MYA) # '' THEN
AU$0.02.
-Original Message-
From:
My druthers...
IF (TEA + CAKE + ...) THEN ATE += TEA + CAKE + ...
CASE @TRUE ;* finding CASE 1 is unintuitive use of a magic number /
antithetical case statements may be obviated (for testing etc) by CASE @FALSE
-Original Message-
007: IF TEA # '' OR EAT # '' OR ATE # '' THEN CUM(M) =
If you are running UniData, you can also move the TEA, EAT, ATE, YAM,
AMY MYA outside of the FOR M loop if you exclude CM. Inside you can
than do TEACM = TEA1,CM, etc
Of course, as stated by others, whether it is worth the changing/testing
time cannot be known unless you have actually
David
My favorite is Perforce. It' not open source but a two user,
five workspace version is free. I use one workspace on development and one on
production so five is plenty for me.
It is not MV aware but I've used it with Unidata, Universe and jBASE.
It has command line and GUI interfaces for
try this, your loops are using too many conditionals. What kind of data is
this, string, integer, etc?
MONTHLY.USAGE:
--
CM = MONTH + LY.CNT
TEA = PARMS(12)101,CM
EAT = PARMS(12)133,CM
ATE = PARMS(12)134,CM
FOR M = 1 TO 12
IF TEA+EAT+ATE '' THEN CUM(M) = TEA+EAT+ATE
YAM =
I didn't realize the CM var could be used so I re-wrote it.
This program logic looks horrible though, I would definitely
re-write it with consideration of indexing some fields to make it
run more efficient.
Chris
MONTHLY.USAGE:
CM = MONTH+LY.CNT
FOR M = 1 TO 12
TEA = PARMS(12)101,CM
EAT =
All right, I just went ahead and rewrote this the way I would do it since I
haven't written a single bit of code since I got laid off at the end of
September. And I did it while my wife and I are watching Judge Judy - it
was *fun* :-)
Granted I can't use real var names since I don't know what
#1
In a binary register, in machine code, there is no such thing as #. There
is NOT and = which is two comparisons. Now, granted, there have been
significant improvements in cpu's since I did machine code in 1975, so maybe
that has changed...
#2
Ummmhey, that's funny. I think I did that
#1 In x86 assembly, you use can use JE or JNE. So you do the comparison,
then jump. How you jump (or don't jump) determines if it was an = or #.
-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Allen E.
Elwood
Sent:
A suggestion: Raise the @VM to @AM to improve dynamic array performance.
Attribute lookups are way faster than value lookups, and you have already
extracted the data to a new variable
MONTHLY.USAGE:
CM = MONTH + LY.CNT
P12.101 = RAISE(PARMS(12)101)
P12.133 = RAISE(PARMS(12)133)
P12.134 =
Oh yeah, assembly - no sweat, you could do that on an old IBM360 along with
floating point math and hosts of really awesome and incredibly mind numbing
complicated stuff.
But non-relocateable machine code? You know, the stuff that's *really* doing
the work?
I've never seen any that could do a
Nice!
I tend to eschew RAISE and LOWER as they can cause really bummer problems if
you forget to LOWER before stuffing back into a record and testing doesn't
find it, and then it hits the live account and all hell breaks loose. But
for stuff that doesn't go back into a record, that's pretty
Yes, in the real instruction that gets send down those long multi-stage
pipe lines in our multi-core CPUs :) They take the same amount of clock
cycles to compare if a 32bit/64 bit value is equal, or not equal. When
values are compared it merely sets one of the many flags in the CPU.
This binary
The other thing to try, though not really a performance improvement, is the
following:
Replace:
IF P7.100CM = '' THEN
CUMO(M) += P12.101CM
END ELSE
CUMO(M) += P7.100CM
END
IF P7.101CM = '' THEN
CUMO(M) += P12.133CM
END ELSE
CUMO(M) += P7.101CM
END
IF P7.102CM =
Actually, (at least in UniData) it is a performance improvement :). It
has to do with how BASIC compiles the code into the object file and tags
each line with a line number. Each time it jumps to a line or progresses
to the next it must process the line number to update it for when it
shows
Ok, just to be clear, there is a difference between an interpreted
instruction and a hard wired machine code instruction. An actual BRANCH ON
NOTEQUAL operand ANALOG *circuit* must be etched in silicon at the flip-flop
level before it's a machine code instruction.
So like, not impossible.
But
That *is* cool! I still remember helping my dad with his tube tester. He'd
repair radios and TVs for his friends from work. In return he got their rejects
for parts. We never had to buy a TV...
There's something about the sound from an old tube radio that you can't beat!
Sometimes when I
Which is where the -T option on the BASIC statement comes in handy, though
debugging then become s much harder.
-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Dan McGrath
Sent: Thursday, 3 March 2011 4:24 PM
The parens are redundant since concat is a higher precedence than Not
Also how about
If YAM:AMY:MYA IS NOT(NULL) THEN
more intuitive :)~~
In a message dated 3/2/2011 4:54:51 P.M. Pacific Standard Time,
brian.whiteh...@pentanasolutions.com writes:
011: IF (YAM : AMY : MYA) # ''
You my friend get the micro-management award for this thread.
In a message dated 3/2/2011 9:24:18 P.M. Pacific Standard Time,
dmc...@imb.com.au writes:
Actually, (at least in UniData) it is a performance improvement :). It
has to do with how BASIC compiles the code into the object file
66 matches
Mail list logo