Re: [U2] [OT] Interview Questions
Kevin, You want people who are smart and get things done -- http://www.joelonsoftware.com/articles/fog73.html rex On Wed, Oct 9, 2013 at 4:39 AM, Brian Leach br...@brianleach.co.uk wrote: Kevin I remember a long time back working for a consultancy in Oxford we had long and ineffective interview processes. Then we took on a client that was an institute of personnel directors, and found they published some very good materials on how to conduct interviews. The main lesson was to have a very clear set of goals and criteria drawn up and agreed before you go in, and a clear way to assess against that. Sounds obvious, but we weren't doing that. When we did it was much easier to decide whether they had demonstrated that they had met those criteria and we could be more analytical especially at the first interview stage. That was more valuable than trying to come up with clever questions. Technical assessment is a different story. For that, a clear task to perform with measurable criteria for correctness. Brian ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Signature Capture and use
I'm guessing you are not running a .net GUI frontend application. We have signature pads connected to our telnet-based Universe system. (a) We use AccuTerm to fire an exe on the client PC. (b) The client exe is a .net program with manufacturer's dll's that communicate with the signature pad. (c) When the user OKs the signature, the client exe sends the signature bytes to the application server via sockets, then exits. We had tried to use network shares for (c) but they proved to be unreliable. In a future version, I want to create a client exe with a socket listener built-in and run it like a service. That way, the application server can use a socket connection directly with the exe (instead of firing off the exe via AccuTerm). Theoretically, such an exe could be used via javascript in a browser-based application too. rex On Thu, Jun 6, 2013 at 3:59 PM, Oaks, Harold harold.o...@clark.wa.gov wrote: I'm sure some of you are implementing signature pad capture to a Universe system. What are you using and doing? I'd like to look into adding that feature to our jail system. Thanks- Harold Oaks Clark County, WA This e-mail and related attachments and any response may be subject to public disclosure under state law. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Inverting/Pivoting a table
Not a function, but there are some subroutines that flip posted on PickWiki: http://www.pickwiki.com/cgi-bin/wiki.pl?Row2Col AND http://www.pickwiki.com/cgi-bin/wiki.pl?Row2Col_II rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Variable Interpolation
The OP is describing an evaluate function that executes code on the fly based on variable values. See JavaScript's eval() function for a similar concept. For example, maybe I have some variables like WIDGET and EVENT, and I want to dynamically generate the label to an internal subroutine: EVALUATE('GOSUB ':WIDGET:'.':EVENT) rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] CSV to Array
It is tempting to use SWAP or CONVERT statements when parsing CSV, but they never handle all the possible cases correctly. You have to look at each character and keep track of state. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] EXIT ; EXIT inside a loop
See FIND and/or FINDSTR in the BASIC reference guide. On Fri, Apr 20, 2012 at 8:30 AM, Dave Laansma dlaan...@hubbardsupply.com wrote: This example was brought up because I'm essentially 'searching' through a 3-dimensional table and when I find a specific string in a sub-value, I need to abort the search all together. I cannot bring myself to use ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] EXIT ; EXIT inside a loop
read the documentation -- you can step thru occurences On Fri, Apr 20, 2012 at 8:44 AM, Dave Laansma dlaan...@hubbardsupply.com wrote: I won't know it's the right string until I perform a few tests on it, thus the 'twists'. Sincerely, David Laansma -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Rex Gozar Sent: Friday, April 20, 2012 8:40 AM To: U2 Users List Subject: Re: [U2] EXIT ; EXIT inside a loop See FIND and/or FINDSTR in the BASIC reference guide. On Fri, Apr 20, 2012 at 8:30 AM, Dave Laansma dlaan...@hubbardsupply.com wrote: This example was brought up because I'm essentially 'searching' through a 3-dimensional table and when I find a specific string in a sub-value, I need to abort the search all together. I cannot bring myself to use ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] EXIT ; EXIT inside a loop
or use the UNTIL or WHILE clauses on the FOR-NEXT On Thu, Apr 19, 2012 at 4:46 PM, David A. Green dgr...@dagconsulting.com wrote: Without testing I would say no. The EXIT is a branching statement, a GOTO in disguise. Using a LOOP WHILE REPEAT construct might be better. David A. Green ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] EXIT ; EXIT inside a loop
you can exit with a GOTO (poor practice); otherwise you'll need to reorganize your code to use UNTIL/WHILE. On Thu, Apr 19, 2012 at 4:59 PM, Boydell, Stuart stuart.boyd...@spotless.com.au wrote: It would work, until someone moved the twisted logic into a gosub. Personally, I'm not a fan of exits, I think they can get buried. I would use the [while|until] clause instead and build the logic betwixt accordingly: for A1 = 1 to X until G = H for A2 = 1 to Y until G = H retwisted logic (agh) next A1 next A2 Stuart From: Dave Laansma Sent: 20-Apr-12 6:36 To: u2-users@listserver.u2ug.org Subject: [U2] EXIT ; EXIT inside a loop Given: FOR A1 = 1 TO X FOR A2 = 1 TO Y little twisted logic IF G = H THEN EXIT ; EXIT twisted little logic NEXT A2 twisting little logic NEXT A1 little twisting logic The question is, if G = H, will the two EXIT commands drop out of both loops, skipping BOTH twisted little logic and twisting little logic, and resume execution at little twisting logic ? PLOUGH Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.comhttp://www.hubbardsupply.com http://www.hubbardsupply.com Delivering Products, Services and Innovative Solutions ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] EXIT ; EXIT inside a loop
BTW are you really just trying to do a FINDSTR? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Detecting idle time in INPUT statement.
I know the OP wanted to know how long a user session has been idle, but real problem is the second person waiting for the lock to be released. The best practice is to always have LOCKED clauses on your READU's, and never to block on a lock, i.e. a user input process should hit the locked clause and report who has the desired record locked, and giving the user an out if they cannot access the record at this time. Batch and phantom processes should not block either, waiting 5-10 seconds and retrying up to specific number of times (say 10), then skipping over the record and leaving it for subsequent processing. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Detecting idle time in INPUT statement.
It does not matter if a system is old or not, you gotta keep it up to date. Maintenance programming means adding LOCKED clauses that should have been there in the first place. I doubt it would take more than a few hours; probably less time than writing and debugging some off-the-wall input timer routine. There probably aren't that many critical READU's. On my system, for the number of programs I have in the system, I only have a third as many READU's. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Detecting idle time in INPUT statement.
The OP's system probably doesn't have three thousand READU statements; I'm willing to guess a few hundred. And out of that few hundred, maybe a dozen of those READU's block user access during normal day-to-day operation. And yet a CEO, manager, whatever wouldn't have a problem implementing some input-timing thingy? rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Detecting idle time in INPUT statement.
He already has the use-case; someone in some specific screen/program is getting locked out. That's where you start. On Tue, Mar 27, 2012 at 3:54 PM, George Gallen ggal...@wyanokegroup.com wrote: The tough part isn't so much the qty of but knowing which ones are the important Ones that will most likely be affected. Depending on the turnover of staff, the Current staff might not know the code that well, and pinpointing the top programs That should be converted first could be a shot in the dark. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Passing by Value
Put the variable in parentheses to pass by value, e.g. CALL MYSUB((VAR1)) rex On Thu, Jan 26, 2012 at 9:39 AM, Kebbon Irwin kebbon.ir...@sympatico.ca wrote: Unidata 7.1 I think this has come up before (side question: how do you search the archives?)... I think it is possible to pass a parameter by value instead of by reference. This, of course, means that any changes to the parameter in the called subroutine are localized and its original value in the calling routine is unchanged there. Does anyone do this? If so, how?Cheers,Kebbon ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Brilliant? or not?
SMAX = MAXIMUM(S1:@FM:S2) seems clearer... ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] !COMO subroutine documentation
ED APP.PROGS COMO to see the arguments described within the program comments. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Unidata 7.1 Unresponsive UO Connection
My u2pipe has been available on PickWiki since 2006. If can be used with PHP, ColdFusion, ASP.NET, raw sockets, etc. http://www.pickwiki.com/cgi-bin/wiki.pl?U2pipe rex On Thu, Dec 1, 2011 at 11:57 PM, Kevin King precisonl...@gmail.com wrote: Having waited YEARS for a PHP connector into U2, I finally got tired of waiting... ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe 10.2.9
What do you mean by way too many system calls? Are you comparing this to previous performance numbers? rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Code Collaboration
Collaboration happens when two or more people have the same itch to scratch. Someone thinks to himself I've got to pass PICK data in JSON and starts looking for projects that do that. It does not happen the other way around, where you might stumble upon a project and say to yourself, hmm, a PICK to JSON project -- I think I'll collaborate on that. The PickWiki to MediaWiki project, my u2pipe stuff, and a bunch of others have been mentioned in this list plenty of times for people with an itch to take notice. Advertising a project does not drive thoughtful collaboration; having a genuine itch that demands scratching does. This goes back to my earlier point that if you want a bunch of people actively collaborating on a project, it has to be big -- big enough to scratch a bunch of itches. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Code Collaboration
Sure advertising works, Will, but I'll bet you don't buy feminine products just because you see the ads on TV :) rex On Mon, Nov 21, 2011 at 12:23 PM, Wjhonson wjhon...@aol.com wrote: So advertising doesn't work. That's a new twist. I don't share your belief that people will by nature gravitate towards unadvertised web space ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Code Collaboration
So Will, if you are saying you have a burning need for a better PICK collaboration site then go for it. Build it. Advertise it. And those people in the community that share your need will undoubtedly join you in building a better site. Perhaps there are people in your local PICK users group that would want to help in the initial stages. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Code Collaboration
To everybody in the community, Who else has a burning need for a new collaboration website? rex On Mon, Nov 21, 2011 at 1:52 PM, Wjhonson wjhon...@aol.com wrote: No I'm saying we are currently holding, right here, a white board discussion for how to go about it. That involves not one person, but a community. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Code Collaboration
FYI - PickWiki does have an RSS feed. Also, have any of you considered Brian's U2 User wiki/website? The wiki has a WYSIWYG editor, and the website has forums. And the site may already have an RSS feed or email notifications. But let's face it, nobody's going to change or tweak your program code just because they can. If your code is useful to them, then they might download and use it. And in the slim chance they make an improvement that they think might make a difference to someone else's life, they might make the time to post their mod. There are hundreds, if not thousands, of software projects publicly available that no one takes any interest in -- why should a PICK project be any different? Sure, code snippets get discussed and rewritten here, but that's because it is a snippet, not a complete program. This is not a tool or convenience problem. Most people are simply not inspired to share what they know; those that are inspired are already sharing. On Fri, Nov 18, 2011 at 2:03 PM, Wjhonson wjhon...@aol.com wrote: No it (PickWiki) doesn't (bring changes to me). That's the problem I see. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Code Collaboration
I wasn't saying that no one's interested, but rather those that are interested are already doing something to collaborate and contribute. You got your knol thing going, Tony has got his blog, Steve's got his GH and BB, and so on. A lack of tools isn't going to stop someone that's inspired to share. But I was saying that we need to set our expectations realistically. I don't expect the average PICK guy with his head down getting the job done is going to look up long enough to tweak my u2pipe program. rex On Fri, Nov 18, 2011 at 2:50 PM, Wjhonson wjhon...@aol.com wrote: Rex I have to disagree that no one's interested. I'm interested, and I think there are others who are as well. Whether or not we've all going to be interested in a new text editor, or a faster sort routine, or a BASIC tool to parse XML that remains to be seen. But the way we're going about it right now, to me, doesn't work. It's broken. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Code Collaboration
Collaborating just for the sake of collaborating is a dead end. So is setting up an infrastructure with the goal of simply encouraging collaboration. People need to be excited about the *end results* and potential of a project, and out of that group a tiny percentage will want to actively contribute. I don't think past collaboration projects died because of a lack of proper infrastructure; they died because they lacked a grandiose, targeted result. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Mercurial/TortoiseHg source version control
If others in your company are using Mercurial and the idea is to keep everyone's source in the same repository, I would recommend exploring Mercurial first. Perhaps you can ask your sql guys for Mercurial help since they are already using it. rex On Tue, Nov 15, 2011 at 6:37 PM, Wols Lists antli...@youngman.org.uk wrote: On 15/11/11 23:13, Barber, Bonnie wrote: Thanks I will get a copy of git and take a look at it so we have an alternate recommendation just in case mercurial does not work out. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Code Collaboration
I personally find most projects uninteresting; I assume others do too. I think people would gladly collaborate on a project that gave them significant benefit, not just some incremental gain. rex Attempts at making Pick code collaboration projects have been mostly unsuccessful. Why? How can we create a true collaborative project and Would Anyone Come ? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Code Collaboration
So what collaborative project do you want to start? What do you want to build? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Mercurial/TortoiseHg source version control
Bonnie, I use CVS (currently porting my scripts to use Mercurial) for Universe program version control. A lot depends on your version control paradigm; many software developers checkout their source code and build their software from scratch. This is what I do here; I make changes to the source code repository, build the software accounts, then upgrade existing sites with the new software. Some developers don't build their software, but rather modify production programs on the fly and use version control software to track their changes. Making changes in a development account and copying into production is a variant on this approach. The different approaches to software changes require different capabilities. Which approach is closer to your development method? rex On Tue, Nov 15, 2011 at 10:38 AM, Barber, Bonnie bonnie.bar...@perseusbooks.com wrote: Does or has anyone on this list used Mercurial (UNIX) or TortoiseHg (windows) for Universe program version control. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Mercurial/TortoiseHg source version control
Tom, Would it possible to export all the source code from PRC into a flat file/directory format for Mercurial? rex On Tue, Nov 15, 2011 at 11:05 AM, Tom Whitmore tewhitm...@ratex.com wrote: We use PRC, which is a PICK based product. We have seen a marked improvement in the whole development cycle since using PRC. Tom Whitmore RATEX Business Solutions ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Mercurial/TortoiseHg source version control
Bonnie, For CVS here, I setup TortoiseCVS to SSH into the linux machine and checkout/checkin changes to the repository. For Mercurial/TortoiseHg there should be something similar, e.g. hg push ssh://hguser@192.168.1.5/hg/, so you can push your changes to your designated repository. Is your repository on the AIX box? Then ssh is probably your best bet. Right now I am using cygwin on my development PC so I can port and test my shell scripts, so I do not have experience with TortoiseHg yet -- just command line stuff. Let me know what you do to get it going so I can copy your settings! rex What I do not understand is how to get the programs back out to make changes. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Mercurial/TortoiseHg source version control
Does anyone know if PRC has a built-in feature to export all source code into a flat-file/directory format? Either for the head version or the entire repository? If it does, does it also import? It might be nice to be able to allow on the fly changes to the development repository, and still use build tools for a daily build and smoke test. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Mercurial/TortoiseHg source version control
Tom, I keep dictionaries, procs, Q-pointers, programs, and includes in CVS and Mercurial. What do you mean by PICK aware? rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Mercurial/TortoiseHg source version control
Wol, Even with DVCS, the convention is to designate one of the repositories as the master so everyone can pull/push (checkin/checkout) their changes that end up in a tagged release. The change in mindset has more to do with file versions in CVS and Subversion versus change sets in dvcs. rex The thing to bear in mind is that if you're used to a conventional VCS with a master repository, a DVCS requires a major change to your mindset to use it in the way it is meant to be used. You can still use it the old-fashioned way, but you won't be using the power it is capable of. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] PC based UniBasic program editor for 64 bit OS
I use Notepad++. Instructions for configuring Notepad++ to do UniBasic syntax highlighting: http://www.pickwiki.com/cgi-bin/wiki.pl?NotepadPlusPlus rex On Wed, Aug 31, 2011 at 2:03 PM, Buffington, Wyatt wgbuffing...@hydro.mb.ca wrote: Can anyone suggest a good editor for 64 bit OS systems that allows people to edit UniBasic programs? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Simple Masking of Password Input (Universe Basic)
Displays asterisks for characters entered. Displays extra asterisks when password is less than seven characters. Enjoy. rex SUBROUTINE GET.PASSWD(RESPONSE) * PASSWORD INPUT ROUTINE ** EQU BS TO CHAR(8) EQU CR TO CHAR(13) BUFFER = SPACE(255) BUFPTR = 0 PROMPT '' LOOP C = KEYIN() UNTIL C EQ CR DO IF C EQ BS THEN IF 0 LT BUFPTR THEN DISPLAY BS: :BS: END BUFPTR -= 1 IF BUFPTR LT 0 THEN BUFPTR = 0 END ELSE BUFPTR += 1 IF 255 LT BUFPTR THEN BUFPTR = 255 BUFFER[BUFPTR,1] = C DISPLAY *: END REPEAT PADCNT = 7 - BUFPTR IF 0 LT PADCNT THEN DISPLAY STR(*, PADCNT): END RESPONSE = BUFFER[1,BUFPTR] RETURN END On Tue, Aug 16, 2011 at 2:51 PM, nschroth ngschr...@yahoo.com wrote: Does anyone have a simple routine for entering a password and only displaying an asterisk for the character entered? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Comparing numeric strings
In July I added to PickWiki: http://www.pickwiki.com/cgi-bin/wiki.pl?UniVerse_Tips_And_Tricks#Forcing_string_comparison_on_numbers rex On Fri, Aug 12, 2011 at 8:15 AM, Rob Sobers rsob...@gmail.com wrote: Say you have two strings that happen to be numeric: FOO = 401.0101 BAR = 401.0101000 Since UniBasic is untyped, even though I've wrapped each value in quotes , they are treated as numbers. As a result, FOO EQ BAR evaluates to @TRUE. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Comparing numeric strings
COMPARE() works, just be careful if you're using it for sorting strings. Compiling and running the following test program: GET(ARG.) A ELSE ABORT GET(ARG.) B ELSE ABORT X = COMPARE(A, B) IS.LESS.THAN = (X LT 0) DISPLAY (IF IS.LESS.THAN THEN less ELSE greater): than LOCATE(A, B; FOUND; AL) ELSE NULL IS.LESS.THAN = (FOUND EQ 1) DISPLAY (IF IS.LESS.THAN THEN less ELSE greater): than END Gives the expected results most of the time: TEST 1 2 less than less than TEST A B less than less than But give different results when the second parameter is a substring of the first: TEST AAA AA less than greater than Apparently COMPARE() and LOCATE() use a different algorithm internally. LOCATE() gives results similar to SSELECT and SORT. rex Universe 10.3.7 Pick Flavor On Fri, Aug 12, 2011 at 1:19 PM, u2ug simpson-u...@gerzio.ca wrote: Have you looked at the COMPARE() function ? Does the trick under universe. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UV 11.1 64-bit on Cisco UCS with NetApp Filer?
Adam, Have you checked different performance stats? http://www.cyberciti.biz/tips/linux-disk-performance-monitoring-howto.html What does avgqu-sz look like? It should be low (ideally less than 1). If it tends to spike (over 10 when using a 1 second interval), do the spikes correlate to the times that you're waiting for user response? That would indicate that the SAN is unable to keep up with user requests. Do the performance metrics suggest any other bottlenecks? You may need to run the metrics on both the vm and the underlying os. rex On Tue, Aug 9, 2011 at 10:16 AM, Adam Taylor adam.tay...@inxi.com wrote: We recently upgraded and virtualized our UniVerse servers to UV 11.1 64-bit on a Cisco UCS B Series platform with a NetApp 3040A/A Filer. Going to 64-bit with an upgrade in the virtualized environment, we expected to see a noticeable (if not significant) increase in performance than we were achieving on our old physical 32-bit server. However, not only has performance not notably increased, we are having random slowdowns in various areas of the system that were not occurring before. I say random, because while it does seem to affect certain areas more, it is not consistent. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Using SSL, with .Net to make a connection to Linux/Unix
I am not suggesting that you inspect the actual data passed (I know it is encrypted), but rather what packets are being passed? Are handshakes failing? Are responses missing? -- when compared to the working connection. Do the packets give you an additional clue as to what is failing? Technically, you are not making wireshark work with uvtelnetd. You would put a hub (not a switch) between the client and server, and plug a separate machine with wireshark into the hub. From this machine you could monitor traffic between the other two machines. Alternately, wireshark could be on the client machine monitoring traffic to/from the server IP. Wireshark may reveal nothing -- the problem could be within the encrypted data being passed. But typically protocols pass packets back and forth to establish the connection before sending the data, and if it is failing at this level wireshark may make it obvious. rex On Wed, Aug 3, 2011 at 6:27 PM, Michael Pflugfelder mpflugfel...@ratex.com wrote: Rex, How could I make Wireshark work with uvtelnetd. My understanding is that uvtelnetd is passing encrypted data. I haven't used Wireshark a whole lot, but I believe that it can't decrypt the data on the stream. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Using SSL, with .Net to make a connection to Linux/Unix
Michael, It may help to put a packet-sniffer (wireshark) on your network to see what packets are being exchanged when the vendor app attempts to connect to uvtelnetd. The requests/responses may help to determine the problem. It may also help to compare the traffic between the working (windows) and non-working (linux) connections. rex We are working with our vendor to replace a front-end application written in Delphi with a new front-end application written in .net. The vendor has decided to remove support for SSH and telnet completely. The only connection they will make is to a UniVerse server running uvtelnetd. The way I understand this, it is simply Telnet over SSL. They have this process working with a UniVerse server running on Windows. We are now trying to make it work with our UniVerse server running on linux and it will not connect. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] JSON
George, Individual MV's are pretty simple, but associated MV's can get interesting: { idCode: 178, cusName: U2Logic, contacts: [ { name: David Aitken, cellPhone: 303-555-1234 }, { name: Doug Averch, cellPhone: 303-555-6728 }, { name: Carmen Electra, cellPhone: 303-555-7726 } ] } rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Record Locks - How long should they last for? (Opinion)
Based on your description, you are using a pessimistic locking approach (similar to a telnet user) for a web application, so choosing a timeout would be arbitrary. Your heartbeat idea could be tied in to avoid having to manually release records. It seems like a bad idea to force a connectionless, stateless web browser to act like a connected, stateful telnet session. Why not switch to an optimistic locking approach? Checksum the original data (record) when it is passed to the browser. When returned from the browser, lock the record and checksum it again. If the checksums match proceed with the write; otherwise, send a message back to the browser allowing the user to cancel or resubmit their changes. This way, record locks should only last a few milliseconds. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Verifying file existence
FYI - For Universe users out there, you can use the READV...0 (zero) trick: OPENPATH /some/remote/directory TO FILE ELSE ABORT READV SCRAP FROM FILE, large-binary-filename, 0 THEN IS.CREATED = @TRUE END ELSE IS.CREATED = @FALSE END (Don't know if it works on Unidata) rex On Tue, Jun 28, 2011 at 12:54 PM, Kebbon Irwin kebbon.ir...@sympatico.ca wrote: UD 7.1 RHEL Nahant 4 I am looking for an elegant way to verify a [large binary] file in a remote directory has been created. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Coversion Code for Date
FYI - DY4MD- and D4-YMD will output -M-DD for single digit months. D4-YMD[4,2,2] will properly output -MM-DD. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Coversion Code for Date
Forgot to mention on Windows, Universe 10.3.7, Pick flavor: On Fri, Jun 3, 2011 at 5:04 PM, Rex Gozar rgo...@gmail.com wrote: FYI - DY4MD- and D4-YMD will output -M-DD for single digit months. D4-YMD[4,2,2] will properly output -MM-DD. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] [UV] Emulate SQL MAX() function at TCL
You could try: SELECT FILE READLIST IDS ELSE ABORT MAX.ID = MAXIMUM(IDS) rex On Fri, May 27, 2011 at 6:40 AM, Wols Lists antli...@youngman.org.uk wrote: On 27/05/11 07:03, Boydell, Stuart wrote: Just wondering if anyone has a neat trick for picking up the highest ID from a file. Where the file ID is an integer. With UVSQL I would SELECT MAX(@ID) FROM TABLE; - however, the program I need to do this within has the file (table) open and if I try to execute it returns the error 'Non-SQL re-entrant query calls are not allowed.' ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] [UD] Extract a line with a CR and/or LF character in it.
For any CSV processing, you must process character by character. Use OSBREAD to get a block of characters and start parsing. Strings like 1,ABC,2 adapter,, can only be correctly parsed by looking at each character and applying the simple CSV rules. Using CONVERT statements only makes the process more complex and inaccurate. rex On Thu, May 26, 2011 at 8:14 AM, George Gallen ggal...@wyanokegroup.com wrote: In your subroutine, if you first convert @FM - char(250) Then do your line scan, when your inside a quote , if you encounter a char(250) convert it to a char(253) once your done, convert char(250) back to @FM If when your scanning, everytime you encounter a , you flip the quoteon value from 0 - 1 - 0 it shouldn't matter if you encounter double quotes ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] [UD] Extract a line with a CR and/or LF character in it.
On Thu, May 26, 2011 at 8:24 AM, George Gallen ggal...@wyanokegroup.com wrote: This shouldn't be a problem if your using to flip a QuoteOn flag. field description here first quote would trigger the flag on the first double quote would trigger the flag off, then on again the second doub quote would trigger the flag off, then on again the last quote would trigger the flag off George, In your example, the escaped double quotes would get eaten. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Error 4 22 from PHP exec of uv on AIX
Have you tried instead of ; to separate the cd and uv commands? rex On Fri, May 6, 2011 at 11:56 AM, John Thompson jthompson...@gmail.com wrote: I thought I would resurrect an old issue I found on the mailing list... As I am not a mailing list junky (google and web forums have spoiled me), I'm not entirely sure how to reply directly to the old post... Original Post From: Ross Morrissey Fri, 24 Jul 2009 14:11:56 -0700 This is a bit of a stumper (for me, anyway). I'm having issues trying to exec uv from PHP on AIX. Things work just fine in Windows (Apache or IIS) or Linux (Apache) so I know my PHP syntax is fine. On the AIX (5.2 uv 10.2.7) box: Using PHP, I can exec 'echo 1 + 2 | bc' and get 3 I can run this at the shell as user nobody: 'cd /u2/uv/HS.SALES; /u2/uv/bin/uv display 42' I can get a CGI script to return 'cd /u2/uv/HS.SALES; /u2/uv/bin/uv display 42' correctly With PHP, I can't exec ' /u2/uv/bin/uv display 42' (after a chdir). UV throws this error (into the Apache logs): An error has occurred during uniVerse initialization Please contact the system administrator Error code: 4 22 The codes translate into: 4. System V semaphores are probably not configured in the kernel. 22. (EINVAL) Invalid argument. Here are some examples of invalid arguments: dismounting a nonmounted device, mentioning an unknown signal in signal, reading or writing a file for which seek has generated a negative pointer. EINVAL is also set by math functions. Has anyone else bumped into this? IBM support suggested it might be an issue with SIGTTOU but this seems unlikely to me - especially for a one-line command. PHP is a bit outside their bailiwick. Thanks, Ross. End of Original Post I am having the exact same problem. I have tried using nohup before called universe. There is something about when apache calls the php script, then the php script executing universe, that universe does not like... Anyone ever figure out a way around this? -- John Thompson ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Error 4 22 from PHP exec of uv on AIX
As a workaround, you could try u2pipe: http://www.pickwiki.com/cgi-bin/wiki.pl?U2pipe You wouldn't need to install it as a inet service, just use it as a pipe. For example: echo display 42|/usr/local/bin/u2pipe (or wherever you install it) To configure u2pipe, you edit /etc/u2pipe.ini to enter the user, password, and account. Any commands you pipe to it will run in universe and the output will go to stdout. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Reliability doesn't raise enough issues to keep the list busy
When I see the demand for U2 or Pick programmers rise, then I'll believe the market is growing. rex On Wed, May 4, 2011 at 3:46 AM, George Land george.l...@aptsolutions.net wrote: I doubt you'll ever believe me, until Rocket send you your branded skateboard that is! On 03/05/2011 17:52, fft2...@aol.com fft2...@aol.com wrote: We'll all believe you, when they are published. What's the link again? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Saying Goodbye...
Make them awesome. flame The problem is not the maturity of the interfaces, but the maturity of the developer community. Too many Pick programmers see the latest technology as here today, gone tomorrow so they are not inspired to learn it, much less create feature-rich software that implements it. That's not to say that some of the more vocal developers on this list do not use modern technologies, but I think the critical mass still thinks green screen is faster = better software. Software development is about making the USER awesome at what they do. There are a lot ways to do that, but ignoring newer technologies because they may be replaced tomorrow is just retarded. You don't create web apps because you have no clue how to write HTML, CSS, and javascript. You don't create GUI apps because haven't spent the time to learn Visual Whatever. Stop treating every problem like a nail because you only have a hammer in your toolbox. /flame Make them (the users) awesome, and we won't have to worry about leaving U2, or its marketing, or whether the VP's on the golf course are talking about SAP. With awesome users, the VP's will be talking about how they can extend their U2 applications. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Question about uvbackup dd and uvrestore
Unless you need record-level restores, I would recommend using tar to backup your Universe accounts. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Unidata Encrypt Function
EQU ALGORITHM$SHA1 TO SHA1 EQU DATALOC$STRING TO 1 EQU DATALOC$FILE TO 2 RESULT = ERRCODE = DIGEST(ALGORITHM$SHA1, TEXT, DATALOC$STRING, RESULT) RESULT = UPCASE(OCONV(RESULT, MX)) rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Question about uvbackup dd and uvrestore
Universe admin documentation has the disclaimer: Note: uvrestore does not support reading from stdin. You'll need to gunzip the backup file to disk before you can uvrestore it. rex On Wed, Apr 13, 2011 at 9:12 PM, Augusto Alonso aalo...@quiter.com wrote: Hi all. I'm trying to pipe uvbackup (universe) and gzip in order to compress backups on the fly. I've done it with success. But the problem arise when I try to uvrestore from it. A simple test that you can try: RHEL:/u2/uv# find HS.SALES | bin/uvbackup -v -f - |dd of=hs_sales.bk Backup Date : Wed Apr 13 21:22:29 2011 Reel Number : 1 Image Type : Full Backup (ver9 UNIX) Block Size : 8192 bytes NLS on : False Label : Current device(s): stdout Backing up HS.SALES Backing up HS.SALES/VOC.u Backing up HS.SALES/D_VOC Backing up HS.SALES/VOCLIB Backing up HS.SALES/D_VOCLIB Backing up HS.SALES/CUSTOMER Backing up HS.SALES/CUSTOMER.u Backing up HS.SALES/D_CUSTOMER Backing up HS.SALES/D_CUSTOMER.u Backing up HS.SALES/PRODUCTS Backing up HS.SALES/PRODUCTS.u Backing up HS.SALES/D_PRODUCTS Backing up HS.SALES/D_PRODUCTS.u Backing up HS.SALES/STATES Backing up HS.SALES/STATES.u Backing up HS.SALES/D_STATES Backing up HS.SALES/D_STATES.u Backing up HS.SALES/HS_FILE_A000 Backing up HS.SALES/D_HS_FILE_A000 Backing up HS.SALES/.hs_fileinfo Backing up HS.SALES/VOC Backing up HS.SALES/.uvconfig Backing up HS.SALES/uvconfig Backing up HS.SALES/puntouvconfig Total files: 24 Total bytes : 97273 Elapsed Time: 00:00:01 12 operating system files processed, 0 broken, totalling 41444 data bytes. 12 UniVerse files processed, 0 corrupted. 939 UniVerse records processed, 0 corrupted, totalling 55829 data bytes. -1073742616 extended keys processed, 0 not supported at specified revision level. EndOfUvbackup 288+0 records in 288+0 records out RHEL:/u2/uv# dd if=hs_sales.bk | bin/uvrestore -v -i -t /dev/stdin Backup Date : Wed Apr 13 21:22:29 2011 Reel Number : 1 Image Type : Full Backup (ver9 UNIX) Block Size : 8192 bytes NLS on : False FastWrite On : False Label : Current device(s): /dev/stdin WARNING: Block 1 checksum value of 0 does not match computed checksum of -6667. Integrity of block questionable. Continue (Y/N)? intended publication of source code. * Total files: 0 Total bytes : 0 Elapsed Time: 12:00:00 0 operating system files processed, 0 broken, totalling 0 data bytes. 0 UniVerse files processed, 0 corrupted. 0 UniVerse records processed, 0 corrupted, totalling 0 data bytes. -1073742632 extended keys processed, 0 not supported at specified revision level. EndOfUvrestore 26+0 records in 25+0 records out RHEL:/u2/uv# Could someone explain why this happen? And the backup is all right, because it works if you change the syntax (without pipe): RHEL:/u2/uv# bin/uvrestore -v -i -t hs_sales.bk Backup Date : Wed Apr 13 21:22:29 2011 Reel Number : 1 Image Type : Full Backup (ver9 UNIX) Block Size : 8192 bytes NLS on : False FastWrite On : False Label : Current device(s): /u2/uv/hs_sales.bk HS.SALES (Apr 13 21:22:29) HS.SALES/VOC.u (Apr 13 21:22:29) HS.SALES/D_VOC (Apr 13 21:22:29) HS.SALES/VOCLIB (Apr 13 21:22:29) HS.SALES/D_VOCLIB (Apr 13 21:22:29) HS.SALES/CUSTOMER (Apr 13 21:22:29) HS.SALES/CUSTOMER.u (Apr 13 21:22:29) HS.SALES/D_CUSTOMER (Apr 13 21:22:29) HS.SALES/D_CUSTOMER.u (Apr 13 21:22:29) HS.SALES/PRODUCTS (Apr 13 21:22:29) HS.SALES/PRODUCTS.u (Apr 13 21:22:29) HS.SALES/D_PRODUCTS (Apr 13 21:22:29) HS.SALES/D_PRODUCTS.u (Apr 13 21:22:29) HS.SALES/STATES (Apr 13 21:22:29) HS.SALES/STATES.u (Apr 13 21:22:29) HS.SALES/D_STATES (Apr 13 21:22:29) HS.SALES/D_STATES.u (Apr 13 21:22:29) HS.SALES/HS_FILE_A000 (Apr 13 21:22:29) HS.SALES/D_HS_FILE_A000 (Apr 13 21:22:29) HS.SALES/.hs_fileinfo (Apr 13 21:22:29) HS.SALES/VOC (Apr 13 21:22:29) HS.SALES/.uvconfig (Apr 13 21:22:29) HS.SALES/uvconfig (Apr 13 21:22:29) HS.SALES/puntouvconfig (Apr 13 21:22:29) Total files: 0 Total bytes : 0 Elapsed Time: 12:00:00 0 operating system files processed, 0 broken, totalling 0 data bytes. 0 UniVerse files processed, 0 corrupted. 0 UniVerse records processed, 0 corrupted, totalling 0 data bytes. -1073742632 extended keys processed, 0 not supported at specified revision level. EndOfUvrestore RHEL:/u2/uv# Any suggestion? Regards -- Augusto Alonso IT manager QUITER SERVICIOS CENTRALES Zoco Gran Santander, 1ª planta - 39011 Santander - España Telf: +34 902233323 - Fax: +34 902234280 AVISO LEGAL: Este mensaje contiene información destinada exclusivamente al usuario de destino, pudiendo contener información confidencial o protegida legalmente. Si, por un error de envío o transmisión, ha recibido este mensaje y usted no es el destinatario del mismo, por favor, notifique de este hecho al remitente y no
Re: [U2] Is this worth rewriting?
good comprehension = faster, accurate programming (that's programming, not code execution) We all want fast and accurate programming. To improve comprehension, you have to write code to (a) reveal its logical structure, and (b) reveal the business rules implemented in the code. Sorry, but structures like: IF A:B:C NE '' THEN CUM(M) = A+B+C (concatenating variables as a string, then performing numeric operations on them) slows down the comprehension process. And for what benefit? To me, that's just a lazy programmer that doesn't want to type a few extra keystrokes. Another structure caused a number of comments: IF condition THEN statement ELSE other-statement END (inline THEN followed by block ELSE). It appears that some readers saw the # in the condition and assumed an If Not Not structure at first, missing the THEN. I find it interesting that no one has commented on the fact that CUM(M) gets conditionally reinitialized, and whether or not that is important. But it proves my points that neither the structure nor business rules are clear within the OP's code. You can have 2 years programming experience, or 20, it does not matter. Better structure and variable naming will vastly improve program accuracy. (On the other hand, I could make this code really, really fast if it didn't have to be accurate!) rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Is this worth rewriting?
Symeon wrote: I still think all of these constructs as just sooo basic that if you can't just read them either which way, then you had better think about another career. They are basic, but even good programmers will occasionally ASSUME they understand what's going on when they really don't and introduce new bugs. The risk is always mitigated with better structure. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Is this worth rewriting?
George wrote: Actually, A:B:C NE '' THEN CUMM(M) = A+B+C doesn't slow anything down... I think you're talking about execution speed; I was talking about comprehension. What data type is A? Apparently, it can be an empty string or a number. But more importantly, what does it represent? Quantity? Dollars? Mileage? Yes, you would have to change the program to create self-documenting code to show the business rules. Technically, A:B:C NE might be slower than A# or B# or C# because the system would have to malloc and free string space for the temporary variable. But that's not my point; it would be faster to comprehend if I wrote something like: IF (SALE.AMT) OR (TAX.AMT) OR (SHIPPING.AMT) THEN * reinitialize the month with actual amounts CUMM(MONTH) = SALE.AMT + TAX.AMT + SHIPPING.AMT END (or whatever the OP's code is supposed to represent) rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Git and U2
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 http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Is this worth rewriting?
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 list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] How to Clear Empty VM marks in Field
George said: If the field were just a VM, trim would have left it there. Actually, if recordx is just a VM, TRIM(recordx,@VM) will trim out the single value-mark, resulting in (empty field). Tested in Universe 10.2 rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Reading a Unix file from another machine.
If the binary file it truly 7 bit, try dos2unix -c 7bit master newfile, then see if you can cat newfile. rex On Tue, Nov 9, 2010 at 7:28 PM, Adrian Overs u2u...@gmail.com wrote: Hi Roy, What you need to do is to add a line feed LF char(10) to your carriage returns char(13). This can either be done at unix level by cat file | tr '\l' '\l\015' file2 (15 being the octal equivalent of 13) or programatically by CHANGE(RECORD,CHAR(13),CHAR(10):CHAR(13),-1) I don't have an AIX machine in front of me at the moment so I may not be 100% correct on the syntax but that shout give you something to play around with. On Wed, Nov 10, 2010 at 9:05 AM, Roy Beard r...@cfl.rr.com wrote: Hi all, I am trying to read a Unix file from and old aix machine. The people who sent it will not bend in how they sent it. What I got was in binary format so I used 'od' to convert it to ascii. When I tried to cat the file before trying to READSEQ records it looked like gibberish! I realized that if I set my Term type to vt100, I could read it but the carriage returns were just ^M after each record. After trying 'sed' I gave up. Universe will not read the file at all. I still get gibberish even on the converted file. Any ideas? There must be a way to do this. What am I missing? Thanks, Roy ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Unidata Hashing
You can convert the result to hex, for example: ERRCODE = DIGEST(ALGORITHM$SHA1, TEXT, DATALOC$STRING, RESULT) RESULT = UPCASE(OCONV(RESULT, MX)) ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Sequential Files Question
Al, Look at the CREATE statement in your documentation. Works for both Windows and *nix. Frankly, I'm amazed how complicated people are making this. OPENSEQ PATH TO SEQFILE THEN WEOFSEQ SEQFILE ON ERROR ABORTM WEOFSEQ FAILED! END END ELSE CREATE SEQFILE ELSE ABORTM OPENSEQ AND CREATE FAILED! END END ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Sequential Files Question
OPENSEQ PATH TO SEQFILE THEN WEOFSEQ SEQFILE ON ERROR ABORTM WEOFSEQ FAILED! END END ELSE * instead of CREATE statement (on Windows) PCPERFORM echo:PATH OPENSEQ PATH TO SEQFILE ELSE ABORTM OPENSEQ FAILED! END END ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UI standards
As far as UI standards for data entry applications are concerned, I recommend Microsoft's User Experience Guidelines as a starting point. Google msdn windows 7 user experience guidelines, navigate to the MSDN page, find the PDF link and download the document. Most business people use Microsoft products daily. If your application follows the same basic layouts and uses the same keyboard shortcuts, your users will quickly learn your application; as a bonus, your application will teach them how to use their MS products. However, if your application works contrary to MS products, or requires them to memorize a different command set, then they'll despise you and your product. Have your developers read the book GUI Bloopers to avoid stupid GUI layouts. Also User Interface Design for Programmers is helpful. http://www.joelonsoftware.com/uibook/fog000249.html When is it okay to break out and show off a new interface? When it matches the user's imaginary model, not the developers! Finally, desktop and web applications are starting to blur into one another, so it's okay to borrow practices and standards from one and implement them in the other. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] I've run out of quotes
I haven't seen this one, so I thought I'd throw it in: * use ~ within the VAR instead of \ to code everything inline VAR = \mysql --user username -e LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '~n' (Emailaddress, Reference) SET UpdateType = 'D', DateAdded = current_timestamp(); LOAD DATA infile '/mnt/mount/FILE.TXT' REPLACE INTO TABLE database.updates FIELDS TERMINATED BY ',' LINES TERMINATED BY '~n' (Emailaddress, Reference) SET UpdateType = 'A', DateAdded = current_timestamp(); database\ * convert so ~n becomes \n CONVERT ~ TO \ IN VAR * we'll wrap the command in double quotes when executing SH -c, * so we need to double them within VAR EQU DQ TO '' VAR = CHANGE(VAR, DQ, DQ:DQ) * now execute the shell command wrapped in double quotes EXECUTE SH -c :DQUOTE(VAR) *NOTE* in testing it seems \n in the VAR string may be changed by SH -c into n, so look out for that behavior on your system. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Langauge Def for Notepad++
I've added my notepad++ syntax highlighter notes to PickWiki: http://www.pickwiki.com/cgi-bin/wiki.pl?NotepadPlusPlus rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] QSORT (Or something like that)
You can find these subroutines on PickWiki.com: CALL ROW2COL(A) ;* flip fields to values CALL QUICKSORT(A, 1, AR) ;* sort on first value CALL ROW2COL(A) ;* flip back rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] OPENSEQ and Abnormal termination of UV
Anthony W. Youngman pi...@thewolery.demon.co.uk 'Yings, yow graley yin! Suz ae rikt dheu,' said the blue man, taking the thimble. 'What *is* he?' said Magrat. 'They're gnomes,' said Nanny. The man lowered the thimble. 'Pictsies!' Carpe Jugulum, Terry Pratchett 1998 Visit the MaVerick web-site - http://www.maverick-dbms.org Open Source Pick Anthony, Did you know that clicking on your maverick link in your signature brings up the janitor's warehouse website? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Quick poll - how many use 3-tier or N-tier Architecture
a. Two tiers: frontend GUI and backend U2 basic. b. We don't use Websphere. c. We use u2pipe to connect ColdFusion/PHP/C# applications to the U2 backend business logic. d. No java. e. Yes, we use C#. f. We also use ColdFusion and PHP to frontend our applications. Under normal circumstances, UniObjects with webservices would have been would have been my first choice; however, we use u2pipe due to some pre-existing constraints in our hosting environments. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Examples of working ENCRYPT function?
Kevin, For what it's worth, I'm posting some code we have working here. A couple things to note: (a) the encryption process passes back non-printable characters along with the base64 that breaks the decryption process, so I strip them out. (b) I've noticed that some algorithms supported on earlier releases are not supported on later ones. Universe 10.1.18 (Windows) FUNCTION ENCRYPT64(TEXT) * EQU ALGORITHM$ TO RC4 EQU ACTION$ENCRYPT TO 1 EQU ACTION$ENCRYPT.BASE64 TO 2 EQU ACTION$DECRYPT TO 3 EQU ACTION$DECRYPT.BASE64 TO 4 EQU DATALOC$STRING TO 1 EQU DATALOC$FILE TO 2 EQU KEY$ TO ABCDEFGHIJKLMNOP EQU KEYLOC$DATA TO 1 EQU KEYLOC$FILE TO 2 EQU KEYACTION$ACTUAL.KEY TO 1 EQU KEYACTION$DERIVE.KEY TO 2 EQU SALT$ TO EQU IV$ TO EQU RESULTLOC$STRING TO 1 EQU RESULTLOC$FILE TO 2 * IF UNASSIGNED(TEXT) THEN ABORTM TEXT IS UNASSIGNED! END IF TEXT = THEN RETURN () END * RESULT = * ERRCODE = ENCRYPT(ALGORITHM$, ACTION$ENCRYPT.BASE64, (TEXT), DATALOC$STRING, KEY$, KEYLOC$DATA, KEYACTION$ACTUAL.KEY, SALT$, IV$, RESULT, RESULTLOC$STRING) * IF ERRCODE THEN ABORTM ENCRYPT64: ERRCODE :ERRCODE END * * get rid of non-printable characters * RESULT = OCONV(RESULT, MCP) CONVERT . TO IN RESULT * * return to caller * RETURN (RESULT) END Kevin King wrote: Thanks Bob. I'm at the giving up stage with Unidata 6.1 on AIX. Besides, I need something that can span a few different releases so I'm looking elsewhere. -Kevin http://www.PrecisOnline.com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UV time milliseconds option
When I run this on UV 10.1.18 (windows): $OPTIONS TIME.MILLISECOND STIME = SYSTEM(12) NAP 500 ETIME = SYSTEM(12) DISPLAY STIME DISPLAY ETIME DISPLAY (ETIME-STIME) END I get the output: 40473687 40474187 500 Are you saying you get 1000 when you the same code? rex John Rodgers wrote: We run UniVerse 9.6 on HP-UX We run PICK flavor accounts to accommodate our SB+ applications I am having trouble pinning down the cause of a performance issue so I want to record the progress of program. I need timestamps in milliseconds. I tried the $OPTIONS TIME.MILLISECOND So SYSTEM(12) should return the required value START.TIME = 38694 ;* TIME() START.SYS12 = 38694000 ;* @TIME = 38694 CPU TIME = 17280 ;* from SYSTEM(9) NAP 500 NEW TIME = 38695000 ;* SYSTEM(12) ELAPSE TIME = 1000 ;* SYSTEM(12) - START.SYS12 CPU ELAPSE = 10 That's not right. Without the nap. NEW.TIME is always = START.SYS12 ie = START.TIME : '000' I have tried variation on the theme of $OPTIONS With and without various 'FLAVOR' keywords. What am I missing? Cheers JR John Rodgers MasterPack Project Team Masonite International Tel: (813) 2612396 ext 3036 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UniRPC returning 39125
David, Does the account have both VOC and VOCLIB files? I ran into a similar situation where my VOCLIB was corrupted. rex David Wolverton wrote: Yes - same user/password... Yes - Absolute Pathname I'm calling UniData from UniVerse using Intercall calls Has worked in the past .. running UV 10.3.0.4116 (PE) and UD 7.1.9.3260 (real license) The process uses ic_opensession so it should be 'database agnostic' on the connection... DW -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach Sent: Wednesday, January 06, 2010 11:21 AM To: 'U2 Users List' Subject: Re: [U2] UniRPC returning 39125 Hi David Are you going in as the same user you would use to telnet? If not, does the user have permission on that account directory? Are you using an absolute pathname for the account, and if not, does it work if you do? Regards Brian -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David Wolverton Sent: 06 January 2010 5:13 PM To: 'U2 Users List' Subject: [U2] UniRPC returning 39125 I have a connection throwing 39125 when I try to RPC That means 'bad account' - yet the account connect data looks perfect to me... Anyone else seen 39125 during RPC? Any guidance? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users No virus found in this incoming message. Checked by AVG - www.avg.com Version: 9.0.725 / Virus Database: 270.14.126/2601 - Release Date: 01/05/10 19:35:00 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UniRPC returning 39125
David, Sorry, I'm not sure about Unidata, but when I used InterCall with Universe it did not recognize a directory as an account unless it had both a VOC and a VOCLIB. In my situation, I had a zero-byte VOCLIB which caused ic_opensession to fail with a bad account error. Perhaps Unidata also has required files??? Can you ud up into the directory from the OS when logged in as the specified user? rex David Wolverton wrote: In UniData I need a VOCLIB? I don't see any such critter out there... ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UniRPC returning 39125
David, Also, are you using a literal string within a C program? Of course, backslashes within windows paths will need to be escaped. rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Capturing output from a Command line program?
Richard, When Universe shells down via the DOS command, it (Universe) doesn't reliably handle standard output and/or error. The result is that DOS output isn't always captured when EXECUTE'd (it seems to depend on the command). A more reliable strategy is to redirect the command output into a type 1 or 19 file, then READ it in. rex Richard Blackman wrote: Hi All, I am trying to capture the output from an EXECUTE statement on a command line program but nothing is being captured, even though I know there is some output. Here is the command CMD = 'C:\usr\lib\sendmail -t ':EMAIL.TEMPFILE:'' EXECUTE DOS /c:CMD CAPTURING TRASH Cheers, Richard Blackman ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe web connectivity
Matthew, First, I want to mention that there are a number of writeups already on the PickWiki website: http://www.pickwiki.com/cgi-bin/wiki.pl?CreateWebInterfaces We use u2pipe for our customers' websites. We don't need to install UniObjects on hosted webservers (many hosting services don't let you install them.) Currently, the websites are written in either ASP, PHP, or ColdFusion. The upside is that it doesn't tie up a U2 license for the duration of a user session, and that's its downside too -- it's possible for telnet users to eat up all the available licenses. You say you're looking to develop a web solution for our product -- what kind of product is it? Will you host the website for all your customers, or will they each have their own deployment? Will it be a heavy traffic site, or low traffic geared towards internal employees or selected customers? Are you looking to create the next FaceBook? rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Appending strings (was General guidelines on indexing)
Allocating all the required memory upfront is key to better performance. Different platforms have different optimizations, so I use the following buffer concept in my programs so they have roughly the same performance regardless of platform. I wrote about it on u2ugWiki and PickWiki: http://212.241.202.162/cms/cmswiki.wsp?id=173 http://www.pickwiki.com/cgi-bin/wiki.pl?How-To_Improve_Large_String_Performance_Using_Buffers rex ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] u2blog.org?
When I asked, I got this response from David Murray, August 2008: As I am no longer in the U2 marketplace, I have decided to close the u2blog web site. rex Tony G wrote: About a year ago I added u2blog.org to my list of blog affiliates. I have no idea who owns it or whether it's still maintained. Anyone here know? Until it's identified I've removed it from my list. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Personal Edition Modulo Limits
I guess I don't understand your dilemma... you previously did a uvbackup of your account(s), then moved it to your dev machine and did a uvrestore. All I'm suggesting is that you use zip/unzip instead of uvbackup/uvrestore. What do you mean by How do I get those accounts...into universe? The accounts and files are already in universe -- moving it to a different machine doesn't change that (unless you switch between intel and non-intel processors). rex Stephen Prater wrote: How do I get those accounts / files into universe on the dev machine? ACCOUNT-RESTORE? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Personal Edition Modulo Limits
Ok, Once they are unzipped into a directory, you can set it up in UV.ACCOUNT manually (just a record with field 11 containing the path), or you can LOGTO the path, e.g. LOGTO /tmp/SALES.ACCOUNT (unix - case sensitive) or LOGTO C:/temp/sales.account (windows - not case sensitive) Once you get into the account, you can start resizing those large files over 10007. rex Stephen Prater wrote: No, I just don't understand Universe, or you might have underestimated the depths of my newbieness. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Personal Edition Modulo Limits
Don't use uvbackup/uvrestore. Use either tar or zip to get the account onto the other machine. Then resize the files over 10007 modulo. To get an approximate separation, use the total size in bytes: INT( (total_bytes / 10007) / 512 ) = approx_separation Since this is a development/testing account, you should not care too much if the file goes into overflow. rex Stephen Prater wrote: I ran uvrestore with -V and you're right - it's not copying records for files where the modulo is too large. is there anything I can do? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Personal Edition Modulo Limits
I'll add to Augusto's response that you will also need to resize any dynamic files that are over the 10007 modulo. rex Augusto Alonso wrote: Hi. I've made some tests and proved you can workaround palying wirh the separation. You need to decrease the modulo under 10007. So increase your separation (in power of 2) as you need. For example, a file with a TYPE,MODULE,SEPARATION of 18, 26573, 8 could be resized as 18, 9973, 32 without loosing of performance. Regards, -Augusto Alonso ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Help with encryption
FUNCTION MD5SUM(TEXT) * Return an MD5 hash * CVS $Revision: 1.2 $ $Date: 2009/04/14 17:13:27 $ ** EQU ALGORITHM$MD5 TO MD5 EQU DATALOC$STRING TO 1 EQU DATALOC$FILE TO 2 RESULT = ERRCODE = DIGEST(ALGORITHM$MD5, TEXT, DATALOC$STRING, RESULT) RESULT = UPCASE(OCONV(RESULT, MX)) RETURN (RESULT) END IT-Laure Hansen wrote: Does anyone know how to cause MD5 hashing in Universe? UV 10.2.3 on Win2003 server. I am hoping for a Basic command that I can run on a desired piece of data. Reading documentation so far hasn't helped, am I wanting to do something that is not available to me? Thanks in advance! Laure Hansen, City of Redwood City - Information Technology 1017 Middlefield Road - Redwood City, CA 94063 Office 650-780-7087 - Cell 650-207-3235 - Fax 650-556-9204 lhan...@redwoodcity.orgmailto:lhan...@redwoodcity.org P Please think green before printing this e-mail Subscribe to receive Redwood City E-News, news releases, or other documents via email: Click here to register/subscribehttp://www.redwoodcity.org/eGov/login.aspx?ref=/egov/index .aspx --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Any limitation in UniVerse decimal places
(This response assumes that your upstream UniVerse billing application is totalling decimal amounts.) I don't know of specific limitations concerning decimal places, but I do know that precision differences in floating point math cause unexpected behavior. If you're trying to total dollar amounts in a program, it's a best practice to ICONV them into integers before any math operations -- this eliminates all floating point problems. AFAIK the query language RETRIEVE (i.e. LIST, SORT) performs math operations on the data as-stored in the record, then applies the OCONV before displaying the total (also avoiding floating point problems). rex apogee79 wrote: I shall explain the problem that I am encountering in the best detailed way that I can. I am working on a billing application (running on UniVerse), which sends details to a downstream application for invoicing. If several invoice groups are sent in one shot, where the total is approximately more that $20 million, an error occurs, due to rounding off. But when those invoice groups are sent one at a time, this condition does not occur. Is there any upper limit that is set in the configuration parameters? Can anyone please throw some light on this? G --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] UV to SAP migration disaster
It's fun to think of UV as the underdog and how the cards are stacked against us. It's fun to be in the I told you so crowd when the competitor fails. But it doesn't matter if the competitor wins or loses; the reality is that another UV site has bit the dust. WE LOST -- that's my real concern. What didn't happen to prevent this conclusion? While it seems politically correct to point the finger at incompetent management, or ineffective vendor marketing, there's possibly another contributing factor, one that we as a group seem reluctant to talk about... the fact that we (U2 professionals) have dropped the ball. I can't help but think that if Shane Co. had a complete, cost-effective U2 application that supported all aspects of their business, there would have been no reason to move away from it to SAP. Management doesn't really care about pretty pixels nor usability. If that's what they're telling you, then they probably think they're doing you a favor by putting it in terms you can understand. Ladies and gentlemen, it's always about money. Being a group of experienced U2 business analysts, you'd think we'd know by now that it's always about (a) increasing revenue, (b) reducing expense, (c) bringing in more customers, (d) getting more business from the customers we have, and (e) reducing risk. Every discussion with management must be framed exclusively in these terms. Only then will management give you the right to contribute your opinion to a decision. As a side benefit, they will be wary of competitor salesmen that cannot articulate specific revenue and expense advantages. Hard dollar figures, i.e. money, speaks louder than marketing. You want to put a new GUI on that old application? Management won't stop you if you can prove it will make money or reduce support cost. But don't be fooled; some bulls**t cost analysis won't buy you any credibility with management. Don't expect management will do this analysis for you; if they could, they'd already be doing it. Back to prevention -- it takes a very deliberate and thoughtful cost-justification strategy to build up your existing U2 application. You need to progressively add the features it needs to ward off attacks from SAP or other enterprise products. rex --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] UV to SAP migration disaster
But it's always about the money. If the current UV system is perceived to be incomplete, management is FORCED to decide between buy or build -- both take money. And they will automatically lean towards the solution they are familiar with (just like we do.) As UV professionals, we need to address this human dynamic: Mr.NewGuy came from a place where he used Feature X. Your UV application doesn't have Feature X, so Mr.NewGuy sees the it as incomplete or lacking. Mr.NewGuy knows first-hand that this feature benefits the business (i.e. makes or saves money). Have too many of these missing features and Mr.NewGuy has no choice but to SPEND MONEY and replace the whole system. Real or not, Mr.NewGuy feels the pressure to do SOMETHING because he FEELS the old system is losing money. So how do we address this? Strategy 1: Don't fool yourself. Just because you have a working application in production doesn't mean it couldn't be significantly better. Strategy 2: Anticipate and implement useful features. Study your competitor's systems and stay informed of the latest solutions to business problems. Don't have Excel export capability? Get it. Don't have mobile applications? Get them. Strategy 3: Always make your managers look good. Mr.NewGuy has revenue and budget goals -- build an application that meets those goals. If Mr.NewGuy is meeting his business goals, there's no reason for him to tell the CEO or board to buy a new system. Strategy 4: Always have a higher ratio of revenue projects vs. infrastructure projects. Face the fact that GUI'izing you legacy application is an infrastructure project and will more than likely cost the company more than it gains. Balance infrastructure projects against a larger number of revenue projects, or perhaps even rolling infrastructure changes into your revenue projects. Stop doing those quick and dirty reports that everyone wants but don't generate any revenue or savings. Strategy 5: Sell your U2 application to management. YOU need to constantly market your product to management (but of course you really need to believe in it first). By product I mean both your U2 application and the services you provide to benefit the company. rex Jeff Schasny wrote: Unfortunately, its not always about the money. In many cases its about a change of leadership where the new guy on top wants his own personal favorite software. I have been personally involved with at least 2 instances where a new CFO has insisted that the ERP solution with which he/she/it is most familiar was instituted without regard for cost... --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Uniobjects
The unishared/unirpc/unirpcservices file has a timeout parameter, defaulting to 3600 seconds. I think you can change it to zero for an indefinite login. Jonathan Leckie wrote: Is it possible to keep a Uniobjects connexion open? Or is it possible to have a trigger that would allow an event that could allow the state change to be seen and re-opened? --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] UV to SAP migration disaster
I guess the basic premise of your argument is that the PHB's are listening to 90-day-wonder windows programmers, and they encouraged said PHB's that they needed to replace the UV database. I don't buy it. Even PHB's don't go spending millions of dollars on SAP just because their 25 year old windows programmers don't think UV is productive. In the case of Shane Co. the PHB's decided to spend millions of dollars -- and no one bothered to do an ROI study? Or it was fabricated by a bunch of idiots without any concept of reality? At some point, Shane Co. must have been doing good. They were expanding. It seems a short time ago I heard they opened a new store here in Orlando, FL. (Or maybe they weren't doing that good after all and the expansion was a feeble attempt at opening new markets to generate revenue.) During this expansion, one of the PHB's must have said we AREN'T getting what we need from IT; let's look into other solutions. Or maybe they said, we CAN'T get what we need. (The former speaking to an unwillingness to address needs; the latter, lacking capability to do so.) And this brings me back to my original question: what was Shane Co.'s REAL reason for deciding to migrate away from UV? If Universe is supposed to be a superior environment for building and deploying business solutions, why couldn't their existing IT staff deliver? Why? It's too easy to characterize management decisions like this as frivolous or political. But it's irresponsible to ignore the true business reasons behind these decisions, dooming ourselves to repeat history's mistakes. rex JPB-U2UG wrote: I can't speak for everyone but if it's anything like at our place, it's due to lack of education. UniVerse is contains all of our business logic and Microsoft is used for our presentation layer, desktop and web. We have 3 programmers working on UniVerse with an average age of 55. In our windows area we have 10 programmers with an average age of 25. Most of the people coming out of the colleges and universities only know one platform Microsoft. They are taught nothing... --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] UV to SAP migration disaster
I've been wondering why the Shane Co. felt the need to migrate away from UV. * Was their IT staff unable to meet business requirements due to the limitations of UV? * Was their IT staff to blame, rather than the UV database environment? (i.e. understaffed, lack of skills, etc.) At any rate, it appears that either (or both) caused Shane Co. management to look for a different solution. Under the assumption if it ain't broke, don't fix it I would think that management thought something was broken, and they needed to spend money to fix it. Does anyone have any first-hand knowledge of the specifics? Anyone care to share their insights? rex John Hester wrote: There were a few posts back in January about Denver jewelry retailer Shane Co. and their disastrous migration from UV to SAP. Today they're starring in an eWeek slideshow about I.T. disasters: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] universe sockets
I wrote u2pipe with a simple request/response socket model in mind: http://www.pickwiki.com/cgi-bin/wiki.pl?U2pipe You can also see other possible ways to do this: http://www.pickwiki.com/cgi-bin/wiki.pl?CreateWebInterfaces rex doug chanco wrote: If anyone has a pick server socket solution they would like to share I'd appriciate it (answering requests and spawning a program to handle each incoming request) otherwise I may go the route of moving the socket server to the OS (using init.d to handle incoming requests and to spawn a program to handle each request). --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] universe sockets
On windows, u2pipe uses wininetd; on unix or linux it can be used with either inetd or xinetd (with xinetd you can limit the number of simultaneous connections; pending requests get queued.) I'm not sure I understand your question, but wininetd/inetd/xinetd can listen on any port you specify, receiving raw requests from any system and sending back any kind of response data. So the requester (i.e. client) can be a browser, web server, or ANY other program that can interact with sockets. While you can write a socket listener in Universe basic, it can't be completely fault tolerant; the process can block or hang. Wininetd/u2pipe sidesteps the issue by spawning a new process for each individual request. rex doug chanco wrote: is it tied to wininetd/the client? (could I for example just open a raw socket to whatever port I bound it to and send/receive data from any system)? from what I can gather this is tied to the client system, which makes sense since you refer to it as a way to connect a web server to a pick DBMS --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2][UD] Named pipe issue.
Dan, I don't think you can rely on the C daemon blocking on open(); it's supposed to err out on non-existing files. It may be better to use the O_NONBLOCK and check the error code in a timed loop. rex Dan McGrath wrote: While the C daemon is blocking at open, the Phantom apparently successfully opens the pipe and writes to it without error. None of the error logging code is touched and the logging after is. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] [UV] PHP/Perl
Jeff, Charles, I basically used the same strategy when I wrote u2pipe, which is a C program that uses InterCall to connect with the U2 database. To add functionality, I add a Unibasic subroutine and a method in whatever web language -- right now ColdFusion and PHP, and looking to add ASP.NET soon. U2pipe relies on an external socket listener: xinetd for linux, inetd for AIX, and wininetd for Windows. The socket listener does not have to be on the same machine as U2 as long as it's reachable via the network. Using config files, multiple connections can be made (one socket port mapped to one U2 connection). I'm working on a connection pooling version, but it's not ready for prime time. The web server doesn't need to be on the same network. All of our deployments use a remote web hosting solution. So the web server is hosted in one state, while the actual U2 database is in another. The code and documentation is on www.PickWiki.com. Jeff Butera wrote: In a nutshell, I wrote a small C program which leverages Intercall to make connections to the database. This is a lightweight program which requires little to no maintenance. In short, the C program is merely the connection between Perl and Unidata, passing commands from Perl to a single subroutine on the Unidata side. That subroutine, in turn, does all the work and then returns the data back to Perl. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] [UV] PHP
There are several ways to do this. Check out PickWiki: http://www.pickwiki.com/cgi-bin/wiki.pl?Accessing_U2_From_PHP Brutzman, Bill wrote: Is there a way to do PHP with UniVerse? --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Dynamic Array oddity very useful
Depending on undocumented behavior is usually a bad idea. Just because A0 = 'ZZZ' happens to work in this release is no guarantee that the vendor will continue to support this behavior in the future. The fact this doesn't work in other Pick flavors or variants makes me want to shy away from this construct. rex --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] What Next?
Al, Software development is inherently an exercise in climbing steep learning curves - an exercise in problem solving - and the learning curves don't disappear -- Steve McConnell I find that Steve's quote equally applies to professional development; growing as an application developer is a continuous exercise in climbing steep learning curves that don't disappear. So you want to stay in application development and support... reasonably employed. Here's my two cents: Learn to program in C. If you want to stay in the construction side of development, the aptitude to understand C is what separates the men from the boys. Notice that it's an aptitude; some people just don't have the brain cells that understand memory allocation, let alone pointers and recursion. Not everyone who calls themselves a programmer has this aptitude. Many productive Pick programmers fail to develop skills outside of Pick because the other languages don't make sense to them. If you can make sense of C, then a whole other world of programming languages opens up. Java, JavaScript, PHP, Perl, VC++, C# and all of the other so-called curly brace languages. I recommend getting the book Teach Yourself C in 21 Days from your library or bookstore. Remember: the reason for learning C is to provide a stable stepping stone to other similar languages. In this day and age, I'd recommend C# as your next language: Eric Sink referred to it as Java done right. Also on the construction side of development, get Mike Gunderloy's Coder to Developer to familiarize yourself with the different software tools available. Most Pick shops don't do daily builds and regression tests, and you'll want to see how the other half lives. If you don't know them already, you must learn XHTML, CSS, and JavaScript. Almost every modern product has some kind of web display or interaction, so there's no excuse to be ignorant of them. I see the biggest strike against Pick in general is it's perceived lack connectivity to other applications. It's not true, but it seems that way. Why? Because most Pickies are ignorant of how the big SQL apps work, plus unfamiliarity with UniObjects, BCI, and other connection techniques creates doubt -- a doubt that there's a simply easy way to move data back and forth between apps. So Mr. SQL says, convert that Pick database to SQL because it removes that doubt. To counter this perception, we need to be masters of connectivity. Become *fluent* in the technologies to connect U2 with the outside world. Construction and maintenance are maybe the most visible aspect of application development, but probably not the most important. Analysis and design are. To grow in these areas requires study, whether that's taking courses or reading books. Read all the Steve McConnell books you can find. Learn how to create function specs and system architecture designs. Learn about design patterns. Find out what MVC is. Learn accounting and business processes. The Accounting Game is a good book for newbies to get a grasp on both bookkeeping and general accounting concepts. Most other books focus exclusively on the concepts, which are easy enough to understand. The hard part of accounting is learning the specific accounts to debit/credit for a specific transaction; most of the time this is learned on the job. The Accounting Game does a better-than-average job teaching the transaction/account relationship. Last, consider getting a CS degree if you don't have one. I hesitate to recommend this, but I know most job postings list it as a requirement. I think it will pay off in the long run. I realize that this is a long list of stuff to learn. And the steep learning curves won't disappear. You need to ask yourself if this is the path you really, really want to take. rex --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/